Rain Beats
A four-lane rhythm game with three tracks at 96, 120 and 144 BPM, judged at ±45 ms, with every sound synthesised live in the browser.
A four-lane rhythm game with three tracks at 96, 120 and 144 BPM, judged at ±45 ms, with every sound synthesised live in the browser.

Three tracks, four lanes, four keys: D F J K. The audio is not a downloaded file — it is synthesised in the browser, with bass, mallet and rain noise on separate layers, and both notes and backing scheduled against one clock. Within ±45 ms is Perfect, within ±100 ms is Good, later than that is a Miss.
Released 2026-11-07 · Version 1.0.0 · Updated 2026-11-07




Eaves is 96 BPM over 64 beats with 48 notes, the easiest entry. Tide is 120 BPM over 80 beats with 72 notes, where two notes inside one beat start to appear. Downpour is 144 BPM over 96 beats with 104 notes, the densest and the one that tests finger alternation. All three run about forty seconds, so a track is not a long commitment.
The note counts are not estimates. Charts are generated from a fixed seed: an eighth-note grid is cut into usable slots, then exactly the specified number of notes is placed, and the result is counted again at runtime. The number on the song button is the runtime count.
Every note carries a target time. Judgement subtracts it from the current song time and takes the absolute value: within 45 ms is Perfect, within 100 ms is Good, beyond that is a Miss. The clock is AudioContext time, not frame count, so a dropped frame cannot shift the whole chart.
Life starts at 100; Perfect adds 1.2, Good adds 0.5 and a Miss takes 6. Seventeen consecutive misses ends the run. Accuracy is (Perfect + Good × 0.6) divided by the total note count — a Good is worth sixty percent.
Loading audio files brings two problems: a download before the first play, and decoding latency that differs between devices. With live synthesis, the scheduling time and the sounding time sit on the same clock, so what you judge and what you hear cannot drift apart.
Each note is queued 150 ms ahead rather than triggered inside a frame — the latter stutters whenever frame pacing wobbles. Bass is a sine, the mallet is a triangle with a fast decay, rain is white noise through a filter, and the three tracks differ by scale and rhythm pattern.
Every ten combo adds 5% to the score multiplier, up to 50%. Dropping the combo resets the bonus, but points already earned stay. The grade reads accuracy: S needs almost all Perfect, A tolerates a few Good, B means you followed it, C means you finished but missed a lot.
Each track keeps its own best score and best accuracy on this device. The three numbers on the select screen are those three tracks and never overwrite each other; a new device or cleared site data starts at zero.
On a keyboard, D F J K map to the four lanes, P pauses, R restarts and Esc returns to the title. On a phone the bottom of the canvas is split into four touch pads, resolved by x position, with multi-touch so several fingers register — the only workable way to play four lanes on glass.
Pausing suspends the whole audio context and resumes from the same position rather than replaying from the top. That matters for a longer track: taking a call halfway through should not cost you the first half.
Are the note counts fixed?
Yes — 48, 72 and 104, generated from fixed seeds, identical every time. The number on the button is counted at runtime, not a hardcoded caption.
I pressed the key but still got a Miss. Why?
Judgement compares the moment of the press with the note target. Pressing more than 100 ms early is also a Miss. Following the drum beat is steadier than staring at the notes.
Is score only about accuracy?
No. The combo bonus can lift the score to 1.5 times, so staying unbroken and hitting accurately both matter. Breaking combo does not hurt accuracy, but it visibly lowers the score.
Does progress sync?
No. Best score and best accuracy for the three tracks live only in this browser.
Pick a track and follow the beat — Runs on its own subdomain · 3 tracks, 224 notes · records stay on this device
Since the first version on 2026-11-07, this page records what changed in each version of this game.