The Xiph.Org Foundation offers an open source alternative to the omni-present MP3 audio compression: it is called Ogg Vorbis and promises same if not better performance but it is royalty-free and license free. From their web site, like in all open source project you can download the full C source code for all the tools you need to convert and play back Ogg Vorbis files/streams on most operating systems
Like most open source projects, the code is based on the assumption that you will use the classic GNU Toolchain: gcc compiler, linker, standard GNU libraries, to compile and link your application. Now as you might know the PIC32 toolchain happens to be GNU compatible …
Tremor is the name of one of the branches of the Ogg Vorbis project optimized for use in embedded applications, minimizing the resources requirements and overall footprint. So I decied to start from it to create a PIC32 based Ogg Vorbis player.
I used the Explorer16 as my hardware development platform in addition to the AV16/32 PIC Tail Plus board (only the audio portion of the circuit is required to use two PWM channels as 12-bit D to A converters and the SD card connector of course).
I also used the SDMMC.c module developed in the book and combined it with the 17 source files that compose the Tremor library (no modifications required whatsoever)!
Hit the compile button, program the PIC32 and … voila’!