The component being controlled is the channel compressor threshold. Value range is -540 to 0, correlating to -54dB to 0dB.
This is what I've come up with based on posts here to others' questions and digging through templates that gets it really, really close:
Code: Select all
decl val,dd1,dd2;
if(Threshold.msg_rcvd==0) {
val=round(range(Threshold.x,0,540));
if(val<=539){
dd1={0x7F}; dd2={0x7F};
} else if(val==540) {
dd1={0x00}; dd2={0x00};
}
send_sysex({sys_comp_hdr,sys_comp_thresh,sysex_channel,dd1,dd2,(floor(Threshold.x*512)>>7)+124&0X7F, floor(Threshold.x*512) & 0x7F});
} else {
Threshold.msg_rcvd=0;
}
Anybody feel like helping guide me through this oddity? I'm intentionally rolling all the values over to 0x00 when x=1, because that's what the mixer sends back when I scroll through the values and watch the sysex coming in. I'm guessing this is some kind of internal "off" signal it sends to itself.
Thanks in advance!