by Bregalad » Sat Aug 11, 2012 8:30 am
It's basically what Jaystair said.
Instead of providing hardware to play samples like the Super Nindendo does, the Game Boy Advance's Direct channels just allows to play back a sound buffer where the program can mix whatever it wants. You can think of it being like on a PC - you send a few samples for a short amount of time and the hardware play it, but you need to send something again when it has completed playing.
The only limitation then becomes the CPU itself - and unfortunately in the GBA's case the CPU is not very powerful therefore the number of simultaneously playing samples and the quality of re-sampling are usually mediocre.
The sappy sound engine, which is what most games used and what the ripper can rip allows games to select from 4 to 12 sound "channels" which works similarly to Super Nintendo's channels. However, if a game chooses 12 channels, the music engine can take a lot of time to complete, while if it chooses 4 channels, it is guaranteed the music engine will be reasonably fast.
Also the sampling rate is selectable, and most games selected a low sample rate to avoid lagging.
When music is played after being ripped by GBAMusRiper, it is played entirely by MIDI - no GBA is being emulated - therefore there is no limitations in sample rate and number of simultaneously playing channels (or I'd say those are limited to your PC instead of your GBA - which is thousands of times less limited).