bool32.risingfalling active
int32 offset
int32 startcc
bool32.pulse pulse if any cc value changes
int32 index written to
bool32.tgl active
int32 offset
objref table
spinner startcc
spinner length
int8_t cc;
int32_t cv;
int32_t prevcv;
uint8_t prevcc;
uint8_t end;
uint8_t start;
uint32_t offset;
bool chtrig;
prevcv = 0;
prevcc = 0;
chtrig = 0;
start = attr_startcc + inlet_startcc;
end = start + attr_length;
offset = (inlet_offset + param_offset);
if (((cc >= start) && (cc < end)) && (inlet_active || param_active)) {
if ((cv != prevcv) || (cc != prevcc)) {
outlet_index = (cc - start) + offset;
attr_table.array[outlet_index] = __SSAT(cv, 28) >> attr_table.GAIN;
prevcv = cv;
prevcc = cc;
chtrig = 1;
}
outlet_chtrig = chtrig;
chtrig = 0;
}
if (status == attr_midichannel + MIDI_CONTROL_CHANGE) {
cc = data1;
cv = ((33284 * data2) >> 15) << 20;
}