Tonemap.live

Help & FAQ

Everything you need to get started and get the most out of Tonemap.

1. Getting Started

What is Tonemap?

Tonemap is a browser-based real-time pitch and intonation visualizer. It listens through your microphone and paints a color-coded grid showing which notes you play and how in-tune they are — sharp, flat, or centered. Nothing is recorded or sent anywhere; all processing happens locally in your browser.

How do I start?

Press the microphone button (or hit Space). Your browser will ask for microphone permission the first time — click Allow. Play a note and you should see the grid light up within a moment. Press the button again (or Space) to stop.

First time? Play a scale slowly and watch your intonation tendencies appear on the grid. Cells fade in as they gain confidence, and fade out over time when you leave the pitch. Yellow means you're tending sharp; blues mean you're tending flat. Experiment with different settings to find what works best for you.

Video walkthroughs

For demos and tutorials, see the Tonemap YouTube playlist — short videos showing how to use the app and what each feature looks like in practice.

Does it work on mobile?

Yes — Tonemap works on iPhone, iPad, and Android in any modern browser. Safari on iOS and Chrome on Android are both supported. A larger screen, and landscape orientation, tend to work better, especially on mobile devices. By tapping the logo, the UI will shrink to give you more space to see the grid.

Do I need to install anything?

No. Tonemap runs entirely in your browser with no download, no account, and no plugins required.

What microphone should I use?

Any microphone works — your device's built-in mic is fine for practice. An external USB mic or audio interface will give cleaner results in noisy environments, but isn't necessary. If the meter stays gray (too quiet), try increasing Microphone Gain in settings or moving closer to the mic. Conversely, if the meter is too sensitive (volume meter color turns red), try decreasing Microphone Gain or the Onset Filter, or moving further from the mic.

2. Reading the Display

The intonation grid

Each cell in the grid represents a semitone. When you sustain a pitch, the cell lights up in a color that reflects your intonation tendency. Colors are blended from your three palette colors (default: orange/green/purple):

Sharp
In tune
Flat

The longer a note stays in a cell the more that cell's color is weighted toward your current tendency. Cells fade over time based on your History and Color Hold settings.

The pitch needle

The needle shows your real-time cent deviation from the nearest target pitch. It can be oriented horizontally or vertically (see Needle Direction in settings). The dead zone in the center is the range considered "in tune" — its size depends on your Mode setting.

Note View

Press N (Ribbons) or B (Balloons) — or the Note View button — to switch from the grid to a per-note view. Ribbons show how your intonation changed over time within each note; Balloons show a single averaged color per note. Press G to return to Grid View, or V to cycle through all three modes.

Resetting the heatmap

Press the reset button (or R) to clear all accumulated color from the grid and start fresh.

3. Settings Reference

Open settings with the gear icon or press O. All settings are saved automatically in your browser.

Tuning & Reference

Performance Pitch (A4)
The reference frequency for all target pitches. Free tier: 440, 441, 442, 443, 444 Hz. Pro: extended presets from 392–470 Hz plus a custom entry field. Match this to your ensemble, harpsichord, or period instrument.
Transposition
Offsets concert pitch so the grid shows written pitches for transposing instruments (Bb, Eb, F, etc.). Leave at C for concert-pitch instruments. Free for all users.
Stretch Tuning
Applies a Railsback-style stretch to target pitches, shifting high notes sharp and (in Full mode) low notes flat — mimicking how a well-tuned piano is actually tuned (Piano Acoustics on Wikipedia). Options: None (equal temperament), Minimal (~¼ Railsback, highs only), Medium (~½ Railsback, highs only), Full (classic piano stretch across the range). Free for all users.
Accidentals
Switch note labels between sharps and flats. Free for all users.
Rows start with note
Changes which note begins each row of the grid. Useful for aligning open strings, valve positions, or scale degrees with row boundaries.

Detection & Response

Mode
Controls the dead zone and smoothing. Relaxed (±4 cents, 350 ms smoothing) is forgiving and good for voice or slow practice. Medium (±3.5 cents, 80 ms) is the balanced default. Hard (±1.8 cents, 30 ms) is the most demanding — fast response, very small dead zone. Hard Mode is Pro only.
Onset Filter
Delays pitch response until a note has been stable for the set duration (0–100 ms). Helps ignore attack noise and transients at the start of a bow stroke or breath.
Needle Direction
Horizontal or vertical. Horizontal may feel natural to string players; vertical suits wind players and makes glissandi visible as continuous motion.

Memory & Color

History
How much accumulated playing time on a pitch contributes to its cell color before older data is discarded. Short (1 s) for rapid drills; Medium (3 s) for phrases; Long (30 s) and Unlimited for longer pieces. Long and Unlimited are Pro only.
Color Hold
How long a cell holds its color before fading begins after you leave a pitch. Longer holds let you glance away and return to see the color. Free includes 30 s. Pro adds 5 s, 15 s, 45 s, 1 min, 2 min, 5 min, and No Fade. No Fade locks colors until you reset.
Colors (Palette)
Customize the three intonation colors (sharp / center / flat) and choose from preset themes. Free for all users.

Audio Input

Volume Sensitivity
Sets the minimum RMS level required before the tuner reacts. Drag right to raise the threshold and block out room noise; drag left to catch quieter sounds. The bar shows live RMS level — green means above threshold, gray means below.
Microphone Gain
Multiplies the input signal feeding the tuner. Useful if your meter stays mostly gray during normal playing. The slider is exponential (1×–100×). Default gain varies by browser and platform — Safari on iPhone uses a higher default than desktop Chrome. Gain cannot fix clipping; if the meter is peaking red, lower input at the OS or mic level instead.
Background Noise Reduction
Ignores sounds below a chosen amplitude threshold. None reacts to any detected pitch; higher settings progressively ignore quieter sounds. The white tick on the meter shows where the cutoff sits.

Display

Note View Style
Ribbons show intonation over time (16 ms resolution) — useful for seeing vibrato, pitch bends, and drift. Balloons show the average intonation for each note as a single color.
Range
Controls which octaves are displayed in Grid View and Note View. Use Minus/Equals and [ / ] to contract or expand the top and bottom of the range on the fly.
UI Theme
Light, Dark, or System (follows your OS preference).

4. Free vs. ★ Pro

Most of Tonemap is free. Pro adds a handful of features for musicians who want more precision, longer session memory, or the Quick Recorder.

Feature Free ★ Pro
Mode (sensitivity) Relaxed, Medium + Hard Mode
History Short (1 s), Medium (3 s) + Long (30 s), Unlimited
Color Hold 30 s + 5 s, 15 s, 45 s, 1 min, 2 min, 5 min, No Fade
Performance Pitch (A4) 440, 441, 442, 443, 444 Hz Extended presets (392–470 Hz) + custom
Quick Recorder Record, slow-motion, WAV export
Transposition (all keys)
Stretch Tuning
Colors & Palette
Note View, Grid View
Mic Gain & Noise Reduction

How much does Pro cost?

Pro is $9.99/year (~83¢/month), with a 7-day free trial. Cancel anytime from your Polar.sh account page.

How do I activate Pro?

After subscribing, go to tonemap.live/activate and enter your license key. Your Pro status is stored as a signed cookie for one year; it re-validates against Polar.sh periodically in the background.

I subscribed but the app still shows Free

Make sure you activated your license at /activate. If you already did, try clearing your browser's cookies for tonemap.live and activating again. If the problem persists, email support@tonemap.live.

How do I cancel or deactivate?

Cancel your subscription from your Polar.sh account page. To remove Pro access from this browser before expiry, go to tonemap.live/deactivate, or click "Deactivate this device" in Options > Status.

5. Quick Recorder ★ Pro

The Quick Recorder lets you capture a take, review it with full Tonemap analysis, and save the audio as a WAV file — all without leaving the tuner.

Recording a take

Open the recorder panel with the record button in the toolbar (or press Z to start/stop recording). The tuner continues running during recording, so you'll see live intonation as you play. A live spectrum visualizer shows your frequency content in real time.

Reviewing playback

After recording, press Play (or X) to hear the take back. The grid replays exactly as it was recorded. Use the slow-motion control to step through difficult passages at a reduced speed.

Saving a WAV

Press the download button in the recorder to export the take as an uncompressed WAV file. Takes are not saved automatically — export anything you want to keep before closing the panel or recording again.

Note: Recording requires the microphone to be running. If the mic is off when you press Z, it will start automatically.

6. Keyboard Shortcuts

Space
Start / stop microphone
R
Reset heatmap
O
Toggle Options panel
F
Toggle full screen
C
Open Colors / Palette
G
Grid View
N
Note View — Ribbons
B
Note View — Balloons
V
Cycle views: Grid → Ribbons → Balloons
− / =
Contract / expand top of range (Grid: by octave; Note View: by semitone)
[ / ]
Contract / expand bottom of range
← / →
Scroll Note View timeline (hold Shift for faster)
Z
Start / stop recording ★ Pro
X
Play / pause recording ★ Pro

7. Troubleshooting

The grid doesn't react when I play

Check the level meter in the Options panel. If it stays gray, the tuner isn't hearing you:

• Make sure your browser has microphone permission (check the address bar or your OS privacy settings).
• Try increasing Microphone Gain — especially on Safari or if using a quiet condenser mic.
• Move the Volume Sensitivity slider left (less restrictive threshold).
• On iPhone/iPad, check that the app you're using isn't muting the microphone in Control Center.

Pitch reads about a semitone sharp for the first few seconds (Safari)

This is a known Safari 26.4+ bug when echo cancellation is turned off. Tonemap applies an automatic workaround (a "shadow" mic stream) on affected Safari versions. You should see "Applied" in the Status panel when the fix is active. If the fix fails — usually because Safari blocks the second stream — try granting mic permission once, quitting and relaunching Safari, then starting Tonemap again. Or just wait about 14 seconds and the bug will usually correct itself.

The pitch jumps around erratically

• Raise the Background Noise Reduction setting to filter out room noise.
• Switch to Relaxed mode for more smoothing.
• Increase the Onset Filter to skip brief transients at the start of each note.
• If you're in a reverberant room, use a closer or directional mic.

Tonemap detects the wrong octave

Pitch detection occasionally locks onto a harmonic rather than the fundamental — especially on low strings, bass instruments, or breathy tones. Try the following: increase Microphone Gain if the input is quiet, reduce room reverb, or play closer to the mic. On very low notes (below C2), the detection algorithm has inherent limitations.

Settings aren't saved between sessions

Tonemap stores settings in your browser's localStorage. If you're in a private/incognito window, or if your browser is set to clear site data on exit, settings will reset. Use a normal browser window for persistent settings.

The app is slow or laggy

Tonemap is CPU-intensive because it runs continuous audio analysis. Close other tabs and apps, especially anything using audio. On older iPhones or low-power devices, try reducing History length and disabling the Note View spectrum.

I see "Mic blocked" or a permissions error

Your browser or OS is blocking microphone access. On macOS: System Settings → Privacy & Security → Microphone → enable your browser. On iOS: Settings → [Browser name] → Microphone → On. On Android: Settings → Apps → [Browser] → Permissions → Microphone.

8. GitHub Project

Tonemap is open source. You can browse the code, report issues, and follow development on GitHub at github.com/crossrhythm/tonemap.live.

9. About

Tonemap was created by Jeremy Black, Principal Second Violin of the Pittsburgh Symphony Orchestra, Concertmaster of the Grant Park Symphony Orchestra, and founder of East End Violin Studio (along with his wife, Kate).

Coding done primarily in VSCode using GitHub Copilot and Claude (Anthropic). Hosted on Cloudflare with authentication and licensing through Polar.

Pitch detection is based on the McLeod Pitch Method (MPM) via Pitchy; the original paper is A Smarter Way to Find Pitch.

Quick Recorder slow-motion playback uses time-stretching via SoundTouchJS (the JavaScript port of SoundTouch, which is designed for high-quality tempo/rate changes).

Follow along

You can find updates and videos here: YouTube (@tonemap) and Facebook.

10. Contact

For questions, bug reports, or feature requests, email support@tonemap.live.

For subscription or billing issues, you can also manage your account directly at the Polar.sh account page.

Found a bug? Helpful details: your browser name and version, your OS, what you were doing when it happened, and whether it's reproducible. Screenshots or screen recordings are always appreciated.