xxxxxxxxxx
51
let percussion = null;
let bassline = null;
function setInstruments() {
percussion = function (instr, amp, dur, old) {
let t = secs(dur);
let delta = audioClock() - (t + old);
if (delta >= 0) {
drums.play(t - delta, instr, amp);
setTimeout(percussion.bind(null, instr, amp, dur, audioClock() - delta));
} else setTimeout(percussion.bind(null, instr, amp, dur, old));
};
bassline = function (note, amp, dur, old) {
let t = secs(dur);
let delta = audioClock() - (t + old);
if (delta >= 0) {
bass.play(t - delta, note, amp);
bass.stop(t - delta + t * 0.9, note);
note += 7;
if (note > Bb[3]) note -= 24;
setTimeout(bassline.bind(null, note, amp, dur, audioClock() - delta));
} else setTimeout(bassline.bind(null, note, amp, dur, old));
};
}
function startPattern() {
let t = audioClock();
percussion(cymbal, 0.9, 1, t);
percussion(kick, 0.1, 1.5, t);
percussion(snare, 0.1, 2, t);
bassline(Eb[3], 0.1, 1, t);
}
function playPattern() {
setInstruments();
startPattern();
}
function stop() {
percussion = function () {};
bassline = function () {};
}
function setup() {
setBpm(180);
start().then(playPattern);
}
function draw() {}