OpenMPT manual — Zxx Macros

author OpenMPT Wiki
date 2026-08-30
article Manual: Zxx Macros (wiki page as fetched on 2026-08-30; CC BY-SA 3.0)
created 2026-08-30 · updated 2026-08-30

How the Zxx (and smooth \xx) commands drive openmpt's built-in resonant filter, plugin parameters and external MIDI — the PC tracker's equivalent of a SID filter table (filter-programming).

Key claims#

  • Macros are MIDI messages executed by Zxx / \xx in XM, IT and MPTM; configured in the Macro Configuration dialog; several messages can be chained (Bc0Az Bc0Bz), and 5-nibble messages must be padded when followed by another.
  • Parametered macros: 16 of them, one active per channel, driven by Z00Z7F; switched with SFx (IT) or EFx (XM). Fixed macros: 128, Z80ZFF; by default Z80Z8F set the filter resonance and Z90ZFF do nothing, but each can carry any message — lowpass on, highpass on, plugin dry/wet 0 % or 100 %, several parameters at once.
  • Resonant filter messages: F0 F0 00 xx cutoff (00 lowest … 7F highest; the top depends on Extended Filter Range; for OPL instruments it sets modulator intensity, "effectively … a lowpass filter"), F0 F0 01 xx resonance, F0 F0 02 00 lowpass, F0 F0 02 10 highpass (mutually exclusive). The default parametered macro is cutoff, the default fixed macros resonance; per-instrument filter settings exist too. Macros apply to the next sample unless the instrument overrides them; with Local Filters (S9D) the filter resets on every note; cutoff 7F + resonance 00 disables it. The filter affects samples only, never plugins.
  • Plugin dry/wet F0 F0 03 xx; plugin parameters F0 F0 (80+n) yy (first 128 parameters) and F0 F1 … (128–383), coarse; MPTM's Parameter Control Events are finer. External messages (CCs, aftertouch, notes) go to the first plugin in the chain; \xx interpolates only from the previous Zxx/\xx on the channel.

Practical takeaways#

Z00Z7F = filter cutoff sweep, Z80Z8F = resonance, SFx picks which parametered macro a channel uses; a filter "table" in IT/OpenMPT is a column of Zxx values — a chip-style sweep costs one command per row.

Notable quotes#

"By default, The macros Z80 through Z8F control the resonant filter′s resonance amount and Z90 through ZFF do nothing."

Pages touched#

filter-programming · openmpt · impulse-tracker · it-format

source file wiki/summaries/s-openmpt-manual-zxx-macros.md · graph