mySoftware [Updates]

Once you create a user profile on Motifator and update with the appropriate information, the updates shown here will be specific to you.

newProducts [YOK]

rssFeeds [Syndicate]


Old Motifator threads are available in the Archive.

Viewing topic "Short tutorial on GM files"

Posted on: January 18, 2038 @ 07:14 PM
Total Posts:  36620
Joined  07-30-2002
status: Legend

A short tutorial: Creating Proper GM Files

Important GM rule: Always create a setup measure.

A Setup Measure is one measure in front of any music data. This measure can be used to prepare the receiving device for your data. In it you will place a GM Reset command - which will zero out the previous data. And also you will want to move all your Program Change events into this Setup measure so they do not hiccup on the downbeat of your composition.

This RESET is very important because in GM the last settings persist… if the song faded out, the MASTER volume will be zero. If tons of reverb were used on track 12, you will inherit that from the previous song… etc. So GM rule #1 place a GM Reset command as the first event.

At the very first clock tick of the SETUP MEASURE, on track 1 place the GM RESET command (as a rule keep your system exclusive messages on track 1 - the track does not matter really - they are system wide messages - but this makes it easy for anyone editing your file to find them).

GM RESET Command: F0 7E 7F 09 01 F7

This is the GM RESET. It will automatically return all PARTS to GM Bank’s Piano, except PART 10 which will select the GM Kit… but also will return all volumes to 100, set all reverb sends to 0, all chorus sends to 0, all pan to center, flatten all filter settings, return MW to zero, sets the Pitch Bend to +0000, etc., etc. returns all GM devices receiving this message to an agreed upon neutral state. This is very important.

Next you can input your setup data. However, General MIDI rules require that you allow approximately 100ms of time to pass before you transmit any other MIDI messages to the system. Some recommend 50, some recommend as much as 200ms - not to worry - we have a whole measure so there is plenty of time. This pause is to ensure that the receiving device has time to switch and react to the Reset command.

Bank Select – Program Change
In General MIDI Files Bank Select-Program Change events should appear on each track that you use. These are fairly easy to work with on Yamaha sequencers - as Yamaha uses what is called a “packed” event (be sure to check the documentation of your sequencer if you are using an external device to sequence your data).

Bank Select is a two byte message - a MSB (most significant byte) and a LSB (least significant byte) these two Control Change message each will have a value. This value identifies the bank. Messages will be between 000 and 127. The Bank Select information is followed by a Program Change number (also a number between 000 and 127)

The format is “xxx-yyy-zzz”
‘xxx’ is the MSB value
‘yyy’ is the LSB value
‘zzz’ is the Program Change value

You also will find some sequencers use the long form which involves Control Change 0 (MSB) with a value, followed by Control Change 32 (LSB) with a value, followed by the Program Change event.
Check your sequencer’s documentation for how to input Bank Select andProgram Change commands.

All normal GM sounds are in MSB = 000, LSB = 000
The GM Drum kits are in MSB = 127, LSB = 000

So a Program Change message in the Yamaha sequencer that is:
000-000-000 will recall the GM bank piano

The long form for the GM piano would be:
Control Change 0, value 0
Control Change 32, value 0
Program Change 0

A Program change message in a Yamaha sequencer that is:
127-000-000 will recall the GM Drum Kit

The long form for the GM Drum Kit would be:
Control Change 0, value 127
Control Change 32, value 0
Program Change 0

So how much time after our GM RESET do we leave before we input the Bank Select/Program Change event....? I recommend that you place your Program Change event on beat 2 (that is 001:2:000)
At a tempo of 120 beats per minute a single beat is 500ms - so we have left plenty of time.
So start with track 1, say you have an acoustic bass sound on track 1. This is GM sound number 33… but is going to be Program Change 032 (remember Program Changes start with 000 so they are off by 1 count).

And in this manner you will do the same to each track. Make sure you place them on Beat 2 of measure 001 - so that they do not interfere with the GM RESET and do not interfere with your music data – which will start at measure 002.

Additionally, in your SETUP MEASURE you can customize your mix with other CONTROL CHANGE messages. Control Change messages can ‘edit’ the sound associated with the track.

It is highly recommended that any ‘edit’ messages follow the Program Change event. (It would be silly to edit a sound and then change it...)

You can come up with your own scheme as to where these messages occur (if you prepare lots of files this can be helpful in quickly being able to correct and edit them – if you know where to look). When working on the XG Library we had a system where at 005 clock pulse intervals we would program particular event… but you can come up with your own… for example.

At 001:2:005 you might place a command for the track’s volume…
…and at 001:2:010 you might place a command for the track’s pan position, etc., etc
With a system like this you always know where to look to correct some aspect of the GM mix.

Some common CC message you might want to use:
cc001 Mod Wheel
cc007 (channel) Volume
cc010 Pan
cc011 Expression
cc071 Filter Resonance (Harmonic content)
cc072 Release
cc073 Attack
cc074 Filter Cutoff (Brightness)
cc075 Decay
cc091 Reverb Send
cc093 Chorus Send

Remember: the GM RESET neutralizes all of these to predetermined state to where they are not influencing the music. You can simply set the ones where you want some change from the normal setting. In other words, it is not necessary to input a ModWheel command cc001 = 000 because the GM RESET automatically zeroes out the MW. It is not necessary to set the Filter Cutoff back to normal cc074 = 064 because the GM RESET automatically does this… by the way, filter cutoff since it can be “opened” or closed has a neutral point in the middle. Remember MIDI commands go from 000 through 127 so “064” is approximately the middle - and is the filter at neutral - it is not brightening nor darkening the sound.

Hope this short tutorial is helpful - remember the more fastidious you are with your Setup Measure, the better you are able to ensure that the listener will have successful playback on whatever system they play it.

Find an attached SMF that illustrates

  [ Ignore ]  


Previous Topic:

‹‹ Sequencing