The MP3 player which is part of the GP32 default firmware is just pants, only handling 128kps stereo bitrates, and very unresponsive. Since the main reason for me to listen to MP3 files is for the purpose of talking books, I need to seek backwards and forwards through running times of up to 30 minutes or more, otherwise I have to sit through the same crap over and over again just to hear the last 50 seconds of a chapter I nodded off during.
So you can already see that having to convert existing MP3 files to the right bitrate is a pain, and added to the lack of seeking functions, all before you consider the poor responsiveness of the built in player, is reason enough to write my own.
Well, actually not entirely write my own, more like create a wrapper for the MAD decoder , the output of which is described as having been, "tested and found to satisfy the ISO/IEC 11172-4 computational accuracy requirements for compliance. In almost all configurations, MAD is a Full Layer III ISO/IEC 11172-3 audio decoder as defined by the standard."
There is a newer version of the built-in MP3 player under development which has had various betas released and does indeed play more than the original 128kps bitrates, however within 5 minutes of testing I found it had difficulties with some MP3 files and caused break-ups, plus it still doesn't offer seeking functions and I doubt it will ever have all the addons that I'd like to use.
The Feature List
The following are implimented and working, although this is no guarantee they are perfectly operating as I want:
- MP3 playback of all Layer III files at any bitrate and samplerate
- Seek backward/forward
- Next track/previous track
- ID3 tag support
- ID3v2 tag support
- Graphical interface
- 7 Band graphic equaliser presets
- Sort on filename/trackname/album & track number
- Shuffle play (random sort)
- Two levels of key lock
- Cpu clock rate selection
- Clipping protection
- Remove silence from start and end
- Built in GpDrive (shows up as a removeable HD in Windows)
- Scrollable playlist with track selection
- Help screens
The following are features I did plan to add at some point and the version in which I expected them to appear, before I abandoned the project completely after getting an iPod:
- Repeat options (version 2)
- Configurable graphic equaliser (version 2)
- File browser (version 3)
- M3U playlist support (version 3)
- Playlist editor (version 3)
- Auto power off (version 3 if it is even possible)
- Visualisations (version 4)
The following are things people requested and I did consider putting into the player at some point, but were so far down the list they didn't stand a chance really:
- OGG support
- CDG Karaoke text support
- Configurable buttons
- GpMad Mp3 v1.0 Source - I have no idea how much work would be required to compile this with GCC, don't ask for any help!
I would not have been able to produce this software without the direct aid, advice and source code of Mr Spiv, Rob Leslie, Mr Mirko, the GP Font Maker and source by Oankali, Squidge and his GpDrive source, and DJWillis for his GCC assistance. Thanks guys you are all stars!