xxxxxxxxxx
101
let synth = new Tone.Synth({"oscillator" : {
"type" : "amtriangle",
"harmonicity" : 0.5,
"modulationType" : "square"
}}).toMaster();
let major = [0,2,4,5,7,9,11,12];
let dorian = [0,2,3,5,7,9,10,12];
let phrygian = [0,1,3,5,7,8,10,12];
let minor = [0,2,3,5,7,8,10,12];
let modes = [major,dorian,phrygian,minor];
let mode;
let start = 69;
let pos = 1;
let autoToggle = false;
let oct = 0;
Tone.Transport.scheduleRepeat(playNote, "0.1s");
function setup(){
randMode = int(random(0,modes.length));
mode = modes[randMode];
console.log(modes[randMode]);
Tone.Transport.start();
createCanvas(400, 400);
}
function draw(){
background(mouseY,mouseX,start * 2);
fill(mouseX,start*2,mouseY);
noStroke();
if(!autoToggle){
ellipse(mouseX,mouseY,start);
}else if(oct == 0){
ellipse(200,66,start);
}else if(oct == 2){
ellipse(200,334,start);
}else{
ellipse(200,200,start);
}
}
function keyPressed(){
pos = parseInt(key) % 9 - 1;
start = 69;
//let noteObject = Tone.Frequency(69, "midi");
// let aMajor = [start+0, start+2, start+4, start+5, start+7, start+9, start+11, start+12];
// let midiNote = aMajor[pos];
// let noteObject = Tone.Frequency(midiNote, "midi");
//let myScale = ["C3", "D3", "E3", "F3", "G3", "A4", "B4", "C4"];
//let pos = int(random(0, myScale.length));
//let noteName = myScale[pos];
let midiNote = start + mode[pos];
let noteObject = Tone.Frequency(midiNote, "midi");
synth.triggerAttackRelease(noteObject,0.5);
}
function playNote(){
oct = int(random(0,3));
if (!autoToggle){
if (mouseY < 133){
start = 45;
}
if (mouseY >= 133 && mouseY < 266){
start = 57;
}
if (mouseY >= 266){
start = 69;
}
}
else{
if (oct == 0){
start = 45;
}
if (oct == 2){
start = 69;
}
}
let midiNote = start + mode[pos];
let noteObject = Tone.Frequency(midiNote, "midi");
synth.triggerAttackRelease(noteObject,0.5);
}
function mousePressed(){
autoToggle = !autoToggle;
}