95 lines
4.2 KiB
Plaintext
95 lines
4.2 KiB
Plaintext
// MB MIDI Event Filter2
|
|
// 16.05.2010
|
|
|
|
desc:MB MIDI Event Filter2 (v1.0)
|
|
|
|
slider1:0<0,17,1{Off,All,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}>MIDI Channel for filters
|
|
slider2:0<0,16,1{Same as input,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}>MIDI Channel for output
|
|
slider3:0<0,1,1{Off,On}>Pitch Wheel filter
|
|
slider4:0<0,1,1{Off,On}>Polyphonic Aftertouch filter
|
|
slider5:0<0,1,1{Off,On}>Channel Aftertouch filter
|
|
slider6:0<0,1,1{Off,On}>Program Change filter
|
|
slider7:0<0,129,1{Off,All,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127}>Control Change filter #1
|
|
slider8:0<0,129,1{Off,All,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127}>Control Change filter #2
|
|
slider9:0<0,129,1{Off,All,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127}>Control Change filter #3
|
|
slider10:0<0,129,1{Off,All,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127}>Control Change filter #4
|
|
|
|
|
|
in_pin:none
|
|
out_pin:none
|
|
|
|
@init
|
|
NOTE_OFF = $x80; // note off MIDI message code
|
|
NOTE_ON = $x90; // note on MIDI message code
|
|
AFTERTOUCH_POLY = $xA0; // poly aftertouch MIDI message code
|
|
CONTROL_CHANGE = $xB0; // control change MIDI message code
|
|
PROGRAM_CHANGE = $xC0; // program change MIDI message code
|
|
AFTERTOUCH_CHANNEL = $xD0; // channel aftertouch MIDI message code
|
|
PITCH_BEND = $xE0; // pitch bend MIDI message code
|
|
OTHER = $xF0;
|
|
|
|
@block
|
|
while
|
|
(
|
|
midirecv(mpos, msg1, msg23) ?
|
|
(
|
|
// get message components
|
|
msg = (msg1 & $xf0); // message type nibble
|
|
channel = (msg1 & $x0f) + 1; // channel nibble
|
|
eat = 0;
|
|
|
|
(
|
|
((msg != 0) && (msg != OTHER) && ((slider1 == 1) || (slider1 == channel + 1)))) ?
|
|
(
|
|
lastmsg = msg;
|
|
|
|
(msg == CONTROL_CHANGE) ? // control change filter
|
|
(
|
|
cnum = (msg23 & $xff);
|
|
(
|
|
((slider7 == 1) || (slider7 == cnum + 2)) ||
|
|
((slider8 == 1) || (slider8 == cnum + 2)) ||
|
|
((slider9 == 1) || (slider9 == cnum + 2)) ||
|
|
((slider10 == 1) || (slider10 == cnum + 2))
|
|
) ?
|
|
(
|
|
eat = 1;
|
|
);
|
|
);
|
|
|
|
((msg == PITCH_BEND) && (slider3 == 1)) ? // pitch bend filter
|
|
(
|
|
eat = 1;
|
|
);
|
|
|
|
((msg == AFTERTOUCH_POLY) && (slider4 == 1)) ? // polyphonic aftertouch filter
|
|
(
|
|
eat = 1;
|
|
);
|
|
|
|
((msg == AFTERTOUCH_CHANNEL) && (slider5 == 1)) ? // polyphonic aftertouch filter
|
|
(
|
|
eat = 1;
|
|
);
|
|
|
|
((msg == PROGRAM_CHANGE) && (slider6 == 1)) ? // program changes
|
|
(
|
|
eat = 1;
|
|
);
|
|
);
|
|
|
|
(eat == 0) ?
|
|
(
|
|
// channel remap
|
|
((msg != OTHER) && (slider2 > 0)) ?
|
|
(
|
|
msg1 = msg | (slider2 - 1);
|
|
);
|
|
|
|
midisend(mpos, msg1, msg23);
|
|
);
|
|
);
|
|
|
|
msg1;
|
|
);
|