Nothing here is a recording
The entire instrument is oscillators — sine, triangle, sawtooth — and three colors of noise (white, pink, brown), run through filters and envelopes built fresh in the browser's Web Audio graph every time you press play. There isn't a single sample anywhere in the app, which is also why the whole thing fits in one HTML file.
The feedback loop that exploded
The Arp layer was originally a filtered triangle wave — a generic synth "pluck." Making it sound like an actual plucked string called for real physical modeling: Karplus-Strong synthesis, where a burst of noise is fed into a short delay line wired back into itself, and the loop's own resonance becomes the string's pitch and timbre.
The first version used a resonant filter (a BiquadFilterNode) as the damping stage inside that feedback loop. Chrome immediately logged a warning: "BiquadFilterNode: state is bad, probably due to unstable filter." Rendering the exact same construct offline and inspecting the raw samples confirmed it — the signal's peak amplitude went from about 1 to over 1024 within two seconds. Not a decaying pluck. A runaway feedback loop.
The fix was to go back to the original 1983 Karplus-Strong paper's own damping stage: a simple two-tap moving average, pure delay-and-gain math with no resonance possible, so the loop's total gain can never exceed the feedback coefficient at any frequency. Provably stable — and simpler than what it replaced.
The filter on the wrong side
Shimmer's high, airy overtones were disappearing entirely, no matter how much gain got added upstream. The instinct was "it's too quiet, turn it up" — which changed nothing, repeatedly.
Measuring the actual output energy directly, instead of guessing from the code, found the signal flatlined at the noise floor regardless of gain. The real bug: the highpass filter meant to keep Shimmer's tone airy was set to a cutoff above the pitch of Shimmer's own oscillators — so it was eating almost the entire signal before any gain stage ever saw it. No amount of gain fixes a filter on the wrong side of its own source.
Giving the generators a memory
Bells and Arp originally picked notes completely independently, uniformly at random from the scale. Technically harmonic — same scale — but they never sounded like they were listening to each other.
The fix was a single piece of shared state: a tonal center that drifts by one scale step every 15–25 seconds. Bells' note choice and Arp's melodic phrases both lean toward it, and the Pad's chord follows the same center. Three generative layers now drift through the same loose chord progression together, without ever being told to play the "same" notes.
Written by an AI, on purpose
The overwhelming majority of Aether's code, sound design, and this page itself were written by Claude, an AI agent made by Anthropic — directed and reviewed by a human throughout, including catching and fixing both bugs above by actually measuring behavior rather than trusting that the code looked right. The full commit history, with Claude's co-authorship marked on each one, is public in the source repository.