JSFiddle - React, Tailwind, and code Playground
JavaScript
var context = new AudioContext()
, phasorNode = context.createBufferSource()
, frequencyNode = context.createBufferSource()
, bufferFrequency = context.createBuffer(1, context.sampleRate, context.sampleRate)
, arrayFrequency = bufferFrequency.getChannelData(0)
, bufferRamp = context.createBuffer(1, context.sampleRate, context.sampleRate)
, arrayRamp = bufferRamp.getChannelData(0)
, acc = 0, step = 1 / context.sampleRate, i
for (i = 0; i < arrayRamp.length; i++) {
arrayRamp[i] = (acc % 1)
acc += step
}
for (i = 0; i < arrayFrequency.length; i++) {
arrayFrequency[i] = 200
}
phasorNode.buffer = bufferRamp
phasorNode.connect(context.destination)
phasorNode.loop = true
phasorNode.start(0)
frequencyNode.buffer = bufferFrequency
frequencyNode.connect(phasorNode.playbackRate)
frequencyNode.loop = true
frequencyNode.start(0)