Skip to content
Achu Mukundan
All work

Resample Lab

Turn one sound into a sample pack in the browser.

live · active development 2026 TypeScriptWeb AudioWeb Workers

When I am producing music, the interesting part of resampling is exploration, not moving files between plugins and export dialogs. I wanted one fast surface for pushing a source sound far enough to become new material, with repeatable output and no upload step.

The app exposes a small set of opinionated presets, a chaos control, and output-length modes. Underneath, every render is deterministic: the same source and settings take the same DSP path, so useful accidents can be reproduced.

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 complete upload-to-download path.

Long-running DSP without freezing the UI; deterministic parameter mapping; deadline and NaN guards; stereo and mono handling; static Next.js export; in-browser file decoding and packaging.

Profile the slowest presets on larger inputs, expand the listening-test corpus, and keep improving the transforms based on what is actually useful in a production session.