/** * SynthEngine.ts * * Software synthesizer: oscillators (sine/square/saw/triangle), * ADSR envelopes, filters, wavetables, and polyphony. * * @module audio */ export type WaveformType = 'sine' | 'square' | 'saw' | 'triangle' | 'noise' | 'wavetable'; export interface ADSREnvelope { attack: number; decay: number; sustain: number; release: number; } export interface OscillatorDef { id: string; waveform: WaveformType; frequency: number; amplitude: number; phase: number; detune: number; envelope: ADSREnvelope; wavetable?: number[]; } export interface SynthVoice { id: string; oscillator: OscillatorDef; noteOn: boolean; noteOnTime: number; noteOffTime: number; currentAmplitude: number; elapsed: number; } export interface FilterDef { type: 'lowpass' | 'highpass' | 'bandpass'; cutoff: number; resonance: number; } export declare class SynthEngine { private voices; private maxPolyphony; private masterVolume; private filter; private sampleRate; noteOn(frequency: number, waveform?: WaveformType, envelope?: Partial): string; noteOff(id: string): void; generateSample(time: number): number; private computeEnvelope; update(dt: number): void; setMasterVolume(vol: number): void; setMaxPolyphony(n: number): void; setFilter(filter: FilterDef | null): void; getFilter(): FilterDef | null; getActiveVoiceCount(): number; getVoice(id: string): SynthVoice | undefined; getMasterVolume(): number; } //# sourceMappingURL=SynthEngine.d.ts.map