xxxxxxxxxx
41
let synth = new Tone.Synth({
"volume": -10,
"envelope": {
"attack": 0.05,
"decay": 0.3,
"release": 2,
}
}).toMaster();
let root = 24;
let octave = 2;
let major = [0, 2, 4, 5, 7, 9, 11, 12];
let minor = [0, 2, 3, 5, 7, 9, 10, 12];
let scale = major;
Tone.Transport.bpm.value = 40;
// Event (callbackName, valueToPassToCallback)
let synthLoop = new Tone.Event(loopCallback);
synthLoop.loop = true;
synthLoop.loopEnd = "16n";
function loopCallback(time, param){
// Pick a random note from the scale
let pos = floor(random(0, scale.length));
let noteNumber = root + scale[pos] + octave * 12;
let note = Tone.Frequency(noteNumber, "midi");
let velocity = 0.4 + Math.random() * 0.5;
let probability = 0.9;
if (random() < probability) { // Stay silent sometimes
synth.triggerAttackRelease(note, "16n", time, velocity);
}
}
function setup() {
synthLoop.start(0);
//synthLoop.start("2n");
Tone.Transport.start();
}