Difference between revisions of "MIDI Filter Rule Language"
Jump to navigation
Jump to search
m (Jofemodo moved page Configure MIDI to Configure MIDI Filter/Router) |
m (Fixed some typos) |
||
(5 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | + | 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. These "rule-sets" can do a lot of interesting tricks with your MIDI input flow. If you have a MIDI-OUT, you can also use your Zynthian Box as a powerful standalone MIDI filter. | |
− | Here is the MIDI Filter Rule Language syntax: | + | Here is the '''MIDI Filter Rule Language''' syntax: |
==Rule Formats:== | ==Rule Formats:== | ||
Line 13: | Line 13: | ||
==Event types:== | ==Event types:== | ||
− | |||
− | |||
− | |||
− | |||
CC#?? => Continuous Controller Change (??=controller number) | CC#?? => Continuous Controller Change (??=controller number) | ||
+ | NON#??, NOFF#?? => Note-On, Note-Off (??=note number) | ||
+ | PC#?? => Program Change (??=program number) | ||
+ | KP => Key Pressure (aftertouch) | ||
+ | CP => Channel Pressure (aftertouch) | ||
+ | PB => Pitch Bend | ||
==Numeric expressions:== | ==Numeric expressions:== | ||
Line 23: | Line 24: | ||
5 => a single number | 5 => a single number | ||
5,6,7 => a list of numbers | 5,6,7 => a list of numbers | ||
− | 5:7 => a range of numbers, including both | + | 5:7 => a range of numbers, including both limiters |
1,2,3:5 => a mix of lists and ranges | 1,2,3:5 => a mix of lists and ranges | ||
+ | |||
==Some Examples:== | ==Some Examples:== | ||
− | IGNORE CH#2 | + | IGNORE CH#2 PC => Ignore Program Change events coming from channel 2 |
− | MAP CH#1 CC#7 => CC#1 => | + | |
− | MAP CH#1 CC#0:127 => CH#2 CC#0:127 => | + | 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 |
Latest revision as of 06:17, 19 June 2022
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. These "rule-sets" can do a lot of interesting tricks with your MIDI input flow. If you have a MIDI-OUT, you can also use your Zynthian Box as a powerful standalone MIDI filter.
Here is the MIDI Filter Rule Language syntax:
1 Rule Formats:
IGNORE [CH#??] EV[#??] MAP [CH#??] EV[#??] => [CH#??] EV[#??] CLEAN [CH#??] EV[#??]
2 Event types:
CC#?? => Continuous Controller Change (??=controller number) NON#??, NOFF#?? => Note-On, Note-Off (??=note number) PC#?? => Program Change (??=program number) KP => Key Pressure (aftertouch) CP => Channel Pressure (aftertouch) PB => Pitch Bend
3 Numeric expressions:
5 => a single number 5,6,7 => a list of numbers 5:7 => a range of numbers, including both limiters 1,2,3:5 => a mix of lists and ranges
4 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