/** * Create a loopable AudioBuffer with custom waveform, multichannel support, and export options. * * @param {Object} options - Options for buffer creation. * @param {number} options.loopLengthSeconds - Length of each loop in seconds. * @param {number} options.sampleRate - Sample rate of the buffer (default: 44100). * @param {function} options.waveformFn - Function to generate waveform values (default: 440Hz sine wave). * @param {number} options.channels - Number of audio channels (default: 1). * @param {boolean} options.loopable - Whether to set loop points for seamless looping (default: false). * @param {number} options.repeats - Number of times to repeat the loop. * @returns {AudioBuffer | {buffer: AudioBuffer, loopStart: number, loopEnd: number}} - The generated AudioBuffer or an object with buffer and loop points if loopable. */ export function createLoopBuffer({ loopLengthSeconds, repeats, sampleRate, waveformFn, channels, loopable, }: { loopLengthSeconds: number; sampleRate: number; waveformFn: Function; channels: number; loopable: boolean; repeats: number; }): AudioBuffer | { buffer: AudioBuffer; loopStart: number; loopEnd: number; }; /** * Export an AudioBuffer as a .wav file. * * @param {AudioBuffer} buffer - The AudioBuffer to export. * @returns {Blob} - A Blob representing the .wav file. */ export function exportBufferAsWav(buffer: AudioBuffer): Blob; /** * Compute the Root Mean Square (RMS) energy of an audio buffer. * * @param {AudioBuffer} audioBuffer - The AudioBuffer to analyze. * @returns {number} - The RMS energy value. */ export function computeRMS(audioBuffer: AudioBuffer): number; /** * Define multiple loop points for playback. * * @param {AudioBuffer} buffer - The AudioBuffer to use. * @param {number} loopLengthSeconds - Length of each loop in seconds. * @param {number} repeats - Number of loops to define. * @returns {Array<{loopStart: number, loopEnd: number}>} - Array of loop points. */ export function defineMultipleLoopPoints(buffer: AudioBuffer, loopLengthSeconds: number, repeats: number): Array<{ loopStart: number; loopEnd: number; }>; export function computePeak(audioBuffer: any): number; export function computeZeroCrossingRate(audioBuffer: any): number; export function reverseBufferSection(buffer: any, start: any, end: any): any; export function findZeroCrossing(data: any, startIndex: any): any; export function findAllZeroCrossings(data: any, start?: number): number[]; export function findAudioStart(channelData: any, sampleRate: any, threshold?: number): any; export function applyHannWindow(audioData: any): Float32Array;