field notes from the edge of web audio

01

About

The browser, but as a DAW — Waveform Playlist, Mastering Tone.js, and a growing pile of openDAW experiments.

02

Projects

Waveform Playlist multitrack editor screenshot

Waveform Playlist

React + Tone.js components for multi-track audio and MIDI in the browser. Canvas waveforms and spectrograms, cues, fades, effects, recording, annotations, AudioBuffer / WAV export. Also published as Web Components for framework-free embedding.

openDAW Demos

Interactive demos of the openDAW SDK — multi-track mixing, recording, automation, scriptable effects. A growing collection of examples for building DAWs in the browser.

warp-math landing page — an integral, made visible, made audible

warp-math

The math behind tempo maps and warp markers, taught in code. Six chapters working through closed-form tempo regimes, real audio playback, meter, and repairing messy beat-detection data — closed-form where possible, numerical integration where not.

03

Books

Mastering Tone.js — a guide to interactive audio in the browser

04

Marginalia

  • A Tale of Two Clocks — Chris Wilson

    The canonical primer on look-ahead scheduling — why setTimeout alone won't keep a sequencer in time.

  • A Wait-Free SPSC Ringbuffer for the Web — Paul Adenot

    Moving audio between the AudioWorklet and the main thread without locks or allocations.

  • Project Sync — Vanilagy

    WebCodecs hides encoder priming delay, so Mediabunny measures it at runtime with an impulse signal and keeps audio in sync through hundreds of re-encodes.