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