diff --git a/MIDI/josmmuozjwalkman_MIDI Note Convert.jsfx b/MIDI/josmmuozjwalkman_MIDI Note Convert.jsfx new file mode 100644 index 0000000..5c623a0 --- /dev/null +++ b/MIDI/josmmuozjwalkman_MIDI Note Convert.jsfx @@ -0,0 +1,14 @@ +desc: MIDI Note Convert +author: José M Muñoz (J-WalkMan) +version: 0.9 +changelog: Initial release +metapackage: true +provides: + josmmuozjwalkman_MIDI Note Convert/MIDI Note to CC.jsfx > josmmuozjwalkman_MIDI Note Convert/JWM_MIDI Note to CC + josmmuozjwalkman_MIDI Note Convert/MIDI Note to PC.jsfx > josmmuozjwalkman_MIDI Note Convert/JWM_Midi Note to PC + josmmuozjwalkman_MIDI Note Convert/MIDI Note Trigger CC > josmmuozjwalkman_MIDI Note Convert/JWM_MIDI Note Trigger CC +about: + #MIDI Note Convert + + These JSFX Plugins turn MIDI note messages to other types of messages like CC or PC + diff --git a/MIDI/josmmuozjwalkman_MIDI Note Convert/MIDI Note Trigger CC b/MIDI/josmmuozjwalkman_MIDI Note Convert/MIDI Note Trigger CC new file mode 100644 index 0000000..b590a50 --- /dev/null +++ b/MIDI/josmmuozjwalkman_MIDI Note Convert/MIDI Note Trigger CC @@ -0,0 +1,102 @@ +desc:MIDI Note Trigger CC +//tags: MIDI processing routing +// Uses a MIDI Note to trigger up to 10 CC messages. +// The trigger note gets converted to CC but other messages +// pass through normally + +slider1: 0<0, 127, 1> Trigger note + +slider2: 0<0, 128, 1{Off, 0 Bank Sel M,1 Mod Wheel M,2 Breath M,3,4 Foot P M,5 Porta M,6 Data Entry M,7 Vol M,8 Balance M,9,10 Pan M,11 Expression M,12 Ctrl 1 M,13 Ctrl 2 M,14,15,16 GP Slider 1,17 GP Slider 2,18 GP Slider 3,19 GP Slider 4,20,21,22,23,24,25,26,27,28,29,30,31,32 Bank Sel L,33 Mod Wheel L,34 Breath L,35,36 Foot P L,37 Porta L,38 Data Entry L,39 Vol L,40 Balance L,41,42 Pan L,43 Expression L,44 Ctrl 1 L,45 Ctrl 2 L,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 Hold P sw,65 Porta sw,66 Sustenuto sw,67 Soft P sw,68 Legato P sw,69 Hold 2 P sw,70 S.Variation,71 S.Timbre,72 S.Release,73 S.Attack,74 S.Brightness,75 S.Ctrl 6,76 S.Ctrl 7,77 S.Ctrl 8,78 S.Ctrl 9,79 S.Ctrl 10,80 GP B.1 sw,81 GP B.2 sw,82 GP B.3 sw,83 GP B.4 sw,84,85,86,87,88,89,90,91 Effects Lv,92 Trem Lv,93 Chorus Lv,94 Celeste Lv,95 Phaser Lv,96 Data B. Inc,97 Data B. Dec,98 NRP L,99 NRP M,100 RP L,101 RP M,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}> CC 1 # +slider3: 0<0, 127, 1> CC 1 Value +slider4: 0<0, 128, 1{Off, 0 Bank Sel M,1 Mod Wheel M,2 Breath M,3,4 Foot P M,5 Porta M,6 Data Entry M,7 Vol M,8 Balance M,9,10 Pan M,11 Expression M,12 Ctrl 1 M,13 Ctrl 2 M,14,15,16 GP Slider 1,17 GP Slider 2,18 GP Slider 3,19 GP Slider 4,20,21,22,23,24,25,26,27,28,29,30,31,32 Bank Sel L,33 Mod Wheel L,34 Breath L,35,36 Foot P L,37 Porta L,38 Data Entry L,39 Vol L,40 Balance L,41,42 Pan L,43 Expression L,44 Ctrl 1 L,45 Ctrl 2 L,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 Hold P sw,65 Porta sw,66 Sustenuto sw,67 Soft P sw,68 Legato P sw,69 Hold 2 P sw,70 S.Variation,71 S.Timbre,72 S.Release,73 S.Attack,74 S.Brightness,75 S.Ctrl 6,76 S.Ctrl 7,77 S.Ctrl 8,78 S.Ctrl 9,79 S.Ctrl 10,80 GP B.1 sw,81 GP B.2 sw,82 GP B.3 sw,83 GP B.4 sw,84,85,86,87,88,89,90,91 Effects Lv,92 Trem Lv,93 Chorus Lv,94 Celeste Lv,95 Phaser Lv,96 Data B. Inc,97 Data B. Dec,98 NRP L,99 NRP M,100 RP L,101 RP M,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}> CC 2 # +slider5: 0<0, 127, 1> CC 2 Value +slider6: 0<0, 128, 1{Off, 0 Bank Sel M,1 Mod Wheel M,2 Breath M,3,4 Foot P M,5 Porta M,6 Data Entry M,7 Vol M,8 Balance M,9,10 Pan M,11 Expression M,12 Ctrl 1 M,13 Ctrl 2 M,14,15,16 GP Slider 1,17 GP Slider 2,18 GP Slider 3,19 GP Slider 4,20,21,22,23,24,25,26,27,28,29,30,31,32 Bank Sel L,33 Mod Wheel L,34 Breath L,35,36 Foot P L,37 Porta L,38 Data Entry L,39 Vol L,40 Balance L,41,42 Pan L,43 Expression L,44 Ctrl 1 L,45 Ctrl 2 L,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 Hold P sw,65 Porta sw,66 Sustenuto sw,67 Soft P sw,68 Legato P sw,69 Hold 2 P sw,70 S.Variation,71 S.Timbre,72 S.Release,73 S.Attack,74 S.Brightness,75 S.Ctrl 6,76 S.Ctrl 7,77 S.Ctrl 8,78 S.Ctrl 9,79 S.Ctrl 10,80 GP B.1 sw,81 GP B.2 sw,82 GP B.3 sw,83 GP B.4 sw,84,85,86,87,88,89,90,91 Effects Lv,92 Trem Lv,93 Chorus Lv,94 Celeste Lv,95 Phaser Lv,96 Data B. Inc,97 Data B. Dec,98 NRP L,99 NRP M,100 RP L,101 RP M,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}> CC 3 # +slider7: 0<0, 127, 1> CC 3 Value +slider8: 0<0, 128, 1{Off, 0 Bank Sel M,1 Mod Wheel M,2 Breath M,3,4 Foot P M,5 Porta M,6 Data Entry M,7 Vol M,8 Balance M,9,10 Pan M,11 Expression M,12 Ctrl 1 M,13 Ctrl 2 M,14,15,16 GP Slider 1,17 GP Slider 2,18 GP Slider 3,19 GP Slider 4,20,21,22,23,24,25,26,27,28,29,30,31,32 Bank Sel L,33 Mod Wheel L,34 Breath L,35,36 Foot P L,37 Porta L,38 Data Entry L,39 Vol L,40 Balance L,41,42 Pan L,43 Expression L,44 Ctrl 1 L,45 Ctrl 2 L,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 Hold P sw,65 Porta sw,66 Sustenuto sw,67 Soft P sw,68 Legato P sw,69 Hold 2 P sw,70 S.Variation,71 S.Timbre,72 S.Release,73 S.Attack,74 S.Brightness,75 S.Ctrl 6,76 S.Ctrl 7,77 S.Ctrl 8,78 S.Ctrl 9,79 S.Ctrl 10,80 GP B.1 sw,81 GP B.2 sw,82 GP B.3 sw,83 GP B.4 sw,84,85,86,87,88,89,90,91 Effects Lv,92 Trem Lv,93 Chorus Lv,94 Celeste Lv,95 Phaser Lv,96 Data B. Inc,97 Data B. Dec,98 NRP L,99 NRP M,100 RP L,101 RP M,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}> CC 4 # +slider9: 0<0, 127, 1> CC 4 Value +slider10: 0<0, 128, 1{Off, 0 Bank Sel M,1 Mod Wheel M,2 Breath M,3,4 Foot P M,5 Porta M,6 Data Entry M,7 Vol M,8 Balance M,9,10 Pan M,11 Expression M,12 Ctrl 1 M,13 Ctrl 2 M,14,15,16 GP Slider 1,17 GP Slider 2,18 GP Slider 3,19 GP Slider 4,20,21,22,23,24,25,26,27,28,29,30,31,32 Bank Sel L,33 Mod Wheel L,34 Breath L,35,36 Foot P L,37 Porta L,38 Data Entry L,39 Vol L,40 Balance L,41,42 Pan L,43 Expression L,44 Ctrl 1 L,45 Ctrl 2 L,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 Hold P sw,65 Porta sw,66 Sustenuto sw,67 Soft P sw,68 Legato P sw,69 Hold 2 P sw,70 S.Variation,71 S.Timbre,72 S.Release,73 S.Attack,74 S.Brightness,75 S.Ctrl 6,76 S.Ctrl 7,77 S.Ctrl 8,78 S.Ctrl 9,79 S.Ctrl 10,80 GP B.1 sw,81 GP B.2 sw,82 GP B.3 sw,83 GP B.4 sw,84,85,86,87,88,89,90,91 Effects Lv,92 Trem Lv,93 Chorus Lv,94 Celeste Lv,95 Phaser Lv,96 Data B. Inc,97 Data B. Dec,98 NRP L,99 NRP M,100 RP L,101 RP M,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}> CC 5 # +slider11: 0<0, 127, 1> CC 5 Value + +slider12: 0<0, 128, 1{Off, 0 Bank Sel M,1 Mod Wheel M,2 Breath M,3,4 Foot P M,5 Porta M,6 Data Entry M,7 Vol M,8 Balance M,9,10 Pan M,11 Expression M,12 Ctrl 1 M,13 Ctrl 2 M,14,15,16 GP Slider 1,17 GP Slider 2,18 GP Slider 3,19 GP Slider 4,20,21,22,23,24,25,26,27,28,29,30,31,32 Bank Sel L,33 Mod Wheel L,34 Breath L,35,36 Foot P L,37 Porta L,38 Data Entry L,39 Vol L,40 Balance L,41,42 Pan L,43 Expression L,44 Ctrl 1 L,45 Ctrl 2 L,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 Hold P sw,65 Porta sw,66 Sustenuto sw,67 Soft P sw,68 Legato P sw,69 Hold 2 P sw,70 S.Variation,71 S.Timbre,72 S.Release,73 S.Attack,74 S.Brightness,75 S.Ctrl 6,76 S.Ctrl 7,77 S.Ctrl 8,78 S.Ctrl 9,79 S.Ctrl 10,80 GP B.1 sw,81 GP B.2 sw,82 GP B.3 sw,83 GP B.4 sw,84,85,86,87,88,89,90,91 Effects Lv,92 Trem Lv,93 Chorus Lv,94 Celeste Lv,95 Phaser Lv,96 Data B. Inc,97 Data B. Dec,98 NRP L,99 NRP M,100 RP L,101 RP M,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}> CC 6 # +slider13: 0<0, 127, 1> CC 6 Value +slider14: 0<0, 128, 1{Off, 0 Bank Sel M,1 Mod Wheel M,2 Breath M,3,4 Foot P M,5 Porta M,6 Data Entry M,7 Vol M,8 Balance M,9,10 Pan M,11 Expression M,12 Ctrl 1 M,13 Ctrl 2 M,14,15,16 GP Slider 1,17 GP Slider 2,18 GP Slider 3,19 GP Slider 4,20,21,22,23,24,25,26,27,28,29,30,31,32 Bank Sel L,33 Mod Wheel L,34 Breath L,35,36 Foot P L,37 Porta L,38 Data Entry L,39 Vol L,40 Balance L,41,42 Pan L,43 Expression L,44 Ctrl 1 L,45 Ctrl 2 L,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 Hold P sw,65 Porta sw,66 Sustenuto sw,67 Soft P sw,68 Legato P sw,69 Hold 2 P sw,70 S.Variation,71 S.Timbre,72 S.Release,73 S.Attack,74 S.Brightness,75 S.Ctrl 6,76 S.Ctrl 7,77 S.Ctrl 8,78 S.Ctrl 9,79 S.Ctrl 10,80 GP B.1 sw,81 GP B.2 sw,82 GP B.3 sw,83 GP B.4 sw,84,85,86,87,88,89,90,91 Effects Lv,92 Trem Lv,93 Chorus Lv,94 Celeste Lv,95 Phaser Lv,96 Data B. Inc,97 Data B. Dec,98 NRP L,99 NRP M,100 RP L,101 RP M,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}> CC 7 # +slider15: 0<0, 127, 1> CC 7 Value +slider16: 0<0, 128, 1{Off, 0 Bank Sel M,1 Mod Wheel M,2 Breath M,3,4 Foot P M,5 Porta M,6 Data Entry M,7 Vol M,8 Balance M,9,10 Pan M,11 Expression M,12 Ctrl 1 M,13 Ctrl 2 M,14,15,16 GP Slider 1,17 GP Slider 2,18 GP Slider 3,19 GP Slider 4,20,21,22,23,24,25,26,27,28,29,30,31,32 Bank Sel L,33 Mod Wheel L,34 Breath L,35,36 Foot P L,37 Porta L,38 Data Entry L,39 Vol L,40 Balance L,41,42 Pan L,43 Expression L,44 Ctrl 1 L,45 Ctrl 2 L,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 Hold P sw,65 Porta sw,66 Sustenuto sw,67 Soft P sw,68 Legato P sw,69 Hold 2 P sw,70 S.Variation,71 S.Timbre,72 S.Release,73 S.Attack,74 S.Brightness,75 S.Ctrl 6,76 S.Ctrl 7,77 S.Ctrl 8,78 S.Ctrl 9,79 S.Ctrl 10,80 GP B.1 sw,81 GP B.2 sw,82 GP B.3 sw,83 GP B.4 sw,84,85,86,87,88,89,90,91 Effects Lv,92 Trem Lv,93 Chorus Lv,94 Celeste Lv,95 Phaser Lv,96 Data B. Inc,97 Data B. Dec,98 NRP L,99 NRP M,100 RP L,101 RP M,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}> CC 8 # +slider17: 0<0, 127, 1> CC 8 Value +slider18: 0<0, 128, 1{Off, 0 Bank Sel M,1 Mod Wheel M,2 Breath M,3,4 Foot P M,5 Porta M,6 Data Entry M,7 Vol M,8 Balance M,9,10 Pan M,11 Expression M,12 Ctrl 1 M,13 Ctrl 2 M,14,15,16 GP Slider 1,17 GP Slider 2,18 GP Slider 3,19 GP Slider 4,20,21,22,23,24,25,26,27,28,29,30,31,32 Bank Sel L,33 Mod Wheel L,34 Breath L,35,36 Foot P L,37 Porta L,38 Data Entry L,39 Vol L,40 Balance L,41,42 Pan L,43 Expression L,44 Ctrl 1 L,45 Ctrl 2 L,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 Hold P sw,65 Porta sw,66 Sustenuto sw,67 Soft P sw,68 Legato P sw,69 Hold 2 P sw,70 S.Variation,71 S.Timbre,72 S.Release,73 S.Attack,74 S.Brightness,75 S.Ctrl 6,76 S.Ctrl 7,77 S.Ctrl 8,78 S.Ctrl 9,79 S.Ctrl 10,80 GP B.1 sw,81 GP B.2 sw,82 GP B.3 sw,83 GP B.4 sw,84,85,86,87,88,89,90,91 Effects Lv,92 Trem Lv,93 Chorus Lv,94 Celeste Lv,95 Phaser Lv,96 Data B. Inc,97 Data B. Dec,98 NRP L,99 NRP M,100 RP L,101 RP M,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}> CC 9 # +slider19: 0<0, 127, 1> CC 9 Value +slider20: 0<0, 128, 1{Off, 0 Bank Sel M,1 Mod Wheel M,2 Breath M,3,4 Foot P M,5 Porta M,6 Data Entry M,7 Vol M,8 Balance M,9,10 Pan M,11 Expression M,12 Ctrl 1 M,13 Ctrl 2 M,14,15,16 GP Slider 1,17 GP Slider 2,18 GP Slider 3,19 GP Slider 4,20,21,22,23,24,25,26,27,28,29,30,31,32 Bank Sel L,33 Mod Wheel L,34 Breath L,35,36 Foot P L,37 Porta L,38 Data Entry L,39 Vol L,40 Balance L,41,42 Pan L,43 Expression L,44 Ctrl 1 L,45 Ctrl 2 L,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 Hold P sw,65 Porta sw,66 Sustenuto sw,67 Soft P sw,68 Legato P sw,69 Hold 2 P sw,70 S.Variation,71 S.Timbre,72 S.Release,73 S.Attack,74 S.Brightness,75 S.Ctrl 6,76 S.Ctrl 7,77 S.Ctrl 8,78 S.Ctrl 9,79 S.Ctrl 10,80 GP B.1 sw,81 GP B.2 sw,82 GP B.3 sw,83 GP B.4 sw,84,85,86,87,88,89,90,91 Effects Lv,92 Trem Lv,93 Chorus Lv,94 Celeste Lv,95 Phaser Lv,96 Data B. Inc,97 Data B. Dec,98 NRP L,99 NRP M,100 RP L,101 RP M,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}> CC 10 # +slider21: 0<0, 127, 1> CC 10 Value + +in_pin:none +out_pin:none + +@init + + CCnum = 256; + CCval = 512; + + NOTE_OFF = 8; + NOTE_ON = 9; + +@slider + + note_trigger = slider1; + + CCnum[1] = slider2; + CCnum[2] = slider4; + CCnum[3] = slider6; + CCnum[4] = slider8; + CCnum[5] = slider10; + CCnum[6] = slider12; + CCnum[7] = slider14; + CCnum[8] = slider16; + CCnum[9] = slider18; + CCnum[10] = slider20; + + CCval[1] = slider3; + CCval[2] = slider5; + CCval[3] = slider7; + CCval[4] = slider9; + CCval[5] = slider11; + CCval[6] = slider13; + CCval[7] = slider15; + CCval[8] = slider17; + CCval[9] = slider19; + CCval[10] = slider21; + +@block + + // function(offset, status_byte, data_byte) + // samples, type_chan, MSB, LSB) + // midisend(0, $x80, 10, 20) // Note OFF + // midisend(0, $x90, 10, 20) // Note ON + // midisend(0, $xBF, 10, 20) // CC on chan 16 + // midisend(0, $xC0, 10, 20) // Program Change + // midisend(0, $xE0, 10, 20) // Pitch Bend + + while (midirecv(offset, type_chan, d_byte1, d_byte2)) ( + + status_type = (type_chan/16)|0; + // status_chan = (type_chan-(status_type*16))|0; + + is_note = status_type == NOTE_ON; + is_trigger = d_byte1 == note_trigger; + + + (is_note && is_trigger) ? ( + cc_type_chan = type_chan + $x20; // turn note to cc + + i = 1; + loop(10, + CCnum[i] > 0 ? ( + midisend(offset, cc_type_chan, CCnum[i]-1, CCval[i]); + // midisend(offset, cc_type_chan, CCnum[i] + (CCval[i] * 256)) + ); + + i+=1; + ); + ) : ( + midisend(offset, type_chan, d_byte1, d_byte2); + ); + ); diff --git a/MIDI/josmmuozjwalkman_MIDI Note Convert/MIDI Note to CC.jsfx b/MIDI/josmmuozjwalkman_MIDI Note Convert/MIDI Note to CC.jsfx new file mode 100644 index 0000000..be3f81b --- /dev/null +++ b/MIDI/josmmuozjwalkman_MIDI Note Convert/MIDI Note to CC.jsfx @@ -0,0 +1,43 @@ +noindex: true + +desc:MIDI Note to CC +//tags: MIDI processing routing +// turn all note messages to CC messages +// note = cc number, velocity = cc value + +slider1:passthrough=1<0,1,1{no, yes}> Other events (CC, etc) pass through + +in_pin:none +out_pin:none + +@init + + NOTE_OFF = 8; + NOTE_ON = 9; + +@block + + // function(offset, status_byte, data_byte) + // samples, type_chan, MSB, LSB) + // midisend(0, $x80, 10, 20) // Note OFF + // midisend(0, $x90, 10, 20) // Note ON + // midisend(0, $xBF, 10, 20) // CC on chan 16 + // midisend(0, $xC0, 10, 20) // Program Change + // midisend(0, $xE0, 10, 20) // Pitch Bend + + while (midirecv(offset, type_chan, d_byte1, d_byte2)) ( + status_type = (type_chan/16)|0; + status_chan = (type_chan-(status_type*16))|0; + + status_type == NOTE_ON ? ( + type_chan = type_chan + $x20; + midisend(offset, type_chan, d_byte1, d_byte2); + ) : ( + passthrough == 1 && status_type != NOTE_OFF ? ( + midisend(offset, type_chan, d_byte1, d_byte2); + ) + ); + + + + ); diff --git a/MIDI/josmmuozjwalkman_MIDI Note Convert/MIDI Note to PC.jsfx b/MIDI/josmmuozjwalkman_MIDI Note Convert/MIDI Note to PC.jsfx new file mode 100644 index 0000000..8ed9f98 --- /dev/null +++ b/MIDI/josmmuozjwalkman_MIDI Note Convert/MIDI Note to PC.jsfx @@ -0,0 +1,41 @@ +noindex: true + +desc:MIDI Note to PC +//tags: MIDI processing routing +// turn all note messages to Program Change messages +// note = pc number, velocity ignored + +slider1:passthrough=1<0,1,1{no, yes}> Other events (CC, etc) pass through + +in_pin:none +out_pin:none + +@init + + NOTE_OFF = 8; + NOTE_ON = 9; + +@block + + // function(offset, status_byte, data_byte) + // samples, type_chan, MSB, LSB) + // midisend(0, $x80, 10, 20) // Note OFF + // midisend(0, $x90, 10, 20) // Note ON + // midisend(0, $xBF, 10, 20) // CC on chan 16 + // midisend(0, $xC0, 10, 20) // Program Change + // midisend(0, $xE0, 10, 20) // Pitch Bend + + while (midirecv(offset, type_chan, d_byte1, d_byte2)) ( + status_type = (type_chan/16)|0; + status_chan = (type_chan-(status_type*16))|0; + + status_type == NOTE_ON ? ( + type_chan = type_chan + $x30; + midisend(offset, type_chan, d_byte1, d_byte2); + ); + + passthrough == 1 && status_type != NOTE_OFF ? ( + midisend(offset, type_chan, d_byte1, d_byte2); + ) + + );