import { FrequencyClass } from "../core/type/Frequency.js"; import { Frequency, Positive, Time } from "../core/type/Units.js"; import { RecursivePartial } from "../core/util/Interface.js"; import { Synth, SynthOptions } from "./Synth.js"; export interface MembraneSynthOptions extends SynthOptions { pitchDecay: Time; octaves: Positive; } /** * MembraneSynth makes kick and tom sounds using a single oscillator * with an amplitude envelope and frequency ramp. A Tone.OmniOscillator * is routed through a Tone.AmplitudeEnvelope to the output. The drum * quality of the sound comes from the frequency envelope applied * during MembraneSynth.triggerAttack(note). The frequency envelope * starts at note * .octaves and ramps to note * over the duration of .pitchDecay. * @example * const synth = new Tone.MembraneSynth().toDestination(); * synth.triggerAttackRelease("C2", "8n"); * @category Instrument */ export declare class MembraneSynth extends Synth { readonly name: string; /** * The number of octaves the pitch envelope ramps. * @min 0.5 * @max 8 */ octaves: Positive; /** * The amount of time the frequency envelope takes. * @min 0 * @max 0.5 */ pitchDecay: Time; /** * Portamento is ignored in this synth. use pitch decay instead. */ readonly portamento = 0; /** * @param options the options available for the synth see defaults */ constructor(options?: RecursivePartial); static getDefaults(): MembraneSynthOptions; setNote(note: Frequency | FrequencyClass, time?: Time): this; dispose(): this; }