int32.positive trkIdx
int32.positive trkSteps
int32.positive trkClkDiv
int32.positive stepIdx
int32.positive valueIdx
bool32.rising trkSet
bool32.rising stepSet
frac32 stepValue
int32.positive selected track
int32.positive trkSteps
int32.positive trkClkDiv
int32.positive selected step
int32.positive valueIdx
frac32 current step value
objref seq
bool trkSet_ = false;
bool stepSet_ = false;
int32_t trkIdx_ = 0;
int32_t stepIdx_ = 0;
int32_t valueIdx_ = 0;
trkIdx_ = (inlet_trkIdx < attr_seq.maxTracks_ ? inlet_trkIdx
: attr_seq.maxTracks_ - 1);
if (inlet_trkSet) {
if (!trkSet_) {
trkSet_ = true;
attr_seq.seqSteps_[trkIdx_] =
(inlet_trkSteps < attr_seq.maxSteps_ ? inlet_trkSteps
: attr_seq.maxSteps_);
attr_seq.seqClkDivs_[trkIdx_] = inlet_trkClkDiv;
}
} else {
trkSet_ = false;
}
int32_t trkSteps = attr_seq.seqSteps_[trkIdx_];
int32_t trkClkDiv = attr_seq.seqClkDivs_[trkIdx_];
outlet_trkIdx = trkIdx_;
outlet_trkSteps = trkSteps;
outlet_trkClkDiv = trkClkDiv;
stepIdx_ = (inlet_stepIdx < trkSteps ? inlet_stepIdx : trkSteps - 1);
valueIdx_ = (inlet_valueIdx < attr_seq.numValues_ ? inlet_valueIdx
: attr_seq.numValues_ - 1);
if (inlet_stepSet) {
if (!stepSet_) {
stepSet_ = true;
attr_seq.seqValue_[trkIdx_][stepIdx_][valueIdx_] = inlet_stepValue;
}
} else {
stepSet_ = false;
}
outlet_stepIdx = stepIdx_;
outlet_valueIdx = valueIdx_;
outlet_stepValue = attr_seq.seqValue_[trkIdx_][stepIdx_][valueIdx_];