crossfade
v1.0.0
Published
Simple cross fader between two AudioNodes for WebAudio.
Readme
crossfade
Simple cross fader between two AudioNodes for WebAudio.
Usage
- Example usage
npm install crossfadervar 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 thefadeproperty.node2: AudioNode - Any AudioNode within the AudioContext. Will be assigned to the negative value of thefadeproperty.
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.
- arguments :
disconnect: Disconnect the crossfade Node from other AudioNodes. eg :c.disconnect();- supports the same arguments as disconnect method on AudioNodes
Properties
fade: AudioParam - A value in the range [-1,1] that defines how much to cross fade betweennode1andnode2.eg:
c.fade.value = 0.5; //Cross fade position with equal volume from both AudioNodes c.fade.linearRampToValueAtTime(1, context.currentTime + 5); // Automationfadeproperty is an AudioParam and supports all AudioParam automation methods.A
fadevalue of -1 implies 100% volume on node1, and 0% volume on node2, while afadevalue 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.
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
