reverse-audio-buffer
v1.0.0
Published
Reverse PCM audio and encode it to a 16-bit WAV. Zero dependencies, works in the browser and Node.
Maintainers
Readme
reverse-audio-buffer
Reverse PCM audio and encode it to a 16-bit WAV. Zero dependencies. Works in the browser and in Node.
Built for and powering the free tool at reverseaudiotool.com — reverse any audio in your browser, no upload, no signup.
Install
npm install reverse-audio-bufferUse in the browser (decode a File → reversed WAV)
import { reverseAudioFile } from "reverse-audio-buffer/browser";
const file = document.querySelector("input[type=file]").files[0];
const wavBlob = await reverseAudioFile(file);
// download it
const url = URL.createObjectURL(wavBlob);
const a = document.createElement("a");
a.href = url;
a.download = "reversed.wav";
a.click();Everything runs on the client — the audio never leaves the device. This is the same approach used by the live tool at reverseaudiotool.com.
Use with raw sample data (browser or Node)
import { reverseChannels, encodeWAV, reverseToWav } from "reverse-audio-buffer";
// channels: one Float32Array per channel, samples in [-1, 1]
const wav = reverseToWav(channels, 44100); // -> ArrayBuffer (a full WAV file)
// or compose the steps yourself:
const reversed = reverseChannels(channels);
const wavBuffer = encodeWAV(reversed, 44100);In Node you can write it straight to disk:
import { writeFileSync } from "node:fs";
writeFileSync("reversed.wav", Buffer.from(reverseToWav(channels, sampleRate)));API
| Function | Description |
| --- | --- |
| reverseChannels(channels) | Returns new reversed Float32Array[] (inputs untouched). |
| encodeWAV(channels, sampleRate = 44100) | Encodes channel data to a 16-bit WAV ArrayBuffer. |
| reverseToWav(channels, sampleRate = 44100) | Reverse + encode in one call. |
| reverseAudioFile(fileOrArrayBuffer) (from /browser) | Decode with Web Audio, reverse, return a audio/wav Blob. |
Why
Reversing audio is a one-liner in concept but fiddly in practice (channel handling, clamping, WAV headers). This packages the boring parts so you can drop a reverse-cymbal, backwards-vocal, or transition effect into any project. Try it live first at reverseaudiotool.com.
License
MIT
