xxxxxxxxxx
77
let osc;
const fundamental = 261.63;
let curr = fundamental;
let counter = 1;
function setup() {
let cnv = createCanvas(200, 200);
osc = new p5.Oscillator(300);
background(220);
text('tap to play', 30, 20);
text('w => perfect fifth\ns => perfect fifth (down)\nd => octave\na => octave (down)\np => print diff from fundamental', 30, 70);
}
function playOscAtFreq(f) {
osc.start();
osc.amp(0.5);
osc.freq(f);
osc.amp(0, 0.7);
}
function mousePressed() {
//fundamental * counter;
playOscAtFreq(curr);
}
function keyPressed() {
if (key == ' ') {
reset();
playOscAtFreq(curr);
} else if (key == 'a') {
curr = firstUndertone(curr)
playOscAtFreq(curr);
} else if (key == 'd') {
curr = firstOvertone(curr)
playOscAtFreq(curr);
} else if (key == 'w') {
curr = perfectFifth(curr)
playOscAtFreq(curr);
} else if (key == 's') {
curr = perfectFifthNeg(curr)
playOscAtFreq(curr);
} else if (key == 'c') {
playOscAtFreq(fundamental);
}
else if (key == 'p') {
printDiff(curr);
}
}
function perfectFifth(f) {
return (f * 3) / 2;
}
function reset() {
curr = fundamental;
}
function firstOvertone(f) {
return f * 2;
}
function firstUndertone(f) {
return f / 2;
}
function perfectFifthNeg(f) {
return (f / 3) * 2;
}
function printDiff(f) {
console.log(fundamental - f);
}