
I love long reverbs.
For as long as I can remember, I’ve been fascinated by reverberant spaces. I love to hum, whisper, shout, clap, hiss and sing anywhere with hard reflective surfaces: churches, caves, school corridors, racquetball courts, empty halls, underpasses, canyons. Some people hear echoes as a defect. I hear them as an instrument and a beautiful form of biofeedback.
Long before I understood anything about acoustics or DSP, I understood the feeling: the strange emotional pull of hearing your own voice transformed by space into something larger than yourself.
One of the formative influences on this obsession was the album Inside the Taj Mahal by Paul Horn. In 1968, Horn famously recorded improvised flute performances inside the Taj Mahal using the building itself as part of the instrument allowing him to layer complex harmonies and melodies as a solo artist in the space. The guard noticed him but didn’t intervene. The reverb isn’t decoration on that album — it is the music. When I (re)discovered this album as an adult, it sent sparkly chills down my spine as, in a Proustian moment, I suddenly remembered that my parents had the LP and would listen to it while they were doing yoga in the living room. (Yes, they were hippies). Hearing it again instantly took me to a place of infinite space, calm, and potential.
Before I became an awkward adult, I was an awkward teenager. While other kids socialised at lunchtime, I would stand above the empty racquetball courts at my school, close my eyes, and sing into the huge reflective void beneath me. It felt enormous. Sacred, even.
Eventually I saved enough money to buy an Ensoniq ASR-10 sampler with on-board effects. For me, the ASR-10 wasn’t really a sampler. It was a portable cathedral. I would sit for hours feeding my voice into cavernous reverbs and delays, building dense harmonic clouds and drones.
In university I discovered the work of David Hykes. David would get together with his friends in the Downtown Arts Scene in New York in the 80s and hold kind of resonant acoustic seances. This became the Harmonic Choir, whose explorations of resonance, overtone singing and architectural acoustics have created some of the most otherworldly and beautiful work I’ve heard. The idea that spaces and bodies have resonant frequencies that can interact and produce new sounds and vibrations completely captured my imagination.
After getting deeper into creative coding and browser audio, I started experimenting with building these kinds of environments myself using p5.js and the Web Audio API. Early versions were rough and unstable but surprisingly magical: a microphone, a few delay lines, feedback paths, filtering and suddenly the browser became an explorable acoustic space.
I sent the video above David Hykes. To my astonishment and delight, he invited me to visit him at his home/studio in rural France and sing with him and a group of about 8 other fearless resonance explorers. Every day for about 3 days we would gather in a restored stone room specially modified with hard smooth surfaces attached to his farmhouse. We would start with the breath, then move into gentle humming, and finally expand into full-throated highly resonant singing, listening, building, and interacting with the sounds being produced by each other and by the space itself. It was one of the most transcendent musical experiences of my life.
That experience inspired me to revisit the project properly. I ripped v1 apart, removed P5js, rewrote it in vanilla JS, and finally brought in some GenAI help to push it beyond what I could do myself.
Eventually, Sarum was born.
The name comes from Old Sarum, the ancient settlement near Salisbury Cathedral — home to one of the most beautiful reverberant spaces I know.
Sarum is intentionally simple.
You open the page, allow microphone access, and start making sound.
The number keys (1–0) trigger progressively longer reverb “holds” or layers. The spacebar mutes and unmutes the microphone. Pressing K rapidly fades the oldest layer, while S records the session to a WAV file.
That’s basically it.
No timeline. No piano roll. No plugins menu.
Just your voice, space, accumulation and decay.
The current version is available here:
The entire project will be released under a CC-BY-SA license because I genuinely want people to experiment with it, modify it, break it and build strange things from it.
Most music software treats reverb as an effect added at the end of a signal chain. Sarum approaches it differently.
The reverb is the instrument.
Technically speaking, reverb simulates what happens when sound reflects off surfaces in a physical space. Your ears hear the original sound first, then thousands of tiny delayed reflections bouncing around the environment.
In DSP (digital signal processing), there are many ways to fake this illusion. Sarum uses a mixture of delay lines, filtering, feedback and layered buffers to create evolving textures that feel spacious without trying to perfectly imitate a real room.
One useful mental model is to imagine sound as ripples in a pond. A normal delay gives you one or two clear repeated splashes. Reverb creates millions of tiny overlapping ripples until individual reflections blur into atmosphere.
Here’s a simplified example from the project:
delay.feedback(0.92);
delay.filter(1200);
This tiny piece of code already captures a lot of what makes reverb feel immersive.
The feedback value controls how much of the delayed signal gets fed back into itself. Higher values mean longer decays — more lingering sound.
The filter progressively removes high frequencies from each repeat:
filter.freq(800);
This matters because real spaces naturally absorb high frequencies over time. Without filtering, digital reverbs often sound metallic or harsh.
Another important trick is shaping noise mathematically to create impulse textures:
data[i] =
(Math.random() * 2 - 1) *
Math.pow(1 - i / length, 3) *
Math.sqrt(i / length);
Confession: this one was pure AI. I never would’ve understood or thought to do this on my own. This adds the randomness that gives the reverb a more organic and physical feel. Instead of a flat burst of static, the sound blooms and fades in a natural way.
Another key improvement was to migrate the audio engine away from the older ScriptProcessorNode approach and use AudioWorkletNodes for lower latency and more reliable real-time audio processing. This means buttery smooth decays and no stuttering.
One of the things I love most about modern browser audio is accessibility.
You don’t need a giant modular synth. You don’t need expensive studio software. You click a link and start singing into a machine that turns your bedroom into a shifting harmonic cathedral.
That still feels miraculous to me.
What I love most about this project isn’t so much the ability to make interesting sounds but how it has enabled me to connect with myself to explore my own voice…to find my literal voice. To understand the feeling of using your own vocal chords to resonate your own body and to settle your own mind.
As I’m learning more about my recently diagnosed ADHD I’m leaning even more into how meditation, chant, and singing can help me to maintain focus and calm and get into a highly productive, expressive, joyful state.
I hope maybe it can do the same for you.
If any of this resonates with you — singers, ambient musicians, coders, sound artists, curious weirdos — I’d love for you to try it.
Hum into it. Whisper into it. Feed it field recordings. Break it with noise. Discover resonances in your own voice you didn’t know existed.
Find your voice.
Experiment.
Become the architect of your own reality.
Please let me know what you do with it!
I’ve now given a couple of talks about this tool. Check out the latest slides.