KeyMistry KeyMistry

Learn Piano Smarter with Real‑Time MIDI Visualization

Connect your keyboard, follow falling notes, and get instant feedback. Practice with note‑wait, hand isolation, tempo & loop control, and progress tracking - right in your browser.

No installation required • Works with Web MIDI on desktop
App screenshot
KeyMistry icon

How it works

Four simple steps to your first song.

🎹

Connect your MIDI keyboard

Use any USB‑MIDI or Bluetooth‑MIDI device (desktop browsers).

📁

Choose or upload a song

Load any .mid file. Your last song auto‑loads next time.

🎼

Follow falling notes

Keys highlight as you play for instant feedback.

📈

Track your progress

See accuracy, timing, and missed notes after each run.

Practice features that accelerate learning

⏸️

Note‑Wait Mode

Playback pauses before the next notes until you play them.

🔁

Transpose to Any Key

Instantly transpose songs to your desired scale and key. Use auto‑detect to suggest a key, then fine‑tune with the Transpose & Key controls.

👐

Hand Isolation

Practice left, right, or both hands with personalized parts.

🎚️

Tempo & Loop Control

Slow down, loop tricky sections, and build muscle memory.

🔌

MIDI In/Out

Use any MIDI keyboard and optionally send notes to external gear.

📊

Progress Feedback

See accuracy and timing to focus your practice.

🎹

Enhanced Visuals

Clean piano roll with glowing keys and crisp hit line.

Frequently Asked Questions

Quick answers and tips to common issues.

Why are different hands not coloured differently, and why are there more than 2 colours?

Colouring depends on the MIDI data and app settings. Many MIDI files don’t separate left/right hands; they use a single track/channel or overlap ranges. In those cases, we colour by part/track and pitch ranges, which can result in more than two colours.

  • If your MIDI has multiple tracks, each track may get its own accent colour.
  • Transposition and key detection don’t change hand colours; they only shift pitches.
Why isn’t audio being played?

Browsers block audio until you interact with the page. Also, audio can be disabled by system or device settings.

  • Click Play or press a control to unlock audio.
  • Check system volume and output device; ensure no Bluetooth/HDMI device is muted.
  • Make sure you’re on a desktop browser with HTTPS; mobile is blocked in this app.
  • In MIDI Settings, use Test Note to verify sound.
Why isn’t my keyboard detected even though it’s plugged in?

Web MIDI support varies by browser/OS and requires permission.

  • Use a supported desktop browser (Chrome/Edge) over HTTPS and allow the MIDI permission prompt.
  • Unplug/replug the device and click Refresh in MIDI Settings.
  • Close DAWs or apps that might be locking the MIDI device.
  • On Linux, ensure ALSA/MIDI access is available; on macOS/Windows, check system drivers.
  • For Bluetooth‑MIDI, pair the device in OS settings first.
Why is the sound so laggy?

JavaScript runs primarily on a single main thread; audio timing can be sensitive to single‑core performance. On lower single‑core CPUs or when the browser tab is busy, you may hear latency.

  • Close heavy background tabs/apps; prefer a performant desktop browser.
  • Reduce visual effects and animations; keep the app tab focused.
  • Use wired audio output when possible; Bluetooth can add extra latency.

Ready to Play Your First Song?

Open the app, load a MIDI, and start learning with real‑time visual guidance.