I've worked with MIDI a little and those files can store a lot of stuff. There are literally hundreds of "controllers" that are available. Even effects such as reverb, delay, tremolo etc. Now I don't know how they do it nowadays or with all systems, but I once read the sound section of the GBA SDK documentation (I am a composer and I'm really fascinated of how they did game music before just using wave data) and it literally said that the music data needs to be .MID (and could be composed with whichever software the composer wanted) and sample files .AIFF and then use the supplied tool to convert these into the required formats to run on GBA.