int32.positive step select
bool32 default
bool32 out
int32.positive chain output
int32 notes
int32 rests
bool sequence[128];
int length = param_notes + param_rests;
outlet_chain = inlet_in - length;
if (param_notes < param_rests) {
int mul = param_rests / param_notes;
int rem = param_rests - (mul * param_notes);
int ii = 0;
int temp;
for (int i = 0; i < param_notes; i += 1) {
if (i < rem) {
temp = ii;
sequence[ii] = 1;
for (ii = temp + 1; ii < temp + mul + 2; ii += 1)
sequence[ii] = 0;
} else {
temp = ii;
sequence[ii] = 1;
for (ii = temp + 1; ii < temp + mul + 1; ii += 1)
sequence[ii] = 0;
}
}
} else if (param_notes > param_rests) {
int mul = param_notes / param_rests;
int rem = param_notes - (mul * param_rests);
int ii = 0;
int temp;
for (int i = 0; i < param_rests; i += 1) {
if (i < rem) {
sequence[ii] = 1;
ii += 1;
sequence[ii] = 0;
temp = ii;
for (ii = temp + 1; ii < temp + mul + 1; ii += 1)
sequence[ii] = 1;
} else {
sequence[ii] = 1;
ii += 1;
sequence[ii] = 0;
temp = ii;
for (ii = temp + 1; ii < temp + mul; ii += 1)
sequence[ii] = 1;
}
}
} else {
sequence[0] = 1;
for (int i = 1; i < length; i += 1)
sequence[i] = !sequence[i - 1];
}
if (inlet_in >= 0 && inlet_in < length)
outlet_out = sequence[inlet_in];
else
outlet_out = inlet_default;