Pulsed tones on a timed score, and a point to hold. An instrument for structured attention practice — built to be honest about what it does, and to run entirely on hardware you control.
Two ways in. Session plays a timed score with ramps and cues, the way the Gateway tapes are structured. Console gives you the raw generator — stack up to three layers and drive them by hand.
Keys: space start/stop · ←/→ seek 30s · [/] segment · ↑/↓ master · v visual · b bed · f fullscreen
A single slider held at 4 Hz is not a session. The thing that makes a guided programme work is the shape over time: a tuning phase, a slow descent, a long hold, a deliberate return. Rates that ramp over minutes, not jumps.
So the unit here isn't a frequency, it's a score — a small JSON file listing segments, target states, ramp curves and timed cues. The player interpolates between waypoints and schedules every change sample-accurately in the audio clock, so nothing drifts when the tab loses focus.
Scores are plain files. Export one, edit it in any text editor, send it to somebody. Copy link packs the whole score into the URL fragment — no server sees it, because the fragment is never sent. A link is a session.
The format is documented in docs/SCORE-FORMAT.md. Built-in scores are CC BY-SA 4.0 — fork them, improve them, publish yours.
{ "focus": 1, "title": "Descent — 10", "layers": [{ "carrier": 100, "mode": "binaural" }],
"segments": [
{ "name": "Tuning", "duration": 180, "ramp": "hold", "state": [{ "beat": 10, "gain": 0.55 }] },
{ "name": "Descent", "duration": 300, "ramp": "ease", "state": [{ "beat": 4, "gain": 0.6 }] },
{ "name": "Hold", "duration": 900, "ramp": "hold", "state": [{ "beat": 4, "gain": 0.6 }] },
{ "name": "Return", "duration": 240, "ramp": "ease", "state": [{ "beat": 14, "gain": 0.4 }] } ] }
These are the associations from the EEG literature. They describe which rhythm tends to dominate a resting EEG in that state — not a guarantee that playing the tone produces the state. Read the last column as "what practitioners aim at," under the caveat in section 05.
| Band | Range | Associated with | Commonly used for |
|---|---|---|---|
| Delta | 0.5–4 Hz | Deep, dreamless sleep | Sleep onset, deep rest — usually a glide target, not a starting point |
| Theta | 4–8 Hz | Drowsiness, deep meditation, hypnagogia | Meditation, creative reverie, the edge just before sleep |
| Alpha | 8–12 Hz | Calm, eyes-closed wakefulness | Relaxed focus, winding down — start here |
| Beta | 13–30 Hz | Alert, engaged thinking | Concentration drills, active work |
| Gamma | 30–45 Hz | High-level binding, intense focus | Peak-attention experiments; least established, most speculative |
Console mode, one layer, isochronic beta 15–20 Hz, carrier 220–300 Hz, low volume, visual set to focus point. Hold the point. Track the beats. Notice the exact moment you lose the count — then return, without commentary. That noticing is the rep.
Session mode, Descent — 10, headphones, eyes closed, visual off. Let the ramp carry you; don't chase it. The long hold is where the work happens, and it will feel like nothing is happening. That's expected.
Start from a built-in score, export it, change one thing. Longer holds beat steeper ramps almost every time.
Keep the volume low — a clear tone you can think over, never one that fatigues your ears. There's a limiter on the output, but it is a floor under mistakes, not permission. 20–45 minutes is a full session. Stop on headache or unease.
The pulsing visual here is hard-limited to 4 Hz regardless of the audio rate — above that it divides the beat down rather than flashing at it. Declare photosensitivity on the entry gate and the pulsing option is removed entirely. Audio-only sessions involve no light at all.
Which leaves an honest question: if the mechanism is oversold, why build a careful instrument for it?
Because the practice underneath doesn't depend on the mechanism. Sustained, rhythmic, single-pointed attention is what every contemplative tradition drills, and an external timekeeper you cannot argue with is a good scaffold for it. The tone doesn't have to be doing something to your brainwaves for the discipline of returning to it to be worth the forty minutes.
That's the position this thing takes: take the practice seriously, take the evidence seriously, and don't let either one launder the other.
The Monroe Institute's Gateway Experience is the origin of this whole genre, and its tapes, manuals and the Hemi-Sync trademark are their property. FOCUS ships no Monroe audio, no Monroe text, and no Monroe branding. Every built-in score and cue here is original, written for this project.
What you can have is the structural idea — tuning, descent, hold, return — which is not anybody's property, and the declassified US government assessment of the programme, which is a federal work in the public domain.
If you own the tapes, the Import control reads score files from your own disk, and nothing you load ever leaves the machine.
This page is one HTML file with no build step, no framework, no CDN, no fonts fetched from Google, no analytics, no service calls, and no accounts. Fonts and code are embedded. Open it from a USB stick on a plane and it works identically.
That isn't a flex, it's the point. A tool for sitting quietly with your own attention should not be phoning anyone.
Three ways to run it:
1. Save this page. Done — it's a complete application.
2. docker compose up -d from the repo.
3. Drop focus.html into any static host or reverse proxy.
Source and issues: the repository. Code MIT, built-in scores CC BY-SA 4.0, fonts OFL.