1.0.0 • Published 9 years ago
crossfade v1.0.0
crossfade
Simple cross fader between two AudioNodes for WebAudio.
Usage
- Example usage
npm install crossfader
var crossfader = require('crossfader');
var c = crossfader(context, node1, node2);
c.connect(context.destination);
document.getElementById('slider').addEventListener('input', function(){
c.fade.value = parseFloat(this.value);
});
API
Constructor
eg : var c = crossfader(context, node1, node2);
context
: AudioContext - The AudioContext within which the AudioNodes have been created.node1
: AudioNode - Any AudioNode within the AudioContext. Will be assigned to the negative value of thefade
property.node2
: AudioNode - Any AudioNode within the AudioContext. Will be assigned to the negative value of thefade
property.
Methods
connect
: Connect the crossfade Node to other AudioNodes. eg :``` c.connect(context.destination); ``` - arguments : - `destination` : _AudioNode_ - The AudioNode to connect the output of the crossfader to.
disconnect
: Disconnect the crossfade Node from other AudioNodes. eg :``` c.disconnect(); ``` - supports the same arguments as [disconnect method on AudioNodes](http://webaudio.github.io/web-audio-api/#widl-AudioNode-disconnect-void)
Properties
fade
: AudioParam - A value in the range -1,1 that defines how much to cross fade betweennode1
andnode2
.eg: ``` c.fade.value = 0.5; //Cross fade position with equal volume from both AudioNodes c.fade.linearRampToValueAtTime(1, context.currentTime + 5); // Automation ``` `fade` property is an [AudioParam](http://webaudio.github.io/web-audio-api/#idl-def-AudioParam) and supports all [AudioParam automation methods](http://webaudio.github.io/web-audio-api/#widl-AudioParam-exponentialRampToValueAtTime-void-float-value-double-endTime). - A `fade` value of -1 implies 100% volume on node1, and 0% volume on node2, while a `fade` value of 1 implies 0% volume on node1, and 100% volume on node2. - The mapping between the value of fade and the volume follows the [equal power curve](http://www.soundonsound.com/sos/feb07/articles/ptworkshop_0207.htm).
Credits
Thanks to tambien for the his idea of using a generator + shaper to create a-rate, first class, custom AudioParams (like fade
in this case).
License
MIT
See License file
1.0.0
9 years ago