Creating and Editing Multi-instruments
Have you ever listened to your music and thought, “gee, if only I could get the tune to switch to this sample when it plays these notes”? Or perhaps wanted to have some note play in the left ear, and others in the right? If you have, multi-instruments are here to save the day. This is also critical if you want to import samples from DS and some other GBA games, so pay close attention.
Multi-instruments fun things to play with. As stated before, they come in a structure like this:
40 00 00 00 XX XX XX 08 YY YY YY 08
The 0x40 lets the game know it’s a multi instrument, but then the next two pointers are a little bit different from Direct instruments. The first pointer is to another table of instruments, and the second is a pointer to an array of numbers that designate each note and which of the instruments within that table to play. Confused? Don’t worry, I totally get it. Here’s a graphical representation of that information:
So the first pointer points to an array of more Direct instruments. The second pointer is to a set of data that designates which of the instruments each note should play. For your sake I have put the notes above each byte to represent what each one means. There are 10 octaves in standard MIDI notation, so you only need a maximum of 120 bytes to store this information. You can have as many different Direct instrument as you like; there is no specific limitation. Keep in mind that each Direct instrument has its own envelope, too. This can be very important, provided you know how to use it…
All of this can be edited via Sappy, which is what makes this program so bloody beautiful. Just make sure you put each set of data in free space. As soon as you change the instrument type to “Multi” you’ll be presented with this screen:
Hitting Edit on the first pointer brings you to an array of more Direct instruments, which should be very familiar to you by now.
Hitting Edit on the second pointer, however, brings you this:
This, my friend, is a beautiful, graphical and interactive representation of the data from the second pointer. It specifically shows you the notes that the first Direct instrument will play for… (Tip: I always click “Show all Samples” otherwise if Sappy doesn’t detect an instrument it won’t show in the dropdown menu)
And you can select other samples within your multi-sample group, too.
If you actually click on the keys it will select the notes for you, and you can hold your mouse down and drag it across the keys if you like, too.
In case it wasn’t obvious enough, this is how everything correlates:
You pretty much know how to construct a multi-instrument now. It’s quite straightforward, even if explaining it in words is a bit difficult.





