Audio-Mixer
Allows mixing of PCM audio streams.
Installation
npm i audio-mixer -S
API
Mixer.new
// @options - The options for the mixerlet mixer = options: MixerArguments; // @channels - The number of channels this output has// @bitDepth - The bit depth of the data going to the output// @sampleRate - The sample rate of the output// @clearInterval - An interval in ms of when to dump the stream to keep the inputs in sync (when not specified the stream is not dumped)interface MixerArguments extends ReadableOptions channels: number; bitDepth?: number; sampleRate: number; clearInterval?: number;
Mixer.input
// @options - The options for this inputlet input = mixerinputoptions: InputArguments; // @channels - The number of channels this input has (default uses Mixer's)// @bitDepth - The bit depth of the data coming in this input (default uses Mixer's)// @sampleRate - The sample rate of this input (default uses Mixer's)// @volume - The volume to set this input to when mixing (default is 100)interface InputArguments extends WritableOptions channels?: number; bitDepth?: number; sampleRate?: number; volume?: number;
Mixer.removeInput(input)
// @input - The input to remove from the mixermixer;
Input.new
// @options - The options for this inputlet input = options: InputArguments; // @channels - The number of channels this input has// @bitDepth - The bit depth of the data coming in this input// @sampleRate - The sample rate of this input// @volume - The volume to set this input to when mixing (default is 100)interface InputArguments extends WritableOptions channels?: number; bitDepth?: number; sampleRate?: number; volume?: number;
Input.getVolume()
input;
Input.setVolume(volume)
// @volume - The volume to set this input toinput;
Code Example
var AudioMixer = ; // Creates a new audio mixer with the specified optionslet mixer = channels: 2 bitDepth: 16 sampleRate: 44100 clearInterval: 250; // Creates an input that is attached to the mixerlet input = mixerinput channels: 1 volume: 75; // Creates a standalone inputlet standaloneInput = channels: 1 bitDepth: 16 sampleRate: 48000 volume: 75; // Adds the standalone input to the mixermixer; // Pipes a readable stream into an inputdeviceInputStream;deviceInputStream2; // Pipes the mixer output to an writable streammixer;