xxxxxxxxxx
87
let synth = new Tone.Synth().toMaster();
let pitch = ["C4", "E4", "G4", "A4", "B4"];
let keys = ['a', 's', 'd', 'f', 'g'];
let myScale = [200.32, 350.55, 480, 670, 800];
//let frequency = [(100,200),(150, 250),(350, 550),(500,780),(800,1200)];
let pos;
let prev;
let bass = new Tone.Player("samples/bass.mp3");
bass.toMaster();
Tone.Transport.scheduleRepeat(playBeat, "4n");
Tone.Transport.start();
function playBeat(){
if(bass.loaded){
bass.start();
}
}
function setup() {
createCanvas(800, 800);
background(0);
pos = createVector(width/2, height/2);
prev = pos.copy();
}
function draw() {
ellipseMode(CENTER);
var afrequency = random(100, 200);
var sfrequency = random(200, 550);
var dfrequency = random(400, 800);
var ffrequency = random(770, 1200);
var gfrequency = random(1200, 2500);
stroke(80);
strokeWeight(4.5);
line(pos.x, pos.y, prev.x, prev.y);
prev.set(pos);
var step = p5.Vector.random2D();
var r = random(200);
for (i = 0; i < 5; i++) {
// if (keyIsPressed & key === keys[i]) {
// synth.triggerAttackRelease(pitch[i], 0.1);
// synth.triggerAttackRelease(frequency[i], 0.1);
// }
}
if (keyIsPressed & key === keys[0]) {
synth.triggerAttackRelease(afrequency, 0.1);
ellipse(afrequency,afrequency,afrequency,afrequency);
step.mult(random(1, 43));
}
else if (keyIsPressed & key === keys[1]) {
synth.triggerAttackRelease(sfrequency, 0.1);
ellipse(sfrequency,sfrequency,sfrequency,sfrequency);
step.setMag(3);
line(-pos.x, pos.y, prev.x, prev.y);
}
if (keyIsPressed & key === keys[2]) {
synth.triggerAttackRelease(dfrequency, 0.1);
ellipse(dfrequency,dfrequency,dfrequency,dfrequency);
step.mult(random(44,82));
stroke(20,2,20);
strokeWeight(1);
step.setMag(3);
line(pos.x, pos.y, prev.x,2*prev.y);
}
if (keyIsPressed & key === keys[3]) {
synth.triggerAttackRelease(ffrequency, 0.1);
ellipse(ffrequency,ffrequency,ffrequency,ffrequency);
step.mult(random(80,88));
stroke(100,100,10);
strokeWeight(2);
step.setMag(3);
line(pos.x, pos.y, prev.x,prev.y/2);
}
if (keyIsPressed & key === keys[4]) {
synth.triggerAttackRelease(gfrequency, 0.1);
background(0);
}
pos.add(step);
}