TW #98 — Impulse Tracker MIDI (Airon)
Airon's guide to IT's MIDI output: what the tracker sends, which controllers matter, and how to write them as Zxx/SFx macros.
Key claims#
- Note-off timing: with a sample instrument's NNA set to note fade and a volume fade-out around 120, IT sent MIDI NOTE OFF late (the synth's activity LED showed it); NNA note cut and fade-out 0 fixed it. The rule: NOTE OFF goes out when the note's tracker volume reaches zero, so the volume fade-out value is a legato control — larger fade = notes overlap less, zero = no legato; for legato use NNA note fade. A note cut (
^^^) sends NOTE OFF instantly. Most synths let the same note retrigger without killing the previous one. - Velocity vs volume: IT's volume column becomes the NOTE ON velocity (how hard a key is hit — changes timbre, e.g. a brighter hard-hit piano). MIDI volume is controller
07(level without changing character, "the distance to the listener"); he could not make IT's own volume line in MIDI Output Config behave and writes anSFxmacroBc 07 zinstead. - Controllers (all hex;
c= MIDI channel,z= 0–7F): modulationBc 01 z(usually vibrato depth only, unlike tracker vibrato which sets speed and depth); panBc 0A z(0 left, 40 centre, 7F right; relative on his synth; balance is08); bank selectBc 00 a Bc 20 b(MSB/LSB); program changeCc pp; general-purpose effects5B(reverb) and5D(chorus) on some synths; breath0B, sostenuto42(0–3F off, 40–7F on), soft pedal43. Each synth's MIDI implementation chart says what it accepts. - Macros in IT:
Z80–ZFFare static macros for fixed messages — bank select, hold pedal on/off, sysex, GM mode, patch/performance mode;SF0–SFFselect parametered macros whose data byte comes fromZ00–Z7F— modulation, expression, breath, volume, pan, or several at once. - MIDI is a 31.5 kbps serial protocol: chords, drums and controllers on the same tick are sent one after another, left-most tracker channel first, so put drums and rhythm parts in the left channels and "don't go wild" with controllers (Doom's E1M2 as a bandwidth horror story; multi-port interfaces are the pro fix, not available to a DOS program).
- Postscript: "anyone caught with a pirated stereo WAV driver for IT is on my very personal shit list … Where's your donation?"
Practical takeaways#
For MIDI instruments: NNA note cut + fade 0 for tight timing, note fade + a small fade-out for legato; volume column = velocity; SFx + Zxx for controllers, Z80+ for fixed messages; drums in the left-most channels.
Notable quotes#
- "MIDI is a serial protocol so don't go wild!"
Relevance#
The only hands-on MIDI-output source in the wiki; it explains the macro system that openmpt later reuses for its filter (s-openmpt-manual-zxx-macros) and shows a side effect of new-note-actions.
Pages touched#
midi-in-trackers, impulse-tracker, new-note-actions, vibrato, stereo-panning.