/** * Pitch-based audio compression — a plain linear-interpolation resample kept * at the original sample rate, so PITCH AND TEMPO CHANGE TOGETHER (like * playing a record at the wrong speed). No anti-aliasing filter is applied. * Use tempoBasedCompress for pitch-preserving tempo change. * * @param {AudioBuffer} audioBuffer - Input audio buffer * @param {number} ratio - Length ratio (0.8 = 20% shorter, faster AND higher-pitched) * @returns {Promise} Compressed audio buffer */ export function pitchBasedCompress(audioBuffer: AudioBuffer, ratio: number): Promise; /** * Tempo-based audio compression — PITCH-PRESERVING time stretch via the * phase vocoder (src/effects/index.js time_stretch). Each * channel is stretched independently; output length is * round(input length * ratio) and the dominant pitch is unchanged. * * @param {AudioBuffer} audioBuffer - Input audio buffer * @param {number} ratio - Length ratio (0.8 = 20% shorter/faster, same pitch) * @returns {Promise} Compressed audio buffer */ export function tempoBasedCompress(audioBuffer: AudioBuffer, ratio: number): Promise;