desc: Keytrack generator - ReaEQ edition //tags: Key track follow generator link //author: Robert Randolph slider1:0<0,24000,1>Midi Note Frequency slider2:440<420,460,1>Base Frequency slider3:0<-4,4,1>Octave Offset slider4:0<0,4,1>Harmonic Offset slider5:0<0,15,1{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}>Input Channel slider6:0<0,1,1{Note On, Note Off}>Trigger in_pin:none out_pin:none @init noteOn = $x90; noteOff = $x80; @slider baseFreq = slider2; octOffset = slider3; baseOffset = slider4; inChannel = slider5; noteTrig = slider6; @block while (midirecv(offset,msg1,msg2,msg3)) ( channel = msg1 & $x0F; onOffStatus = msg1 & $xF0; // 144 == Note On, 128 == Note Off trigTest = noteTrig == 0 ? (noteOn):(noteOff); // comparison value based on our note on/off setting channel == inChannel ? ( trigTest == onOffStatus ? ( incNote = msg2; useNote = incNote + (octOffset * 12); // change octave of incoming note noteFreq = ((baseFreq / 32) * (2 ^ ((useNote - 9) / 12))); // Midi note to frequency noteFreqOff = noteFreq + (baseOffset * noteFreq); // Harmonic offset slider1 = noteFreqOff; ) ); midisend(offset,msg1,msg2,msg3); // pass through );