node package manager

audio-buffer

audio-buffer Build Status stable

AudioBuffer ponyfill. Provides useful constructor for Web-Audio API AudioBuffer, if available, otherwise provides optimal AudioBuffer implementation for node/browsers. Useful instead of Buffer in audio streams (see @audiojs components).

Usage

npm install audio-buffer

var AudioBuffer = require('audio-buffer')
 
//Create audio buffer from a data source or of a length. 
//Data is interpreted as a planar sequence of float32 samples. 
//It can be Array, TypedArray, ArrayBuffer, Buffer, AudioBuffer, DataView, NDArray etc. 
var buffer = new AudioBuffer(channels = 2, data|length, sampleRate = 44100)
 
//Duration of the underlying audio data, in seconds 
buffer.duration
 
//Number of samples per channel 
buffer.length
 
//Default sample rate is 44100 
buffer.sampleRate
 
//Default number of channels is 2 
buffer.numberOfChannels
 
//Get array containing the data for the channel (not copied) 
buffer.getChannelData(channel)
 
//Place data from channel to destination Float32Array 
buffer.copyFromChannel(destination, channelNumber, startInChannel = 0)
 
//Place data from source Float32Array to the channel 
buffer.copyToChannel(source, channelNumber, startInChannel = 0)
 
 
//Some special properties, it’s unlikely you will ever need them. 
 
//Type of array for data. Float64Array is faster for modern node/browsers. 
AudioBuffer.FloatArray = Float64Array
 
//In browser, you can set custom audio context (online/offline). 
AudioBuffer.context = require('audio-context')
 
//Whether WebAudioAPI AudioBuffer should be created, if avail, instead of polyfilled structure 
AudioBuffer.isWAA = true

See also

Similar

  • ndsamples — audio-wrapper for ndarrays. A somewhat alternative approach to wrap audio data, based on ndarrays, used by some modules in livejs.
  • 1, 2, 3, 4 — other AudioBuffer implementations.
  • audiodata alternative data holder from @mohayonao.