xxxxxxxxxx
107
let synth;
let notes = ['C', 'C#','D','Eb','E','F','F#','G','G#','A','Bb','B','C',];
let keys=['a','w','s','e','d','f','t','g','y','h','u','j','k',];
let octave;
function setup() {
createCanvas(400, 400);
//console.log(Tone);
octave=3;
synth= new Tone.MonoSynth({
"portamento": 0.4,
"oscillator": {
"partials": [1, 2, 3, 2, 1]
},
"detune":-30,
"filter": {
"Q": 4,
"type": "lowpass",
"rolloff": -24
},
"envelope": {
"attack": 0.01,
"decay": 0.3,
"sustain": 0.5,
"release": 2
},
"filterEnvelope": {
"attack": 0.05,
"attackCurve":"sine",
"decay": 0.1,
"sustain": 0.2,
"release": 2,
"releaseCurve":"ripple",
"baseFrequency": 400,
"octaves": 1
}
}).toDestination();
}
function draw() {
background(220);
}
function keyPressed(){
for(let i=0;i<12;i++){ // controls assigning keys from c to b
if(key==keys[i]){
synth.triggerAttackRelease(notes[i]+octave.toString(), 0.1);
//sampler.triggerAttackRelease(notes[i]+octave.toString(), "8n");
}
}
if(key==keys[12]){ // controls the assigning keys for c from next octave
let high_c=octave+1;
synth.triggerAttackRelease(notes[12]+(octave+1).toString(), "8n");
//sampler.triggerAttackRelease(notes[i]+octave.toString(), "8n");
}
// control octave with up and down keys
if(keyCode== UP_ARROW){octave+=1; }
if(keyCode== DOWN_ARROW){octave-=1;}
}
function keyReleased(){
for(let i=0;i<13;i++){
}
}
// {
// "oscillator": {
// "type": "sawtooth2"
// },
// "filter": {
// "Q": 3,
// "type": "highpass",
// "rolloff": -48
// "detune":-200;
// },
// "envelope": {
// "attack": 0.2,
// "decay": 0.02,
// "sustain": 0.5,
// "release": 0.3
// },
// "filterEnvelope": {
// "attack": 0.1,
// "decay": 0.02,
// "sustain": 0.5,
// "release": 0.1,
// "baseFrequency": 200,
// "octaves":0
// }
// }