bitcrusher
v0.3.0
Published
Bitcrush effect for the web audio API
Downloads
24
Maintainers
Readme
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 = require('bitcrusher');
var audioContext = window.createAudioContext();
var bitcrushNode = bitcrush(audioContext, {
bitDepth: 6,
frequency: 0.5
});
var mySource = // ... create audio source
mySource.connect(bitcrushNode);
bitcrushNode.connect(audioContext.destination);
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.