One of my primary uses for the openmoko is a music player, and I have spent some time trying to improve my listening experience with it. I wanted to make a web page or such on the subject but I am highly unmotivated to do so. In lieu of that, I am posting my findings here.
Audio Quality ------------- IMO, good audio quality can be achieved with proper tweaking of the alsa mixer. Some of the settings do nothing while others make the openmoko sound like crap (e.g., bass boost). The state file [1] is what I am using. One can utilize this by over writing the like-named file in /usr/share/openmoko/scenerios . I even find the bass decent, but not ideal. This is a known, and much discussed, hardware issue. Audio Player ------------ When I started my quest, there was no music player that met my needs. The two that were close were pythm and mokoko. Mokoko has more potential, I believe. However, it has (had?) issues resuming from a suspend (crucial for me). That seems to imply an issue with gstreamer - which it utilizes for playback - and that is something I do not want to bother fixing. So, for the short term I turned to pythm and began hacking away at it. The following is a list of changes I made to the 0.5.1 version: 1) Improved responsiveness, especially with regard to starting the next song in a play list. 2) Lowered processing overhead during main update loop. 3) Tweaked the GUI. Most notably, the buttons are larger. 4) Read ID3 tag info at play list load time using python ID3 library. 5) Optionally (default true) disable suspend through enlightenment while song is playing. Change the no_suspend option in the [mplayer] section of /etc/pythm.conf. 6) Automatically pause playback when phone call received, resume on hang-up. Only if running on FSO-based framework (not qtopia phone-kit). 7) Hook directly into alsa for setting/getting the volume. 8) Tweaked nice levels for more consistent playback. Note that these changes apply only to the mplayer back-end and I have no idea if the mpd back-end still works as I have no mpd server set up. Furthermore, I have not tested this with ogg files, so item 4 from the above list might break on those. Needless to say, this is a work in progress. To play with this, one should first install the regular pythm package [2] and then extract [3]. Some of the tweaks include changing nice levels for the GUI and mplayer which are done in /etc/pythm.conf and /usr/bin/pythm. There are still some issues that I may not be able to over come (i.e., audio "blip" on some song changes) but I believe they are inherent to the use of mplayer as a back-end and the slowness of the openmoko processor. Moving to gstreamer is probably a good idea for the future. There is a good chance this won't work out of the box given that I have not tested it on another device. Let me know and I will see what I can do. MP3 Playback ------------- For better or for worse, my music is encoded as vbr mp3 files. Mplayer normally does not handle vbr very well. So, I patched an compiled my own version. You may find it at [4]. Without the patch, pythm can not handle vbr. I also added mp3lib decoder support which I feel is slightly better than the others. This may be enabled by default via [5]. Be warned, that I know nothing about optimally compiling mplayer and the binary is *huge*. Any input on that would be appreciated. Headset Detection ------------------- If one is using a recent FSO frameworkd then this is now automatically handled. If you are not, the either upgrade or search the mailing list archives for extensive discussions on the matter. Troubleshooting ----------------- 1) Sound skips. This means there is another process that is running at about the same priority as mplayer and taking more than ~15% of the CPU. You can either address the problem with this rogue process, or increase the priority of mplayer via pythm.conf. 2) Sound is only coming out of one speaker when using the stereo-out jack. This means that the alsa mixer still has the amp for the built-in speakers enabled. See "Headset Detection." 3) Audio quality is bad. Either #1 is happening or your alsa mixer settings are bad. I find the audio quite good but with some degradation at the high end. That is all that comes to mind at the moment. [1] http://atariland.net/~dreilly/openmoko/audio/stereoout.state [2] http://wiki.openmoko.org/wiki/Pythm [3] http://atariland.net/~dreilly/openmoko/audio/pythm-0.5.1-dmr-20090115.tar.gz [4] http://atariland.net/~dreilly/openmoko/audio/mplayer.gz [5] http://atariland.net/~dreilly/openmoko/audio/mplayer-conf.tar.gz -- Dylan Maxwell Reilly _______________________________________________ Openmoko community mailing list [email protected] http://lists.openmoko.org/mailman/listinfo/community

