Crossfade
Simple cross fader between two AudioNodes for WebAudio.
Install / Use
/learn @notthetup/CrossfadeREADME
crossfade
Simple cross fader between two AudioNodes for WebAudio.
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 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
Related Skills
node-connect
343.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
92.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
