tone
Version:
A Web Audio framework for making interactive music in the browser.
76 lines (75 loc) • 2.63 kB
TypeScript
import { Volume } from "../../component/channel/Volume";
import { Decibels } from "../type/Units";
import { Gain } from "./Gain";
import { Param } from "./Param";
import { ToneAudioNode, ToneAudioNodeOptions } from "./ToneAudioNode";
interface DestinationOptions extends ToneAudioNodeOptions {
volume: Decibels;
mute: boolean;
}
/**
* A single master output which is connected to the
* AudioDestinationNode (aka your speakers).
* It provides useful conveniences such as the ability
* to set the volume and mute the entire application.
* It also gives you the ability to apply master effects to your application.
*
* @example
* import { Destination, Oscillator } from "tone";
* const oscillator = new Oscillator().start();
* // the audio will go from the oscillator to the speakers
* oscillator.connect(Destination);
* // a convenience for connecting to the master output is also provided:
* oscillator.toDestination();
* // these two are equivalent.
* @category Core
*/
export declare class Destination extends ToneAudioNode<DestinationOptions> {
readonly name: string;
input: Volume;
output: Gain;
/**
* The volume of the master output.
*/
volume: Param<"decibels">;
constructor(options: Partial<DestinationOptions>);
static getDefaults(): DestinationOptions;
/**
* Mute the output.
* @example
* import { Destination, Oscillator } from "tone";
* const oscillator = new Oscillator().start().toDestination();
* // mute the output
* Destination.mute = true;
*/
mute: boolean;
/**
* Add a master effects chain. NOTE: this will disconnect any nodes which were previously
* chained in the master effects chain.
* @param args All arguments will be connected in a row and the Master will be routed through it.
* @return {Destination} this
* @example
* import { Compressor, Destination, Filter } from "tone";
* // some overall compression to keep the levels in check
* const masterCompressor = new Compressor({
* threshold: -6,
* ratio: 3,
* attack: 0.5,
* release: 0.1
* });
* // give a little boost to the lows
* const lowBump = new Filter(200, "lowshelf");
* // route everything through the filter and compressor before going to the speakers
* Destination.chain(lowBump, masterCompressor);
*/
chain(...args: Array<AudioNode | ToneAudioNode>): this;
/**
* The maximum number of channels the system can output
*/
readonly maxChannelCount: number;
/**
* Clean up
*/
dispose(): this;
}
export {};