xxxxxxxxxx
42
function setup() {
createCanvas(windowWidth, windowHeight);
background(220);
StartAudioContext(Tone.context, 'canvas');
}
function mousePressed() {
if (myLoop.state === "started") {
myLoop.stop();
} else {
myLoop.start();
}
}
var synth = new Tone.PolySynth(6, Tone.Synth).toMaster();
var patterns = [
["C3", "Eb3", "F3", "G3", "Ab3"],
["G3", "B4", "D4", "F4", "G4"],
["D3", "F3", "Ab4", "Cb4", "D4"]
];
var pattern = new Tone.CtrlPattern(patterns[0], "randomWalk");
var pattern2 = new Tone.CtrlPattern(patterns[0], "randomWalk");
var myLoop = new Tone.Loop(function(time) {
var rotX = rotationX || 180;
var rate = map(rotX, 0, 180, 0.5, 4);
this.playbackRate = rate;
var patternIndex = floor(random(3));
pattern.set("voices", patterns[patternIndex]);
pattern2.set("voices", patterns[patternIndex]);
var vel = Math.random();
// var index = Math.floor(Math.random()*pitches.length);
// var rotation = rotationX || 180;
// var vel = map(rotation, 0, 180, 0, 1);
var vel = map(vel, 0, 180, 0.6, 1);
synth.triggerAttackRelease([pattern.next(), pattern2.next()], "4n", time, vel);
}, "4n");
Tone.Transport.start();