Some days ago I noticed that my bedroom alarm clock radio music player, Freecom's MusicPal, got an update to version 1.5.1 (while I was still at 1.3.0). I decided to go with the update since it promised multiple alarm times (useful when you and your wife go to work at different times) and an HTML browser. I saved the configuration settings, uploaded the new firmware image and restored my settings.
It really has an HTML browser now - which totally sucks at rendering web pages. It does not even get text/plain files right and swallows all newlines. Don't come to me with "But it's a music player" - they built it, and they failed. In-site anchored links? No way.
The nice thing about UPnP is that media renderers, such as my MusicPal, are supposed to be remotely controllable. This is useful if you want to sync multiple players to play the same playlist, or to stop them when your TV is switched on automatically, or when it's time to sleep.
Now that the UPnP player MusicPal already implements the UPnP protocol and has a stack for it, what would you expect about the state of "lesser used features" like UPnP remote controlling, given that there is an official Windows tool you can use to control your MusicPal? Exactly. Nearly unimplemented.
Freecom Remote Control
The official Windows tool "Freecom Remote Control" does not use UPnP commands to play/pause/set loudness/edit playlist of the player as any resonable programmer would do it. No, it abuses the admin web interface via http, and that in an awkward way.
A list of URLs that are used to control the musicpal or get information from it:
- Retrieve current state
- Retrieve current state with favorites
- Switch between play/pause
- Skip to next song
- Play first favorite
- Set loudness/volume
- http://user:pass@musicpal/admin/cgi-bin/admin.cgi?f=volume_set&v=3&n=../now_playing_frame.html (v between 0 and 20 [inclusive])
The MusicPal has a default username/password combination of admin/admin. While the freecom remote controlling tool allows you to set a custom password, it always uses the default one first, and only if that fails the custom one. That doubles the traffic. Increasing bandwidth, power usage, etc - not a "green" tool at all.
Remote controlling via UPnP
The Cidero UPnP suite is some years old, but is still very useful to demonstrate or try things out. It also features a player window for each media renderer device in the network with buttons for every UPnP feature and a playlist window.
Media renderers that properly implement the UPnP protocol can be told to play, pause, play the next or previous track. You can set the volume, shut the device down or modify the playlist. The MusicPal is a bit special when being controlled via UPnP:
- You can play and pause it
- Artist and Track data are not transmitted via UPnP, so you don't see which track is being played right now.
- Pressing the stop button restarts the current song from time 0:00. This is a special feature of MusicPal: NSB - No Stop Button. You either play, pause or have it shut off. (Generally, not only via UPnP)
- Volume adjustment does work, but the player does not send the current volume status to the media controller.
- Muting the sound works, and muting information is transmitted!
- Prev/next buttons do not work
- Neither does showing/editing the playlist work via UPnP.
With update 1.5.1, the MusicPal has awesome 5(!) alarm timers! This does not make it any better. Here are the deficiencies I noted over the last year:
- No wake up loudness. The player always wakes you up with the last used sound intensity - which is mostly very quiet since we play some slow music when going to bed. Try to wake up when your player starts radio/music at 5% loudness. No way.
- No increasing loudness when waking up.
- No fallback wake up sound. What happens if your UPnP media server has a problem and your alarm clock relies on only that server to wake its master? Exactly: Lovely quietness. Until you wake up by yourself and note that you'll be late to work.
There are methods to get the loudness level up at night by logging in via the telnet interface and creating a cron job at 3 in the night that uses wget to call the admin interface and set the loudness. Ah, teh technology. Explain that to your wife: "Sorry honey that you missed your flight. The alarm clock's cron job list had been erased during firmware update."
To get telnet access to your musicpal, you have to enable it first via a hidden web interface page: http://musicpal/admin/cgi-bin/debug.
Fixing it myself
Neither of the problems listed would stay problems for long if the source code would be publicly available. But as I wrote in my last post about my MusicPal, the nashville software doing all the things like playing music, sending UPnP commands or receiving user input is closed source. Oh my.