/* Elaborated by Paul Fenton July 2009.Thanks to schwa,Siggi Eriksson,Philip S. Considine and others from whom I've learnt to copy and make something useable. JS sysex support: midisyx(frameoffset,msgbuf,len) ES EQ sysex F0 43 10 7F 00 37 00 30 xx F7 30=low 34=med 38=hi ch low */ desc:Yamaha Motif ES Channel Mix slider1:0<0,15,1{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}>Channel slider2:64<32,96,1>High Gain slider3:64<32,96,1>Medium Gain slider4:64<32,96,1>Low Gain slider5:0<0,127,1>FX 2 slider6:0<0,127,1>FX 1 slider7:64<0,127,1>PAN slider8:120<0,127,1>VOLUME slider9:64<0,127,1>Cutoff slider10:64<0,127,1>Resonance slider11:64<0,127,1>Attack slider12:64<0,127,1>Release slider13:0<0,1,1{OFF,ON}>PortamentoSwitch slider14:0<0,127,1>PortamentoTime slider15:0<0,1,1{fingered,fulltime}>PortamentoMode slider17:64<0,127,1>Detune -12.8Hz to +12.7Hz slider18:24<0,48,1{-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,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}>Note Shift -24 to +24 slider19:50<0,72,1{-48,-47,-46,-45,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,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}>PB Range Upper -48 to +24 slider20:46<0,72,1{-48,-47,-46,-45,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,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}>PB Range Lower -48 to +24 slider22:0<0,25,1{L+R,asn L+R,asn 1+2,asn 3+4,asn 5+6,asn 7+8,asn 9+10,asn 11+12,asn 13+14,asn L,asn R,asn 1,asn 2,asn 3,asn 4,asn 5,asn 6,asn 7,asn 8,asn 9,asn 10,asn 11,asn 12,asn 13,asn 14,L+R}>Output (mLAN) //////////////////////////////////////////////////////////////////////////// @init in_pin:none out_pin:none buf = 0; buf[0] = $x43|0; buf[1] = $x10|0; buf[2] = $x7F|0; buf[3] = $x00|0; buf[4] = $x37|0; buf[5] = $x00+channel|0; statController = 11*16; updateCounter = 0; t = 0; on=1; PAN = 10; VOLUME = 7; CC_FX1 = 93; CC_FX2 = 91; Cutoff = 74; Resonance = 71; Attack = 73; Decay = 75; Sustain = 31; Release = 72; PortamentoSwitch = 65; PortamentoTime = 5; oldslider5 = -1; // FX2 oldslider6 = -1; // FX1 oldslider7 = -1; // PAN oldslider8 = -1; // VOL oldslider9 = -1; // Cutoff oldslider10 = -1; // Resonance oldslider11 = -1; // Attack oldslider12 = -1; // Release oldslider13 = -1; // PortamentoSwitch oldslider14 = -1; // PortamentoTime //////////////////////////////////////////////////////////////////////////// @slider slider1 = floor(slider1); slider2 = floor(slider2); slider3 = floor(slider3); slider4 = floor(slider4); slider5 = floor(slider5); slider6 = floor(slider6); slider7 = floor(slider7); slider8 = floor(slider8); slider9 = floor(slider9); slider10 = floor(slider10); slider11 = floor(slider11); slider12 = floor(slider12); slider13 = floor(slider13); slider14 = floor(slider14); slider15 = floor(slider15); //////////////////////////////////////////////////////////////////////////// @block channel != slider1 ? channel = slider1; //Highgain (slider2 != oldslider2) ? ( buf[6] = $x38|0; buf[7] = floor(slider2)|0; midisyx(0,buf,8); oldslider2 = slider2; ); //Medgain (slider3 != oldslider3) ? ( buf[6] = $x34|0; buf[7] = floor(slider3)|0; midisyx(0,buf,8); oldslider3 = slider3; ); //Lowgain (slider4 != oldslider4) ? ( buf[6] = $x30|0; buf[7] = floor(slider4)|0; midisyx(0,buf,8); oldslider4 = slider4; ); // FX 2 (slider5 != oldslider5) ? ( midisend(offset,statController+channel,CC_FX2|(slider5*256)); oldslider5 = slider5; ); // FX 1 (slider6 != oldslider6) ? ( midisend(offset,statController+channel,CC_FX1|(slider6*256)); oldslider6 = slider6; ); // PAN (slider7 != oldslider7) ? ( midisend(offset,statController+channel,PAN|(slider7*256)); oldslider7 = slider7; ); // VOLUME (slider8 != oldslider8) ? ( midisend(offset,statController+channel,VOLUME|(slider8*256)); oldslider8 = slider8; ); // Cutoff (slider9 != oldslider9) ? ( midisend(offset,statController+channel,Cutoff|(slider9*256)); oldslider9 = slider9; ); // Resonance (slider10 != oldslider10) ? ( midisend(offset,statController+channel,Resonance|(slider10*256)); oldslider10 = slider10; ); // Attack (slider11 != oldslider11) ? ( midisend(offset,statController+channel,Attack|(slider11*256)); oldslider11 = slider11; ); // Release (slider12 != oldslider12) ? ( midisend(offset,statController+channel,Release|(slider12*256)); oldslider12 = slider12; ); // PortamentoSwitch (slider13 != oldslider13) ? ( midisend(offset,statController+channel,PortamentoSwitch|(slider13*$x7F00)); oldslider13 = slider13; ); // PortamentoTime (slider14 != oldslider14) ? ( midisend(offset,statController+channel,PortamentoTime|(slider14*256)); oldslider14 = slider14; ); //PortamentoMode (slider15 != oldslider15) ? ( buf[6] = $x1C|0; buf[7] = floor(slider15)|0; midisyx(0,buf,8); oldslider15 = slider15; ); //Detune (slider17 != oldslider17) ? ( buf[6] = $x10|0; buf[7] = floor(slider17)/$x08|0; buf[8] = floor(slider17)%$x08|0; midisyx(0,buf,9); oldslider17 = slider17; ); //NoteShift (slider18 != oldslider18) ? ( buf[6] = $x16|0; buf[7] = floor(slider18)+$x28|0; midisyx(0,buf,8); oldslider18 = slider18; ); //PBupper (slider19 != oldslider19) ? ( buf[6] = $x09|0; buf[7] = floor(slider19)+$x10|0; midisyx(0,buf,8); oldslider19 = slider19; ); //PBlower (slider20 != oldslider20) ? ( buf[6] = $x0A|0; buf[7] = floor(slider20)+$x10|0; midisyx(0,buf,8); oldslider20 = slider20; ); //Output slider22 == 0 ? (buf[7] = $x00|0); //L+R slider22 == 1 ? (buf[7] = $x08|0); //asn L+R slider22 == 2 ? (buf[7] = $x09|0); //asn 1+2 slider22 == 3 ? (buf[7] = $x0A|0); //asn3+4 slider22 == 4 ? (buf[7] = $x0B|0); //asn5+6 slider22 == 5 ? (buf[7] = $x0C|0); //asn7+8 slider22 == 6 ? (buf[7] = $x0D|0); //asn9+10 slider22 == 7 ? (buf[7] = $x0E|0); //asn11+12 slider22 == 8 ? (buf[7] = $x0F|0); //asn13+14 slider22 == 9 ? (buf[7] = $x40|0); //asnL slider22 == 10 ?(buf[7] = $x41|0); //asnR slider22 == 11 ? (buf[7] = $x42|0); //asn1 slider22 == 12 ? (buf[7] = $x43|0); //asn2 slider22 == 13 ? (buf[7] = $x44|0); //asn3 slider22 == 14 ? (buf[7] = $x45|0); //asn4 slider22 == 15 ? (buf[7] = $x46|0); //asn5 slider22 == 16 ? (buf[7] = $x47|0); //asn6 slider22 == 17 ? (buf[7] = $x48|0); //asn7 slider22 == 18 ? (buf[7] = $x49|0); //asn8 slider22 == 19 ? (buf[7] = $x4A|0); //asn9 slider22 == 20 ? (buf[7] = $x4B|0); //asn10 slider22 == 21 ? (buf[7] = $x4C|0); //asn11 slider22 == 22 ? (buf[7] = $x4D|0); //asn12 slider22 == 23 ? (buf[7] = $x4E|0); //asn13 slider22 == 24 ? (buf[7] = $x4F|0); //asn14 slider22 == 25 ? (buf[7] = $x7F|0); //L+R (slider22 != oldslider22) ? ( buf[6] = $x1E|0; midisyx(0,buf,8); oldslider22 = slider22; );