Longwave generates infinite soundscapes in real time — synthesized note by note rather than stitched from loops. You dial in a mood, set it down, and let it fill the room.
The defining experience is Next Room: music heard muffled through a wall, the way a concert sounds from down the hall as you drift off to sleep.
What it does
Never repeats
Real-time DSP synthesis means every moment is generated fresh. The same preset sounds different at 2am than at 11pm.
Six presets
Classic, Deep Ambient, Tidal, Slow Melodics, Next Room, and Drift — six anchor points across the sound space to get you started.
15 macros
Dial in texture vs. melody, distance, room size, echo, and natural environment. Subtle controls with big effects on the feel.
Director mode
The "Drift" preset slowly moves through ambient and melodic regions over the course of the night. Set it and let it drift.
Narrative episodes
Long-form spoken-word stories paired with matching ambient beds. Longwave as a medium, not just a sound machine.
Live visualization
Pitch-mapped orbs and bars respond to active melody and bass notes in real time via a Metal shader background.
Under the hood
Longwave is powered by a custom C++ DSP engine built from scratch — every note, drone, and wash of reverb is synthesized live, sample by sample, at 48 kHz. The synth voices use no sample libraries: each tone is built from raw oscillators and shaped on the fly, so the same preset never plays back quite the same way twice.
The engine pairs algorithmic composition with subtractive, FM, and Karplus-Strong voices, multi-tap Schroeder reverb, and a real-time-safe mixing path. One core compiles natively for iPhone, iPad, Apple TV, and Fire TV — the same engine on every screen.
Audio I/O and streaming are handled by miniaudio, a superb single-header cross-platform audio library.
Hear it in your browser
The same C++ engine, compiled to WebAssembly and synthesizing live right here — no samples, no streaming. Press play and dial in the macros.
Live demo needs a browser with WebAssembly & the Web Audio API. Get the app instead →