xxxxxxxxxx
42
let osc, freq = 440, amp = 1;
let freqSilder, ampSlider
function setup() {
createCanvas(400, 400);
osc = new p5.Oscillator('sine')
osc.start()
// freq = osc.getFreq()
// amp = osc.getAmp()
freqSilder = createSlider(100, 600, freq)
ampSlider = createSlider(0, 1, amp, 0.01)
}
function draw() {
background(220);
freq = freqSilder.value()
amp = ampSlider.value()
osc.freq(freq)
osc.amp(amp)
let omega = 2*PI/map(freq, 100, 600, 0.1, 1.1)
let c = 600
let k = omega/c
let T = 1/map(freq, 100, 600, 0.1, 1.1)
noFill()
beginShape()
for (let x = 0; x < width; x++) {
let y = amp * sin(k * x - omega * (frameCount % floor(T*100))/100)
vertex(x, height/2 + y * 100)
}
endShape()
}