ez-web-audio
Version:
Making the Web Audio API super EZ since 2024.
84 lines • 2.69 kB
TypeScript
export type ControlType = 'frequency' | 'gain' | 'detune' | 'pan';
export type RatioType = 'ratio' | 'inverseRatio' | 'percent';
export type RampType = 'linear' | 'exponential';
export type SeekType = RatioType | 'seconds';
export interface ParamValue {
type: ControlType;
value: number;
}
export interface ValueAtTime extends ParamValue {
time: number;
}
export interface ParamController {
gain: number;
pan: number;
setValuesAtTimes: () => void;
updateAudioSource: (source: any) => void;
updateGainNode: (gainNode: GainNode) => void;
updatePannerNode: (pannerNode: StereoPannerNode) => void;
update: (type: ControlType) => {
to: (value: number) => {
from: (method: RatioType) => void;
};
};
onPlaySet: (type: ControlType) => {
to: (value: number) => {
at: (time: number) => void;
endingAt: (time: number, rampType?: RampType) => void;
};
};
onPlayRamp: (type: ControlType, rampType?: RampType) => {
from: (startValue: number) => {
to: (endValue: number) => {
in: (endTime: number) => void;
};
};
};
}
interface AudioSource {
detune: {
value: number;
};
frequency?: {
value: number;
};
}
export declare class BaseParamController {
protected audioSource: AudioSource;
protected gainNode: GainNode;
protected pannerNode: StereoPannerNode;
constructor(audioSource: AudioSource, gainNode: GainNode, pannerNode: StereoPannerNode);
protected startingValues: ParamValue[];
protected valuesAtTime: ValueAtTime[];
protected exponentialValues: ValueAtTime[];
protected linearValues: ValueAtTime[];
get gain(): number;
protected set gain(value: number);
get pan(): number;
protected set pan(value: number);
updateGainNode(gainNode: GainNode): void;
updatePannerNode(pannerNode: StereoPannerNode): void;
protected _update(type: ControlType, value: number): void;
update(type: ControlType): {
to: (value: number) => {
from: (method: RatioType) => void;
};
};
onPlaySet(type: ControlType): {
to: (value: number) => {
at: (time: number) => void;
endingAt: (time: number, rampType?: RampType) => void;
};
};
onPlayRamp(type: ControlType, rampType?: RampType): {
from: (startValue: number) => {
to: (endValue: number) => {
in: (endTime: number) => void;
};
};
};
private removeStartingValue;
private addRampValue;
}
export {};
//# sourceMappingURL=param-controller.d.ts.map