The XG midi synth is a radical step up from the General MIDI (GM) format that forms the basis of midi commands.
MIDI XG STANDARD
- MIDI synthesisers
- XG compatibility
- MIDI channel priority
- Setup Bars
- MIDI Resolution Ticks
- Voice Changes
A new person to the MIDI phenomenon must appreciate that every different make of sound card carries it's own unique on-board synthesiser.
In other words, what you hear will be different to somebody else with another make of soundcard because of the different range and quality of instruments within the synthesiser.
Most of the chunes on this site, (here comes the excuse!) were composed using the Yamaha XG Midi file format which greatly expands the sonic experience through it's ability to control additional parameters such as echo, chorus, stereo effects and other subtle nuances.
So what am I saying? What I'm saying is, if any of the songs sound crap, don't blame me - upgrade your card!!
XG is designed as an extension to the normal General MIDI (GM) format and is also itself an extensible platform.
Consequently, not all XG synths provide all XG features.
If you want to guarantee your music is performed correctly on all XG instruments, then you should respect and restrict yourself to the XG level 1 features.
However there is a defined level 1 format of XG features that are guaranteed to be present and correct in all XG synths. If you want to guarantee your music is performed correctly on all XG instruments, then you should respect and restrict yourself to level 1 features.
Basic level 1 XG synths provide 32 note polyphony shared across 16 midi channels.
Polyphony refers to the number of simultaneous tone generators (or elements) available at the same time. For example... when playing several notes at the same time to form a chord. This does not necessarily imply however, that you can play 32 simultaneous notes as some sounds require more than one element.
The word "element", in the MIDI XG world, is best described as when a particular synth patch (instrument), is actually one or more instruments (or more pedantically, tone generators) sounding together... thus it has one or more elements.
Why can't I necessarily play 32 simultaneous notes...?
Well the level 1 XG MIDI format consists of 32 tone generators, if a sound contains 2 elements, then you're left with only 30 tone generators to use at that time (refer to the XG manual for the number of elements required by each sound). You should bear this in mind if you're creation a complex song. If too many simultaneous notes are used the listener may hear "dropped" or "clipped" notes (There's more coverage of this in the article on latency).
However, the XG format provides an element prioritisation scheme. To make the most of this feature, You should structure the song so that the most important notes are given the highest priority i.e... by assigning the most important tracks to the lower synths parts.
The suggested allocations are given below. You can also however, adjust the element reserves of particular parts to guarantee they always receive the required number of elements.
MIDI channel priority - Recommended settings
|Sub Melody/ Solo/ Accompaniment||2|
MIDI XG Set-up
Always leave a couple of bars before the first note event of a song.
This is where you put all the parts' setup data such as Reset and initialisation commands, ie... clear, and switch on the XG synth, make voice selections, parameter edits and midi note controller data (see Voice Changes).
There are higher resolutions but it's safe to assume that generally, there are 480 "ticks" - technically called Pulses Per Quarter Note (PPQN) - to the beat.
This figure represents the resolution of your sequencer and means that you don't have to strike all notes of a chord at precisely the same time on the keyboard.
Let's look at it like this; if a sequencer had only a 16 tick resolution and you hit 2 notes together - one on the tick precisely, the other slightly later - then the sequencing software would calculate the nearest tick and shift the note to it accordingly - At only 16 PPQN, you can only imagine the velocity at which bottles would impact upon your skull from the laughin audience members!
If you pull up the list editor in the XGWorks sequencer you'll see the 'tick' timings in the left-hand column (from left to right):
- bar number
- beat number
- tick number
...So theoretically, you could put in 480 notes to the beat - not wise!
A resolution of 480 ticks is high BTW... Which is extra good for us MIDI XG users as they allow us to feed the XG synth with more instructions to mould our sound events.
However, the order of some events is very important, particularly controller changes (CC's) such as Bank Select, Program Change, Continuous Controllers (Pitch Bends, Modulation etc..), RPN (XG Registered Parameter Number messages) and NRPN (XG Non Registered Parameter Number messages). If these events are placed on the same "midi tick" within a song, their ordering may not be guaranteed when played back on different sequencers.
To make sure your XG synth is set up properly:
Order and separate these events by at least an interval of 1/480 (ie... one high resolution midi tick).
Continuous Controller data should also be "thinned-out" to intervals of 5/480 to avoid tempo instabilities.
Your finished song should contain all the setup parameters in the set-up bar mentioned above. These will be necessary to configure the synth (including any specially edited voices), BEFORE it actually plays a note.
If you want to change the voice assignment of a track in the middle of a song (e.g... switch the melody line from a guitar to a mad soundin synth), it's best to do this by assigning the new voice to a separate synth part (that's if ya haven't used them all!). This way the new voice will be configured in the initialisation setup bar, rather than sending a mass of data during the body of your song (which could cause timing problems and/or lost notes).
Because Yamaha's MIDI XG format builds extensively on top of GM, and allows more instrument and effect definitions, it also offers more parameters to manipulate sounds with. Consequently, we need all those ticks man!