Should I be able to use the same AudioBufferSourceNode to play a sound multiple times? For some reason, calling noteGrainOn a second time doesn’t play audio, even with an intervening noteOff.
This code only plays the sound once:
var node = audioContext.createBufferSource()
node.buffer = audioBuffer
node.connect(audioContext.destination)
var now = audioContext.currentTime
node.noteGrainOn(now, 0, 2)
node.noteOff(now + 2)
node.noteGrainOn(now + 3, 0, 2)
node.noteOff(now + 5)
Once you’ve played back a source node, you can’t reuse it. You need to create another
AudioBufferSourceNodewith the same buffer. Check out the Web Audio FAQ for more info (see the noteOn() question).