6
votes

Is there a way to record the audio data that's being sent to webkitAudioContext.destination?

The data that the nodes are sending there is being played by the browser, so there should be some way to store that data into a (.wav) file.

2
you might want to take a look at: github.com/mattdiamond/Recorderjs :)mgherkins
Hello @jellyksong, have you solved the issue of webaudio api recordingJot Dhaliwal
@Jatt.net Yes, I just used the Recorderjs library listed as the accepted answer.kennysong

2 Answers

6
votes

Currently, there's not a native way to do that, but as Max said in the comment above, Recorderjs does essentially this (it doesn't chain onto the destination, but is a ScriptProcessorNode you can connect other nodes to, and have its input recorded. I built on Recorderjs to do a simple audio file recorder - https://github.com/cwilso/AudioRecorder.

3
votes

Sine to opus file: https://developer.mozilla.org/de/docs/Web/API/AudioContext/createMediaStreamDestination

In the following simple example, we create a MediaStreamAudioDestinationNode, an OscillatorNode and a MediaRecorder (the example will therefore only work in Firefox at this time.) The MediaRecorder is set up to record information from the MediaStreamDestinationNode.

Chrome supports it, too: https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder