MidiBuilder

Kurt Kaufman kkaufman at snet.net
Fri Feb 13 17:09:48 EST 2004



"...gMeventLen has me intrigued.
i am going to have to write a translation
from the old HyperText method of showing
time, 60q 61e etc. to your approach in order
to play my things.
Is there a rationale behind the way you
represent duration?"

It's hexadecimal (base 16) which is then encoded into the binary form 
that the MIDI player (QT) expects. Put simply, it indicates the amount 
of time before the next MIDI event (note, rest, etc.).
We hear it as a note or rest length.

The "60q, 60e" you refer to above is also translated into the same 
binary data.

The best way to understand how this works is to create a short MIDI 
file of one note (Middle C, quarter note, for instance) with MIDI 
Builder and open it up with a Hex editor (I recommend "HexEdit").
MIDI Builder will produce the simplest MIDI file possible (assuming 4 
music tracks, even though 3 of those in this case will have no music 
data).  Use the chart which is included with the Revolution 
distribution (midi_format.html) and you will be able to follow along.

I could have read the MIDI file specification until my eyes crossed, 
but I really had to "dissect" some actual short MIDI files for their 
construction to become clear to me.

Hope this helps,
Kurt

More info:
http://www.fortunecity.com/tinpan/faithfull/379/smf.html




More information about the use-livecode mailing list