Difference between revisions of "MIDI Filter Rule Language"
Jump to navigation
Jump to search
(Created page with "Finally we have the new “MIDI Filter Rule System” feature integrated in the webconf tool. You can create your rules by hand or using the wonderful “rule composition” d...") |
m (Fixed some typos) |
||
(6 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