audio-mixer
TypeScript icon, indicating that this package has built-in type declarations

2.1.4 • Public • Published

Audio-Mixer

Allows mixing of PCM audio streams.

Installation

npm i audio-mixer -S

API

Mixer.new

// @options - The options for the mixer
let mixer = new 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 input
let input = mixer.input(options: 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 mixer
mixer.removeInput(input);

Input.new

// @options - The options for this input
let input = new 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.getVolume();

Input.setVolume(volume)

// @volume - The volume to set this input to
input.setVolume(volume);

Code Example

var AudioMixer = require('audio-mixer');
 
// Creates a new audio mixer with the specified options
let mixer = new AudioMixer.Mixer({
    channels: 2,
    bitDepth: 16,
    sampleRate: 44100,
    clearInterval: 250
});
 
// Creates an input that is attached to the mixer
let input = mixer.input({
    channels: 1,
    volume: 75
});
 
// Creates a standalone input
let standaloneInput = new AudioMixer.Input({
    channels: 1,
    bitDepth: 16,
    sampleRate: 48000,
    volume: 75
});
 
// Adds the standalone input to the mixer
mixer.addInput(standaloneInput);
 
// Pipes a readable stream into an input
deviceInputStream.pipe(input);
deviceInputStream2.pipe(standaloneInput);
 
// Pipes the mixer output to an writable stream
mixer.pipe(deviceOutputStream);

Readme

Keywords

Package Sidebar

Install

npm i audio-mixer

Weekly Downloads

281

Version

2.1.4

License

ISC

Unpacked Size

28.7 kB

Total Files

16

Last publish

Collaborators

  • connorcetgi