callback = time => {
noteIndex < 11 ? mutable noteIndex++ : (mutable noteIndex = 0);
if (randFromArr([0, 1])) {
mutable note = randFromArr(scale.notes);
membraneSynth.triggerAttackRelease(
`${chromaticScale[noteIndex]}${randFromArr([0, 1])}`,
'16n',
time,
d3.randomUniform(0.4, 0.8)()
);
}
if (randFromArr([0, 1])) {
synth.triggerAttackRelease(
`${note}${randFromArr([3, 4, 5])}`,
'32n',
time,
d3.randomUniform(0.1, 1)()
);
} else {
altSynth.triggerAttackRelease(
`${note}${randFromArr([2, 3, 4, 5, 6])}`,
'16n',
time,
d3.randomUniform(0.5, 1)()
);
}
synth.triggerAttackRelease(
`${bassNote}${randFromArr([1, 2])}`,
'12n',
time + bassOffset,
d3.randomUniform(0.4, 1)()
);
}