bitcrusher
Implementation of a bit-crush effect using the Web Audio API.
Installation
Browserify is recommended; alternatively you can grab a UMD module from the build
directory. If using npm
:
$ npm install bitcrusher
Usage
var bitcrusher = ; var audioContext = window; var bitcrushNode = ; var mySource = // ... create audio source mySource;bitcrushNode;
API
bitcrusher(audioContext, opts)
Create a new bitcrusher in the Web Audio Context audioContext
configured with the supplied options:
bufferSize
: defaults to 4096channelCount
: defaults to 2bitDepth
: output resolution, defaults to 8frequency
: sample-and-hold ratio; used to reduce the perceived output frequency. Defaults to 1 (no change).
Returns a ScriptProcessorNode
configured with a bitcrush effect.
Reference
If you're running OS X, open graph.gcx
in Grapher.app
to visualise the algorithm.
TODO
bitDepth
and frequency
options would ideally instances of AudioParam
. Unfortunately the Web Audio API does not yet allow standalone instances to be created.