[All] To build a better music player

Dylan Reilly dreilly at atariland.net
Thu Jan 15 20:07:32 CET 2009


So I have read and am hungrily anticipating more details.

On Thu, Jan 15, 2009 at 1:55 PM, Yorick Moko <yorickmoko at gmail.com> wrote:
> just to let you know: bass can be boosted with a capacitator, but no
> official OM documentation on that one
>
> On Thu, Jan 15, 2009 at 7:17 PM, Dylan Reilly <dreilly at atariland.net> wrote:
>> 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
>> community at lists.openmoko.org
>> http://lists.openmoko.org/mailman/listinfo/community
>>
>
> _______________________________________________
> Openmoko community mailing list
> community at lists.openmoko.org
> http://lists.openmoko.org/mailman/listinfo/community
>



-- 
Dylan Maxwell Reilly




More information about the community mailing list