title: MIDI Controlled Gate 2 tags: reaper jsfx midi trance-gate ``` desc:jda midi controlled trance gate in_pin:left input in_pin:right input out_pin:left output out_pin:right output @init gain = 0; tgt_gain = 0; fade_time = 0.01; fade_spls = fade_time * srate; dg = 1/fade_spls; @block @sample while(midirecv(offset,msg1,msg2,msg3)) ( cmd = msg1 >> 4; ( cmd == 0x9 ) ? ( tgt_gain = 1; ) : ( cmd == 0x8 ) ? ( tgt_gain = 0; ); midisend(offset,msg1,msg2,msg3); ); ( gain != tgt_gain ) ? ( ( gain > tgt_gain ) ? ( gain -= dg; ( gain < tgt_gain ) ? ( gain = tgt_gain; ); // overshoot management ); ( gain < tgt_gain ) ? ( gain += dg; ( gain > tgt_gain ) ? ( gain = tgt_gain; ); // overshoot management ); ); spl0 *= gain; spl1 *= gain; ```