UNPKG

tone

Version:

A Web Audio framework for making interactive music in the browser.

76 lines (75 loc) 2.63 kB
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 {};