xxxxxxxxxx
239
var synthScale = [];
var synth;
var note1 = "";
var note2 = "";
var note3 = "";
var note5 = "";
var buttonCstate = true;
var buttonDstate = false;
var buttonEstate = false;
var buttonFstate = false;
var buttonGstate = false;
var buttonAstate = false;
var buttonBstate = false;
Tone.Transport.bpm.value = 100;
synthScale = ["C2","C3","C4"];
// synthScale = ["C2", "E2", "G2", "A2",
// "C3", "D3", "E3", "G3", "A3", "B3",
// "C4", "D4", "E4", "G4", "A4", "B4","","",""
// ];
synth = new Tone.PolySynth({
// "volume": -10,
"envelope": {
"attack": 0.5,
"decay": 0,
"sustain": 0.3,
"release": 0,
}
}).toMaster();
synth.set({"oscillator": {
"type": "sine"
}
});
// var timey1 = ["16n", "8n", "4n", "4n"][floor(random(4))];
var melody = new Tone.Pattern(function(time, note){
note1 = note;
synth.triggerAttackRelease(note, ["16n", "", "4n", "4n"][floor(random(4))], time, 0.7);
}, synthScale, "random");
melody.loop = true;
melody.interval = "4t";
// var timey2 = ["4t","8n"][floor(random(2))];
var arpeggio = new Tone.Pattern(function(time, note){
note2 = note;
synth.triggerAttackRelease(note, ["4t","8n"][floor(random(2))], time, 0.3);
}, synthScale, "upDown");
arpeggio.loop = true;
arpeggio.interval = "8t";
var chord = new Tone.Pattern(function(time, note){
note3 = note;
var fifth = Tone.Frequency(note).transpose(7);
note5 = fifth.toNote();
var chordDuration = ["32n", "32n", "4n"][floor(random(3))];
synth.triggerAttackRelease(note, chordDuration, time, 0.4);//0.2
synth.triggerAttackRelease(fifth, chordDuration, time, 0.4);//0.2
}, synthScale, "randomOnce");
chord.loop = true;
chord.interval = "4n";
function setup(){
createCanvas(400,400);
Tone.Transport.start();
melody.start(0);
arpeggio.start(0);
chord.start(0);
textSize(30);
buttonC = createButton("C");
buttonC.position(40, 20);
buttonC.mousePressed(addCtoArray);
buttonD = createButton("D");
buttonD.position(90, 20);
buttonD.mousePressed(addDtoArray);
buttonE = createButton("E");
buttonE.position(140, 20);
buttonE.mousePressed(addEtoArray);
buttonF = createButton("F");
buttonF.position(190, 20);
buttonF.mousePressed(addFtoArray);
buttonG = createButton("G");
buttonG.position(240, 20);
buttonG.mousePressed(addGtoArray);
buttonA = createButton("A");
buttonA.position(290, 20);
buttonA.mousePressed(addAtoArray);
buttonB = createButton("B");
buttonB.position(340, 20);
buttonB.mousePressed(addBtoArray);
}
function draw(){
background(150);
text(note1,100,100);
text(note2,100,200);
text(note3,100,300);
text(note5,200,300);
for(var s=0;s<synthScale.length;s+=3){
push();
textSize(10);
text(synthScale[s],s*50/3+40, 375);
pop();
}
console.log(synthScale);
// console.log(bpmValue.value());
// synth.envelope.attack = map(mouseX, 0, height, 0,1);
// synth.set.filter.Q = map(mouseY, 0, width, 0, 10);
}
function addCtoArray(){
if(buttonCstate==false){
synthScale.push("C2");
synthScale.push("C3");
synthScale.push("C4");
buttonCstate = true;
} else if(buttonCstate==true && synthScale.length>6){
let i = synthScale.indexOf("C2");
let j = synthScale.indexOf("C3");
let k = synthScale.indexOf("C4");
synthScale.splice(k,1);
synthScale.splice(j,1);
synthScale.splice(i,1);
buttonCstate = false;
}
}
function addDtoArray(){
if(buttonDstate==false){
synthScale.push("D2");
synthScale.push("D3");
synthScale.push("D4");
buttonDstate = true;
} else if(buttonDstate==true && synthScale.length>6){
let i = synthScale.indexOf("D2");
let j = synthScale.indexOf("D3");
let k = synthScale.indexOf("D4");
synthScale.splice(k,1);
synthScale.splice(j,1);
synthScale.splice(i,1);
buttonDstate = false;
}
}
function addEtoArray(){
if(buttonEstate==false){
synthScale.push("E2");
synthScale.push("E3");
synthScale.push("E4");
buttonEstate = true;
} else if(buttonEstate==true && synthScale.length>6){
let i = synthScale.indexOf("E2");
let j = synthScale.indexOf("E3");
let k = synthScale.indexOf("E4");
synthScale.splice(k,1);
synthScale.splice(j,1);
synthScale.splice(i,1);
buttonEstate = false;
}
}
function addFtoArray(){
if(buttonFstate==false){
synthScale.push("F2");
synthScale.push("F3");
synthScale.push("F4");
buttonFstate = true;
} else if(buttonFstate==true && synthScale.length>6){
let i = synthScale.indexOf("F2");
let j = synthScale.indexOf("F3");
let k = synthScale.indexOf("F4");
synthScale.splice(k,1);
synthScale.splice(j,1);
synthScale.splice(i,1);
buttonFstate = false;
}
}
function addGtoArray(){
if(buttonGstate==false){
synthScale.push("G2");
synthScale.push("G3");
synthScale.push("G4");
buttonGstate = true;
} else if(buttonGstate==true && synthScale.length>6){
let i = synthScale.indexOf("G2");
let j = synthScale.indexOf("G3");
let k = synthScale.indexOf("G4");
synthScale.splice(k,1);
synthScale.splice(j,1);
synthScale.splice(i,1);
buttonGstate = false;
}
}
function addAtoArray(){
if(buttonAstate==false){
synthScale.push("A2");
synthScale.push("A3");
synthScale.push("A4");
buttonAstate = true;
} else if(buttonAstate==true && synthScale.length>6){
let i = synthScale.indexOf("A2");
let j = synthScale.indexOf("A3");
let k = synthScale.indexOf("A4");
synthScale.splice(k,1);
synthScale.splice(j,1);
synthScale.splice(i,1);
buttonAstate = false;
}
}
function addBtoArray(){
if(buttonBstate==false){
synthScale.push("B2");
synthScale.push("B3");
synthScale.push("B4");
buttonBstate = true;
} else if(buttonBstate==true && synthScale.length>6){
let i = synthScale.indexOf("B2");
let j = synthScale.indexOf("B3");
let k = synthScale.indexOf("B4");
synthScale.splice(k,1);
synthScale.splice(j,1);
synthScale.splice(i,1);
buttonBstate = false;
}
}