MIDI Filter Rule Language

From ZynthianWiki
Revision as of 13:52, 8 August 2020 by Jofemodo (Talk | contribs) (Jofemodo moved page Configure MIDI Filter/Router to MIDI Filter Rule Language)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The MIDI Filter Rule System is integrated in the webconf tool. You can create your rules by hand or using the “rule composition” dialog.

We have developed a simple MIDI Filter Rule Language that can be used for creating rule-sets. This "rule-sets" can do a lot of interesting tricks with your MIDI input flow. If you have a MIDI-OUT (like the new Zynthian Kits v2 have), you can also use your Zynthian Box as a powerful standalone MIDI filter.

Here is the MIDI Filter Rule Language syntax:

Rule Formats:

IGNORE [CH#??] EV[#??]
MAP [CH#??] EV[#??] => [CH#??] EV[#??]
CLEAN [CH#??] EV[#??]

Event types:

CC#?? => Continuous Controller Change (??=controller number)
NON#??, NOFF#?? => Note-On, Note-Off (??=note number)
PC#?? => Program Change (??=program number)
KP => Key Press (after-touch)
CP => Channel Press (after-touch)
PB => Pitch Bending

Numeric expressions:

5	=> a single number
5,6,7 => a list of numbers
5:7	=> a range of numbers, including both limitters
1,2,3:5	=> a mix of lists and ranges

Some Examples:

IGNORE CH#2 PC => Ignore Program Change events coming from channel 2
MAP CH#1 CC#7 => CC#1 => Map Volume Control events from channel 1 to Modulation Wheel events in the same channel
MAP CH#1 CC#0:127 => CH#2 CC#0:127 => Map all CC (Continuous Controller) events from channel 1 to channel 2
MAP CH#0 NON#0:45 => CH#1 NON#0:45
MAP CH#0 NOFF#0:45 => CH#1 NOFF#0:45 => "Split" your keyboard, sending the lower notes (until A-1) to channel 2