/** * Reverse audio effect */ import { getAudioContext } from '../context'; /** * Reverse audio buffer * @param buffer - Source audio buffer * @returns New audio buffer with reversed audio */ export function reverseAudio(buffer: AudioBuffer): AudioBuffer { const audioContext = getAudioContext(); const outputBuffer = audioContext.createBuffer( buffer.numberOfChannels, buffer.length, buffer.sampleRate ); // Reverse each channel for (let channel = 0; channel < buffer.numberOfChannels; channel++) { const inputData = buffer.getChannelData(channel); const outputData = outputBuffer.getChannelData(channel); for (let i = 0; i < buffer.length; i++) { outputData[i] = inputData[buffer.length - 1 - i]; } } return outputBuffer; }