Gmu Music Player
Gmu is an open source music player for portable gaming consoles and handhelds. There are versions available for the GP2X (both F100 and F200 devices are supported), the GP2X Wiz, the Caanoo, the Dingoo A320/A330, the Ben NanoNote, the Pandora handheld and the Zipit Z2. Gmu supports lots of audio file formats and includes various features. For an overview have a look at the features list below.
- Supports Ogg Vorbis, MP3, MP2, Musepack (MPC), FLAC, WavPack, Speex and various module formats (MOD, XM, IT, S3M, STM, ...)
- M3U playlist import/export
- PLS playlist import
- Internet audio streaming (web radio)
- Various play modes including random and repeat modes
- File browser
- Cover viewer (Gmu supports jpg, png and bmp image files and cover images embedded into ID3v2 tags)
- Graphical spectrum analyzer
- Hold function (turns off display backlight for power saving)
- Customizable key mappings and skin support to be able to change Gmu's look & feel
- In addition to the SDL frontend, there is a new ncurses text interface (usable over the network!)
- There is also an experimental WebSocket-based browser interface (Gmu's webserver is listening on port 4680)
If you like the Gmu music player and want to support me, you are welcome to do so! You can use the donate button on the right column below the menu to make a donation. Of course Gmu is available free of charge, no matter if you make a donation or not.
By the way, Gmu has been mentioned in an article in the German magazine "LinuxUser" issue 04/2008. The article is available on their website
gmu-0.9.1.pnd (Pandora package, 2.5 MB)
md5sum: a922a8bdba055b34e20858eea19d1180 )
gmu-0.9.1-caanoo.zip (Caanoo package, 0.7 MB)
gmu-0.9.1-dingux.zip (Open Dingux package, 0.7 MB)
gmu-0.9.1.tar.gz (Source, GPLv2, 0.5 MB)
gmu-0.9.0-dbcompo.pnd (Pandora package, 2.5 MB)
md5sum: ac7e0c53b3e13608cf7e19fb2bfaefbe )
gmu-0.9.0-caanoo-dbcompo.zip (Caanoo package, 0.7 MB)
gmu-0.9.0.tar.gz (Source, GPLv2, 0.5 MB)
gmu-0.8.0BETA1-gp2xwiz.zip (GP2X and Wiz version)
725 KB, md5sum: 400e08bb7e2be3266d9b96a1c7405579
gmu-0.8.0BETA1-dingux.zip (Dingoo A320/A330 [Dingux] version)
775 KB, md5sum: 8a05ac8fcfc040b2e36ebb52cd0d5e31
gmu-0.8.0beta1.pnd (Pandora version)
1.4 MB, md5sum: dba836ffcd3937b0a0d8d86b73c0e1b4
gmu-0.8.0BETA1-zipit-z2.zip (Zipit Z2 [uClibc] version)
245 KB, md5sum: d61f9f7da4a88d3e1432e2e34a90580e
gmu-0.8.0BETA1.tar.gz (GPLv2 source)
240 KB, md5sum: a1a3d346802f3877b4c739b3c65225d6
Does Gmu support Speed - http://www.speex.org/ - if not is it a feature anyone would be interested in adding? Would be happy to make a donation to help this feature work well with gmu on ben nanonote - would like to include a lot of spoken word stuff preinstalled on ben nanonotes Freedom Included, Inc. sells (FSF / GNU / RMS speeches etc.), and speex is fantastic at speech compression.
Also, is there a good way of talking about gmu other than this "Leave a comment" box (mailing list / forum / identi.ca / etc)?
Also going to make our standard donation for software we find really useful in general (sorry it's not much; not raking in the money quite yet ;-)
\|/ Daniel JB Clark | Activist; Owner
FREEDOM -+-> INCLUDED ~ http://freedomincluded.com
/|\ Free Software respecting hardware
Daniel J Clark: Thanks for the donation. :)
speex is currently not supported, but I'll have a look at the speex library. It is probably not very hard to include support for speex. I could possibly include support for it in there next Gmu release.
As for talking about Gmu, besides commenting Gmu releases on my blog (which some people do), people also discuss Gmu on the gp32x.com forums and some talk about it on the qi-hardware mailing lists. I myself don't like mailing lists very much, so I tend to use forums more than mailing lists. Usually whenever I release a new version, the Gmu release thread over there at gp32x.com is also being used for feature requests and discussion.
Currently there is no specific Gmu forum or mailing list, though.
I'm trying to compile gmu for the Ben Nanonote using Opemembedded toolchain in order to get mp3 playback support. The problem is that in the decoders folder FLAC and VORBIS files are not included and it causes errors. I've skipped this encoders and now I can play mp3 but not flac and ogg files. Is there any reason for not to include these files?
sucotronic: Please verify that your gmu-0.7.1.tar.gz file is intact. You should try re-downloading it if it is broken.
Its md5 checksum should be 62653037d2046d992626eaf6d0a365e3.
In the src/decoders folder there should be the following files: flac.c mikmod.c mpg123.c musepack.c splay.cc vorbis.c and wavpack.c.
To be able to build the FLAC and Vorbis decoders, make sure you have the necessary libraries installed in your toolchain. A recent libFLAC 1.2.1 is required for the FLAC decoder to be built. For the Vorbis decoder you'll need Tremor (also known as libvorbisidec).
You were in reason, I forgot to build the Vorbis and Flac packages before making gmu. Thanks for the help and the program!
sucotronic: You're welcome!
I can't get it work on my F200. After a while, get back to the launcher screen. Is there anything to install?
Ted: On the F200 it might only work with the Open2X firmware. In case you are using the old GPH firmware, you could use the old Gmu 0.6.3 which works with that firmware or switch to the Open2X firmware.
I've been using GMU since i got my wiz and it's a beauty.
I've only one question, have you got any idea why using a 16 gb SD it crashes after playing six or seven songs in continue mode ?
The 8 gb SD doesn't give me this problem.
Thank you very much, nice work.
Marco: Gmu does not care what kind of SD card is being used, which is why I suspect that there is something wrong with the card itself or the filesystem on it. You could try to check the filesystem for errors or reformat the card.
Thanks for the reply but I can't find any of previous versions of GMU. Could you post link to them.
Thanks in advance.
Ted, here you go: http://wejp.k.vu/files/gmu-0.6.3.zip
Thank you very much. It's working as well as it used to.
Great job for this soft by the way.
i just switched to 0.7.2 and now it crashes when i try to load it i've tried downloading it twice etc no dice
never mind that last comment works great thanks
I loved your player on my GP2X F100 and use version 0.7.2 on my Pandora now. I noticed that I cannot get a file to play directly pressing the A-Button (nothing happens). That's a pity as I liked that feature quite a lot. Would be really great if you could fix that.
Abaddon: I'll look into that issue. It is probably only a missing/different key mapping.
what font do you use for the gmu playlist area? thanks again for my favorite player on gp2x!
starpause: It is a bitmap font (drawn with the Gimp). Have a look at the theme directory, you'll find it there as a PNG file.
Thanks for GMU, it's an absolutely awesome player!
On the pandora, 0.7.2, The (A) button to play single files in browser mode is not working for me though; is that a known bug?
Timothee Groleau> Thanks. :)
I might have made a mistake with the Pandora keymap. If I remember correctly, someone else mentioned the same thing a while ago. I'll fix the keymap with the next release. If you want to, you can also easily edit that file yourself to fix that (and also remap any buttons you like). It is the pandora.keymap file (plain text) inside the Gmu .pnd.
First of all, nice music player for my dingoo!
But is there any way to get only mono output without compiling?
jmi: Gmu itself does not support mono output for stereo audio files, but if you are using a kernel with ALSA (I think OpenDingux uses ALSA), you might be able to create a virtual audio device through .asoundrc to downmix the stereo signal to mono output.
May I ask what you need mono output for?
wejp: Thx for the quick reply! My right audio channel is broken (headphone and av-out), so my plan was to connect both headphone socket connections with my left channel and use mplayer and gmu with mono output. Your idea was my plan b, guess I will go for it.
Thanks Johannes, I'll try to edit the keymap and get the A button working :) . On a separate note, what would it take to have AAC support in GMU?
Adding AAC support would be a matter of writing a decoder plugin for aac using aac decoder library capable of decoding with integer math only. I'm not very interested in implementing such a decoder plugin, for a few reasons. For one I don't have any AAC files myself, but more importantly I think AAC is a bad format which should not gain too much use. I would strongly suggest using Ogg Vorbis instead.
If you want to implement an AAC decoder plugin, you are welcome to do so. Gmu's decoder plugin API is pretty simple and easy to use. If someone can give me a _really_ good reason for doing so, I might consider implementing it myself, but until then I rather implement other useful features for Gmu.
Looks very good..
I would be deeply grateful for a Caanoo Version,
why is this file offline?
 gmu-0.7.2-dingux.zip (Dingoo version)
868 KB, md5sum: 080cda8e2a90d2a49fa6f3b30faeb97b
karl: Must have been lost when I moved my website to a new server. Any reason in particular why you want that old version?
Thank you for your work. I'm using it on my Dingux to listen to audiobooks. Very appreciated.
I was having a couple of questions
1. Will there be an equalizer? (I haven't found an easy way to hardcode equalizer settings to mp3s and my audiobooks could really use some equalizing so they sound better)
2. Is it possible to do some key remapping? (I usually accidently press A button instead of the X button when I want to pause/resume audiobooks, since I keep it in my pocket and it's the first button that touches my fingers)
3. GMU skips the last 10 seconds of every mp3 file. (I haven't tried it with shorter files, mine are about 15-30 minutes each file.)
4. Will GMU ever be able to remember position of files even when I listen to something else instead? That's the reason I'm using it only for audiobooks, because if i want to listen to music I have to search the audiobook again to find where I was.
/ Thank you! / Jonis
1. Currently there is no equalizer, but I'm considering to add one in the future. I can't say much more than that right now.
2. Yes, this is possible. All you need is a text editor. You have to open the .keymap file that is being used in an editor (should be dingux.keymap in your case) and modify it according to your needs. I'd say the file's format is pretty self-explanatory. Also have a look at the README.txt file that comes with Gmu. There is some more information on that matter.
3. That should not happen. If there is any way you could supply me with a test file (we can discuss this by mail), I could have a look at that. I haven't noticed anything like that before. All I could imagine right now is, that files with variable bitrate, that are broken somehow (e.g. files that have an invalid XING header) could cause such a behaviour, but even in such a case Gmu should play the whole file, unless try to seek in the file. In such a case the remaining playtime display could be wrong, though.
4. Interesting idea. If I understand you correctly, you want Gmu to be able to remember the position on a per file basis? This is currently not possible, but would be possible to implement. I'm not sure how this could be integrated nicely with the user interface. Maybe I could add some sort of bookmark featre where one can bookmark files including the current position. I guess I need to think about that one some more. If you have an idea how to present such a feature to the user, I'd like to hear about it.
Thank you for such a nice application. My gp2x now serves mainly as a multiformat music player in my car.
I also got it to on my linux box. The key mapping took a little trial and error but I think I'm satisfied now. :)
ps. I play the same modules with modplug and it seems mikmod is missing a channel or two sometimes. Anyone else notice that? And thanks again for the nice software!
I just want to thank you for this great app.
I used to enjoy it on my gp2x, but now it's broken :( I got a Caanoo now and I miss gmu !
What about an android port?
A linux desktop (SDL?) port would be great too!
Cyberic: Every now and then people ask about an Android port and I have actually considered creating one. The problem with that is, that I would at least have to rebuild the entire GUI to somewhat match Android's look and feel and make it touchscreen friendly. So I might actually do this, but this will take some time for sure. When I do that, I want to do it right. I really want to avoid releasing something that's barely usable.
As for the PC port, this is much easier to do. Actually one can already compile Gmu for a PC (at least for PCs running some sort of Linux or BSD) and it'll work fine. On the PC, Gmu can run in windowed or fullscreen mode. There is no support for mouse control yet, but this might change in the future. Also I am currently implementing another user interface for Gmu, which can be used instead of the current interface or in addition to it. As it is work in progress, I will not say more than this right now.
Great, good news, I didn't know about the linux port, I'll give it a try!
About the Android port, you could do as Rockbox did: they kept the same interface! for the first version you could even add a kind of virtual keyboard and/or virtual arrows, like in emulators for instance.
This would be sufficient to be used, I think, even it everything is not "android-like" at first.
Great news for the PC port.
As long as it can run in the frambuffer without X, I don't care about mouse support.
I was hoping to download Dingoo 0.7.2 too. Need the mpg123 decoder/library for BNN mp3 playback.
Justin: Here you go: http://wejp.k.vu/files/gmu-0.7.2-dingux.zip
Thanks wej. Matching library and decoder works perfectly with matching release. I should have a couple $ to donate next month.
Justin: Thanks, I appreciate that. :) Glad that it works for you.
Is there a way to fast-forward through the file that is currently playing?
Justin: Yes, there is. Which button or button combination to use, depends on the device you are using. On devices like the Dingoo (and similar devices) it is usually configured such that fast-forward/backward is on the same buttons as skip forward/backward combined with the modifier key (that's the button that switches the other buttons to their second functions while hold down).
Awesome! Alt-M does the trick on the Ben. Thanks wej.
Awesome project! Thank you so much!
By the way is there any way to run Gmu playback in background on Dingoo A320? Would be very useful imho. I'm surprised that no one ever did request for this feature.
vigilancer: You're welcome! As for the background playback: I understand that background playback would be a useful feature and I am interrested in implementing that. Actually, I am kind of working on it (preparing things for being able to actually implement it), but it is not as easy as it might seem at first, so better don't hold your breath for that feature. ;) I want to add it eventually, but it will take some time.
Hi wej, thank you for this project. I can re-purpose my Caanoo now to be a network music player.
One thing I observed is that the http server is not started on Caanoo. The password is 9 chars long and gmuhttp.Listen is set to All. I checked the port with netstat on Caanoo, and it's not open.
Also, I would like AAC support, because most online radios in my country use AAC, probably because it sounds better at lower bit rates than MP3.
0sAND1s: Thanks for the feedback, I'll have a look at the http server issue with the Caanoo version.
Thank you very much for this Programm, I hope it will help to make my Girlfriend loves my Gameing-Consoles cause she loves music and Player that shows Covers, Lyrics ...
So I'm very happy to test it soon on my GCW Zero.
Can this Programm also handle my PodCast OPML Files from old Podkieker?
Mae: OPML is currently not supported. As OPML files are XML files, an XML parser would be needed to support that format. Unfortunately XML parsers tend to be rather bloated. Maybe I'll evaluate available XML parsers at some point or write my own to add support for such formats. I don't want to use libxml2 (or anything of similar size).