Skip to content

jaz303/bitcrusher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 4096
  • channelCount: defaults to 2
  • bitDepth: output resolution, defaults to 8
  • frequency: 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.

About

Bitcrush effect for Web Audio API

Resources

License

Stars

Watchers

Forks

Packages

No packages published