Resample Lab
Turn one sound into a sample pack in the browser.
Resample Lab takes an audio file and renders eight related sounds across ambiences, one-shots, loops, oddities, and granular textures. Processing stays inside a Web Worker, and the result downloads as a ZIP of WAV files.
Overview
Problem
Moving files between plugins and export dialogs slowed down the part of resampling I enjoyed. I wanted one quick place to push a source sound into new material, reproduce the result, and keep the audio on my machine.
Approach
The app provides a small set of presets, a chaos control, and output-length modes. Every render is deterministic, so the same source and settings follow the same DSP path.
Build
What I built
I wrote the TypeScript signal-processing pipeline around Float32Array buffers and moved the expensive work into a browser worker. It includes WSOLA stretching, granular synthesis, filters, tape profiles, delays, reverbs, bit reduction, loop detection, a finishing rack, WAV encoding, and ZIP assembly. I also built a render-audit workflow and browser tests for the full upload and download path.
Engineering focus
The implementation handles long-running DSP away from the UI thread, deterministic parameter mapping, deadline and NaN guards, stereo and mono input, static Next.js export, file decoding, and in-browser packaging.
Details
Built with
TypeScript, Web Audio, Web Workers
Status
live · active development
Year
2026
Next
I'll profile the slowest presets on larger inputs, expand the listening-test set, and improve the transforms based on what I use in music sessions.