Advanced Sound Library
The Advanced Sound Library (ASlib) is a new sound library for the NDS.
* MP3 engine:
– mp3 is decoded on the arm7, so use nearly no CPU time on the arm9
– stereo & surround modes available (surround works even for mono mp3s)
– up to 44Khz/stereo/96Kbps, though I recommend using 32Khz/stereo/80Kbps max, which is enough for the DS and works great with up to +25%/-100% pitching
– support real-time pitching (changing the playing speed of the mp3)
– support real-time volume and panning change
– the mp3 can be paused and restarted
– the mp3 can be set to loop automatically
– support playing from RAM and streaming from FAT or EFS
– you can disable the mp3 engine if you want, to get 2 more channels
* Audio engine:
– can use the whole 16 DS channel or only the first half (so you can use an external mod player, for example)
– support standard or surround/fx mode (16 channels in standard mode (-2 if mp3), 8 in surround/fx mode (-1 if mp3))
– simple sound playing using a priority system: if no channel is available, stop a sound that has less priority than the new one to play it, or skip it if all sounds have more priority.
– possibility to reserve a particular channel so it won’t be used in the channel pool by the priority playing system. You can then manage the reserved sound channels manually.
– surround or pseudo-reverb can be activated per sound (works great with mono sounds)
– support real-time volume, panning and pitch modifications for each sound
– support sound looping
The lib comes with a template and a example of what you can do with it.
It didn’t tested it exhaustively, so feel free to report any bug.
– IPC sound system and streaming is based on cold_as_ice streaming example
– audio stream filling / mp3 decoding based on ThomasS mp3 decoding example
– ASM stereo desinterleave function was made by Thoduv