A web-based keyboard visualizer built for ADOFAI rolling practice. It shows real-time animated rains as you press keys, tracks your speed and accuracy across multiple practice modes, and lets you deeply customize the look, feel, and behavior of the entire interface.
Thank youto all of my friends who supported the development of this website, and to everyone who reviewed it before it was made public:BaconJeezbrgr (great song artist and friend Check him out here!SirPoff, Toby, Fox, Demi, Playtonz, Caron, BypassedChicken, Oneleaf, and Shinora.
Thank youto everyone who was a translator:Caron (Korean), BaconJeezbrgr (great song artist and friend Check him out here! (German), and ShinyUmbreon (Spanish).
Core Visualizer
Real-time keyboard press visualizer with animated scrolling rains
Supports 1-4 rows of keys, each independently configurable
Customizable key width and height
Practice Modes
Free mode- tracks consistency against your own running average
BPM (target) mode- fixed target BPM with a tolerance window
BPM Staircase- auto-ramps BPM from start to end in steps; per-step accuracy and a results summary at the end
Timed Challenge- fixed BPM for a set duration (15s / 30s / 1m / 2m); results with accuracy, total notes, and best streak
Burst Trainer- short bursts of N notes with rest in between; per-burst scoring with a count-in lead-in
BPM Finder- Ramps up automatically until you fail a step. Finds your current BPM ceiling.
Current Tools & Features
Rolling Ghost provides modern, legacy, and advanced custom press-order rolls; Keyboard Test checks live key input; local Recording and Instant Replay save WebM/MP4 clips on your device; Rolling Tips offers practical guidance; Key Heatmap visualizes key use; Personal Bests, the Global Leaderboard, and Session History track your progress. Settings can be saved, imported, exported, and shared by URL.
Stats & HUD
Keypress counter (toggleable)
Accuracy percentage (toggleable)
KPS (keys-per-second) display (toggleable)
Recent BPM readout
Streak tracking (current and best consecutive in-tolerance hits)
Challenge HUD with live progress for staircase / timed / burst modes
Results modals at the end of each challenge
Hit-Offset Histogram
Live histogram of gap-vs-target offsets in milliseconds
Color-coded: green = within tolerance, red = outside
Metronome
Toggleable metronome synced to the target BPM
Adjustable volume, pitch, and click length
Four sound presets: Click, Beep, Tick, Thud
Visual metronome dot indicator
Pseudo-Press Support
Multiple keys pressed within a configurable window count as one note
Window adjustable down to 1 ms
Customization
Background, key, border, pressed, and text colors (all color-pickable)
Per-row rain colors
Key opacity and rain opacity sliders
Rain fade height and fade softness controls
Key font size slider
Adjustable scroll speed
Fonts
Key font picker with 8 built-in Google Fonts
Separate stats font picker
Custom font upload via drag-and-drop or file picker (.ttf, .otf, .woff, .woff2)
Configurable shortcuts: hide UI, reset counter, toggle menu
Rebindable via "set" button + key press
Input Calibration
Calibration tool to measure press timing vs. the metronome
Saved offset display with a reset-to-zero option
Inactivity Reset
Configurable timeout (down to 1 ms) that resets the consistency timer and accuracy after a pause
Settings Persistence & Sharing
Auto-saved to localStorage
Export / import settings as JSON
"Copy share link" encodes config into a URL for others to load (custom font files excluded)
Feedback
Built-in feedback form accessible from the settings menu
Optional fields: feedback type (General / Bug / Suggestion / Other), language, Discord username, and country
Submissions are sent directly to the developer via Discord
Disclaimer: ADOFAI Rolling Practice is an independent, fan-made project created by SRG for practice and visualization purposes. It is not affiliated with, endorsed by, sponsored by, or otherwise associated with the creators, publishers, or rights holders of A Dance of Fire and Ice (ADOFAI). It is not an official ADOFAI product, tool, or service. All ADOFAI-related names and trademarks belong to their respective owners. Please use the built-in Feedback form to suggest changes, report bugs, request translations, or submit other project-related feedback instead of direct-messaging SRG.