Thanks for your interest. Well, I am stuck in a little dilemma because I will use the code as a building block for an entry in the Elektor/Circuit Cellar contest. But, good news, I decided to publish the code anyway. For anyone using the code in the contest, please include a reference to my project number, which I will publish then.
Please give me a few days to clean up, the code is still cluttered with debugging stuff. It was really hard to get it running.
The details: the decoder is a modified version of libmad (the standard version allocates too much RAM), the output is at the moment only one channel via the internal DAC. I will change this to stereo, but maybe not in the next days. ID tags are ignored and generate some errors and noise but only at the beginning and end of the file.
@Vis: decoding a 4:30 file in 3:00 is the decoding process without output. Output needs a fixed rate od 44100 Samples/sec, so the decodr has to wait for the output to finish. It simply means the decoder is fast enough to decode a 320kB/s file without any pauses and there is still time for additional tasks.
I will post a new topic when I created the project here on the website.
Stay tuned.
Thanks to all developers, I haven't seen such a platform before.
Got an MP3 up after 2 days without any additional hardware. Playing even 320k MP3 from an USBstick without hickups.
OK, code is yet too dirty to publish, but all has been done in software.
The numbers w/o optimization of any kind:
128k 3min MP3 is decoded in 1:21 -> cpuload ~50%
320k 4:30min MP3 is decoded in 3:00 min
DAC is fast enough to keep up.
Files are read from USB stick with MSCFileSystem.
I haven't expected this performance and I write this topic to thank you guys, who built this piece of hardware and all you guys who made the underlying software.