xxxxxxxxxx
274
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;
// var q = 5;
synth = new Tone.PolySynth({
"volume": -10,
"envelope": {
"attack": 0.5,
"decay": 0,
"sustain": 0.3,
"release": 0.5,
}
}).toMaster();
synth.set({"oscillator": {
"type": "sine"
// },
// "filter": {
// "Q": q, //resonance at the cutoff frequency
// "frequency": 200, //not affecting? vs Tone.filter?
// "type": "lowpass",
// "rolloff": -24
}
})
Tone.Transport.bpm.value = 100;
// Tone.Transport.bpm = bpmValue.value();
//TRIAL INTERACT
synthScale = ["","","","C2","C3","C4"];
// major C scale
// synthScale = ["C2", "E2", "G2", "A2",
// "C3", "D3", "E3", "G3", "A3", "B3",
// "C4", "D4", "E4", "G4", "A4", "B4","","",""
// ];
// main melody
var synthLoop1 = new Tone.Event(loopCallback1);
synthLoop1.loop = true;
synthLoop1.loopEnd = "4t";
function loopCallback1(time){
// synth.triggerAttackRelease("C2","8n", time, 1);
pos = floor(random(synthScale.length));
note = synthScale[pos];
var timey1 = ["16n", "8n", "16n", "4n"][floor(random(4))];
synth.triggerAttackRelease(note, timey1, time, 1.5);
note1 = note;
}
// secondary filler note
var synthLoop2 = new Tone.Event(loopCallback2);
// var timey = ["4t","8n"][floor(random(2))];
synthLoop2.loop = true;
synthLoop2.loopEnd = "8t";
function loopCallback2(time){
// synth.triggerAttackRelease("C2","8n", time, 1);
pos = floor(random(3,synthScale.length));
note = synthScale[pos];
synth.triggerAttackRelease(note, "8n", time, 0.4);
note2 = note;
}
// harmony
var synthLoop3 = new Tone.Event(loopCallback3);
synthLoop3.loop = true;
synthLoop3.loopEnd = "4n";
function loopCallback3(time){
// synth.triggerAttackRelease("C2","8n", time, 1);
pos = floor(random(0,synthScale.length-3));
note = synthScale[pos];
var fifth = Tone.Frequency(note).transpose(7);
// var fourth = Tone.Frequency(note).transpose(5);
// var second = Tone.Frequency(note).transpose(2);
var timey2 = ["32n", "32n", "4n"][floor(random(3))];
synth.triggerAttackRelease(note, timey2, time, 0.4);
synth.triggerAttackRelease(fifth, timey2, time, 0.2);
note3 = note;
note5 = fifth.toNote();
}
function setup(){
createCanvas(400,400);
// bpmValue = createSlider(60,140,120,5);
Tone.Transport.start();
synthLoop1.start(6);//6
synthLoop2.start(2);//2
synthLoop3.start(0);//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=3;s<synthScale.length;s+=3){
push();
textSize(10);
text(synthScale[s],s*50/3-15, 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;
}
}