UNPKG

2.37 kBTypeScriptView Raw
1import { Gain } from "../../core/context/Gain.js";
2import { ToneAudioNode, ToneAudioNodeOptions } from "../../core/context/ToneAudioNode.js";
3import { Frequency, Positive } from "../../core/type/Units.js";
4import { Signal } from "../../signal/Signal.js";
5import { Filter } from "../filter/Filter.js";
6interface MultibandSplitOptions extends ToneAudioNodeOptions {
7 Q: Positive;
8 lowFrequency: Frequency;
9 highFrequency: Frequency;
10}
11/**
12 * Split the incoming signal into three bands (low, mid, high)
13 * with two crossover frequency controls.
14 * ```
15 * +----------------------+
16 * +-> input < lowFrequency +------------------> low
17 * | +----------------------+
18 * |
19 * | +--------------------------------------+
20 * input ---+-> lowFrequency < input < highFrequency +--> mid
21 * | +--------------------------------------+
22 * |
23 * | +-----------------------+
24 * +-> highFrequency < input +-----------------> high
25 * +-----------------------+
26 * ```
27 * @category Component
28 */
29export declare class MultibandSplit extends ToneAudioNode<MultibandSplitOptions> {
30 readonly name: string;
31 /**
32 * the input
33 */
34 readonly input: Gain<"gain">;
35 /**
36 * no output node, use either low, mid or high outputs
37 */
38 readonly output: undefined;
39 /**
40 * The low band.
41 */
42 readonly low: Filter;
43 /**
44 * the lower filter of the mid band
45 */
46 private _lowMidFilter;
47 /**
48 * The mid band output.
49 */
50 readonly mid: Filter;
51 /**
52 * The high band output.
53 */
54 readonly high: Filter;
55 /**
56 * The low/mid crossover frequency.
57 */
58 readonly lowFrequency: Signal<"frequency">;
59 /**
60 * The mid/high crossover frequency.
61 */
62 readonly highFrequency: Signal<"frequency">;
63 protected _internalChannels: Filter[];
64 /**
65 * The Q or Quality of the filter
66 */
67 readonly Q: Signal<"positive">;
68 /**
69 * @param lowFrequency the low/mid crossover frequency
70 * @param highFrequency the mid/high crossover frequency
71 */
72 constructor(lowFrequency?: Frequency, highFrequency?: Frequency);
73 constructor(options?: Partial<MultibandSplitOptions>);
74 static getDefaults(): MultibandSplitOptions;
75 /**
76 * Clean up.
77 */
78 dispose(): this;
79}
80export {};