Undertone
A node-based sandbox for making sound
Undertone is a node-based audio sandbox. You drag oscillators, filters, logic and arithmetic onto a canvas, wire them together, and hear the result immediately. It is built for the kind of experimenting that a timeline-based DAW makes awkward: patch something strange, break it, follow the accident.

- Live
- Web Audio
- Desktop
Why it exists
Most audio software asks you to decide what you are making before you start. A DAW wants a tempo and a track. A synth wants a preset. Undertone wants a graph, and a graph does not care whether the thing on the end of it is a kick drum or a slowly detuning drone.
The payoff is that the interesting part, signal going somewhere it was not designed to go, is the default rather than a workaround. An LFO into a filter is a patch. An LFO into a comparator into a sample-and-hold into a frequency input is the same amount of work.
How it works
Every node is a thin wrapper over the Web Audio API graph, so the audio itself runs on the browser's own audio thread rather than in JavaScript. The editor keeps a parallel description of the patch, and reconciles it against the live `AudioContext` when you connect, disconnect or retune something, which means edits take effect mid-note instead of restarting playback.
Patches persist to Supabase, so a graph you build survives a refresh and can be shared by URL. The canvas is pan-and-zoom with real link routing, which is the part that stops a patch of forty nodes from turning into spaghetti.
Where it is going
Recording and export, a library of sharable patches, and more node types, particularly sequencing and sample playback, which are the two things people reach for first and currently have to fake with oscillators and logic.

