Skip to content

Experience-Monks/audiobuffer-to-wav

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

audiobuffer-to-wav

stable

Encodes the contents of an AudioBuffer from the WebAudio API as WAVE. Supports 16-bit PCM and 32-bit float data.

The code for this has been adapted from the export feature of Recorder.js.

PRs welcome.

Install

npm install audiobuffer-to-wav --save

Example

var toWav = require('audiobuffer-to-wav')
var xhr = require('xhr')
var context = new AudioContext()

// request the MP3 as binary
xhr({
  uri: 'audio/track.mp3',
  responseType: 'arraybuffer'
}, function (err, body, resp) {
  if (err) throw err
  // decode the MP3 into an AudioBuffer
  audioContext.decodeAudioData(resp, function (buffer) {
    // encode AudioBuffer to WAV
    var wav = toWav(buffer)
    
    // do something with the WAV ArrayBuffer ...
  })
})

See the demo for an example of loading MP3, decoding it, and triggering a download of the encoded WAV file.

A more advanced example might be to write the file using Node and Electron or hihat, i.e. an easy way to convert MP3/OGG/etc to WAV.

Usage

NPM

arrayBuffer = encodeWAV(audioBuffer, [opt])

Encodes the AudioBuffer instance as WAV, returning a new array buffer. Interleaves multi-channel data, if necessary.

By default, exports with 16-bit PCM (format: 1). You can specify opt.float32 instead, which will write format 3 with 32-bit float data.

License

MIT, see LICENSE.md for details.

About

convert an AudioBuffer to .wav format

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published