A field, not a playlist
Every sound has a position in three dimensions. Distance sets level and filtering, height changes the ear filters, and the head-related transfer function does the rest.
Spatial audio studio · runs in the browser
Drop birdsong two metres to your left and four above. Send a whale call arcing across the field over ninety seconds. Lay a ten hertz binaural beat underneath. Everything renders locally through the Web Audio API, with no account, no upload and no tracking.
field view · top-down · distances in metres
Every sound has a position in three dimensions. Distance sets level and filtering, height changes the ear filters, and the head-related transfer function does the rest.
Clips say when a sound plays. Keyframes carry position and level through time, so a journey has an arc instead of a constant bed.
When you only want frequencies, the whole studio collapses into one screen: a mode, a length, one button and the numbers that matter.
01 · The field
The field is a metre-accurate map of the space around your head. Drag a sound to move it on the ground plane, hold Alt to lift it, and switch to the tilted 3D view to see height directly.
02 · The timeline
A journey is a set of tracks over a fixed length. Every sound gets a clip and, if you want, a path. Named sections mark the phases so a forty-five minute session reads at a glance.
03 · Focus view
Not every session needs a map. The focus view is a single player: pick a mode, pick a length, press the ring. The readout shows exactly what is playing, in hertz. Sessions have a settling phase, a main phase and a wind-down, and a calming session tapers its own frequencies on the way out instead of just going quiet.
10 Hz binaural · pink noise
Twenty-five minutes of speech-shaped masking with a beat underneath.
brown noise · pad
Fifty minutes, no beat, nothing to follow.
6 breaths/min · 6 Hz
A breathing pacer at resonance rate with a theta beat.
2.5 Hz · brown noise
Forty-five minutes that fade to silence over the last three.
40 Hz isochronic
Twenty minutes of gamma-rate pulsing over a quiet drone.
432 Hz, adjustable
One frequency you set yourself, with the solfeggio set one tap away.
04 · The library
Recorded ambience for place, synthesised material for texture, and procedural generators for anything that has to hold a frequency exactly.
| Category | What is in it | How it is made |
|---|---|---|
| Nature | Birdsong, rain, thunder, waves, crickets, campfire, jungle at night, river, monkeys, elephant, leopard, deep ocean, whales, dolphins | Recorded samples, looped |
| Places | Café, train, city traffic, city park, subway station | Recorded samples, looped |
| Sound healing | Singing bowls, three gongs, wind chimes, a seven-note chakra bowl set | Samples, chakra notes pitch-shifted |
| Instruments | Piano, synth pad, bass, strings, flute, bells, drone, arpeggio | Rendered offline from oscillators |
| Frequencies | Binaural, isochronic and monaural beats, pure and solfeggio tones, white, pink and brown noise, a breath pacer, a 7.83 Hz pulse | Procedural, exact |
| Generative | Evolving chord pad, deep drone, sparse shimmer | Procedural, never repeats |
| Your files | Any MP3, WAV, OGG or M4A you drop in | Decoded in the browser, never uploaded |
Audition any card before you place it. Uploads stay on your machine: there is no server to send them to.
05 · Frequency tools
Plenty of apps sell frequencies with claims the literature does not support. This one ships the tools and tells you where the evidence stands, on the card and in the inspector.
| Tool | What it does | Label |
|---|---|---|
| Pink and white noise | Broadband masking. Pink rolls off the top end, so it sits behind work instead of over it. | Some evidence |
| Brown noise | Deeper still, and popular, but no trial covers this colour specifically. Treat it as masking and texture. | Weak evidence |
| Breath pacer | A swell you breathe with, default six breaths a minute. | Some evidence |
| Binaural beats | A different frequency in each ear; the beat is the difference. Needs headphones and stays locked to your head. | Weak evidence |
| Isochronic and monaural beats | A pulsed or summed tone that works on speakers too. | Weak evidence |
| Solfeggio tones, 432 Hz, 7.83 Hz | Popular frequencies, offered because people ask for them. | No evidence |
| 40 Hz gamma | Clinical work on 40 Hz uses light and sound together, daily, with diagnosed patients. That does not transfer to listening here, and the app says so on the card. | Weak evidence |
Each label carries a one-line reason, not just a verdict. Pick a binaural beat and the inspector points out that it needs headphones, and offers to swap it for an isochronic pulse that works on speakers. Full references live in the repository under docs/research.
06 · Under the hood
Web Audio API. HRTF panner per source, shoulder and pinna peaking filters, low-pass and high-pass inserts, tremolo, a shared convolution reverb bus and a master limiter.
Beats bypass the panner and merge straight to left and right, because spatialising them would destroy the beat. The app says so in the inspector.
Canvas 2D with a real camera: yaw, pitch, and a blend between orthographic and perspective. Picking and dragging run through the inverse projection, so they stay exact in every view.
A command stack for undo, scenes in local storage, and shareable links that carry the whole journey in the URL.
Vite. Two pages: this one and the app. Deployed to Vercel's edge.
Vitest with jsdom across the audio engine, generators, camera, timeline, presets, scenes and the undo stack.
Headphones give you the full effect. Nothing installs, nothing signs up.
Open the app