View Full Version : [Tutorial] Magnius Advanced Music Hacking Tutorial - Midi Events

August 15th, 2009, 9:27 PM
Hey, what's up guys this is Magnius here again today with another tutorial on how to make your music that you insert in Sappy, sound even more professional. But what will I be covering today? Well, midi events. Midi events are things that you can add to your midi files in order to change a number of variables such as a tracks volume or a tracks instrument, on the fly.

But what does that have to do with music hacking? Well, the official FRLG songs use midi events in them and by knowing how to use these midi events correctly, you can not only make your midis sound more official, but you can make your midis look more official.

So basically, in this tutorial I will first explain to you, HOW to insert midi events and then tell you what those events do.

However, before you move on you're going to need 2 programs... Anvil Studio and WinjammerPro, both which are free. The links to where to download them are listed below...

You can get Anvil Studio there.


http://home.mchsi.com/~davidbmidi5/_disco/000000f6.htm (http://home.mchsi.com/%7Edavidbmidi5/_disco/000000f6.htm)
You can get WinJammer there.

Both are pretty much required for this tutorial.

It's also recommended you read these documents and tutorials, before reading this one...

Magnius Guide to Pokemon Music Hacking Part 1

Magnius Guide to Pokemon Music Hacking Part 2

So now on to the tutorial...

So, how do you actually add a midi event in Anvil Studio?

Well, that's a good question. Well to make things easy, I'll tell you things step by step.

1. Open up Anvil Studio.


2. Next, find where it says "File" near the upper left corner and click on that.


3. Once you've clicked on that, find "Open Song..." on that menu.


4. Next find a midi of your choice and open that.


5. Now that you've done that, find the "View" option at the top and click on that. Then make sure it's set to "Mixer".


6. Select the track that you want add a midi event to.


7. Now this isn't mandatory, but it's probably a good idea to solo out this track, so that only it is playing. To do this, look in the "On" column of that particular track. Then keep clicking in the "On" section of that track, until it changes to Solo.


8. Next, with that same track selected, click on View near the top. After that scroll down to "Piano Roll Editor". This will take you to the Piano Roll.


9. Once you're in the Piano Roll, listen to the track and decide where you want to insert the event. After you've done that, click on the place where you want to insert the event.


10. After that, find "Edit" at the top and click on it. Then find "Insert MIDI Controller Event..." on the list of options and click on that.


11. After this, you should see a box that says "New MIDI Event" at the top. When you get to this box make sure "Show all controller events" is checked.


Now, do you notice that small scrolling box, next to "Kind of event:"? Well by default the box should say "ChannelVolume - b007".

That my friends is a midi event. If you look below that you'll see the words "Control Value" with a box next to it that has numbers.


That's basically the Control Value of the midi event.


If you click on the scrolling box next to "Kind of event:" and keep scrolling down, you'll see a ton of different midi events.

Now, in this tutorial I won't be covering ALL the midi events, however, I will only be covering those commonly used in the FRLG mixes. Those events are...

1. ChannelVolume - b007

ChannelVolume - b007, as it's listed in Anvil Studio, is a midi event that allows you to change a track's volume at a selected position in the song. So if you want a track to play loud at one point, but then want the volume of the track to suddenly become low, you can use this event for that. The control value of this event, decides how loud or how soft the volume change will be. As you can probably guess "100" is the loudest volume and 0 is the lowest volume.

Now, if you want the volume to gradually get lower, that's more advanced, but can be done in WinJammer.

2. Program Change

Alright, so if you go into Sappy and isolate one of the DirectSound tracks on one of the official FRLG songs, more than likely you'll notice that sometimes that one track, may change it's instrument on the fly. This is used in MOST official FRLG mixes and is a great way to fit more instruments in, without adding more tracks in. After all, the GBA can only have 5 DirectSound tracks playing at once.

The control value for this midi event, is basically the instrument number that you want to switch to. How to figure out what numbers correspond to what instruments, has been covered already in another document.

3. Panpot - b00a

Well, if you go into Sappy and examine the tracks of some of the FRLG mixes, sometimes you'll notice the sound moving either to left or to the right, as opposed to being in the center like usual. This, my friends is called panning and it's something that most of the official FRLG mixes use.

The control value for this one is kind of confusing. Basically the way I like to think, is that "30" is the value I use if I want to pan the sound to the left and "90" is the value I use if I want to pan the sound to the right. "64" is what I use if I want to center the sound.

And yeah, that's the end of part one of the tutorial. On the next tutorial, I'll be covering one more new event, that you need Winjammer for and I'll be covering how to do advanced things with events in Winjammer.

August 16th, 2009, 7:29 PM
Nice tut,though I'm wondering if there's any about Emerald...

August 16th, 2009, 10:58 PM
Nice tut,though I'm wondering if there's any about Emerald...
Well this basically applies ALL midis that you insert into ANY GBA rom. So this will work with inserting midis into Emerald too.

August 20th, 2009, 10:59 AM
I'm bumping this, just to keep it up.

OM3GA Umbr30n
January 21st, 2010, 12:59 PM
*BUMP 2.0*
This is an awsome tutorial i bumped it to bring it up again :D