Mallet Sight Reader
Read it. Play it. Own it.
Import your parts, verify the notation, and practice sight-reading on marimba, vibes, xylophone, and bells. Your library and progress are saved to your account.
{{ authTitle }}
{{ authSub }}
Your name
Email
Password
{{ authErr }}
{{ authCta }}
{{ authSwitchText }} {{ authSwitchCta }}
Prototype sign-in (saved on this device). Production will use secure accounts on your server.
Mallet Sight Reader
Library
Live MIDI
Gym
Drills
4-day streak
Sign out
{{ userInitial }}
Welcome back, {{ userName }}
You read 142 measures this week — your sight-reading streak is alive. Pick up where you left off.
Continue practicing
Allegro Etude No. 4
Marimba · G Major · 8 bars · Last best 88%
62% of the part rehearsed
Live MIDI · 4-mallet practice
Plug in your MalletStation and read block chords on a grand staff — notes light up as you play.
Open →
Your library
{{ f.name }}
{{ p.instrument }}
{{ p.title }}
VERIFIED ✓ DRAFT
{{ p.source }}
{{ p.key }} {{ p.bars }} {{ p.dots }}
Best {{ p.best }}
+
Import a part
Drop a MIDI or MusicXML file you transcribed
Import a part
Drop a PDF, MusicXML, or MIDI file here
MusicXML (.musicxml/.xml) imports instantly · PDF & images are recognized by OMR, then you verify
Try the sample
{{ importMsg }}
MIDI files don't always carry a key signature. If yours doesn't, we'll bring you here to set it by hand — sharps and flats stay correct on the staff either way.
Recognizing notation…
Running OMR on the page (Audiveris on your server). This returns the notes, per-note confidence, and where each note sits on the page.
LWMB 2026 – Vibraphone 1.pdf
PDF · recognized 91% mean confidence
Part
Vibraphone 1 · Yagisawa
Detected
Treble · 4/4 · ♩=80
5
notes flagged for review (low confidence or rhythm). Open the editor to verify against the source — usually a couple of minutes.
Verify & correct →
Import another
allegro_etude_4.mid
MIDI 7 KB · 1 track
We detected this part
Key
{{ detectedKey }}
Time
4/4
Tempo
♩ = 96
Length
8 bars · range G3–E5
{{ keyStatusTitle }}
{{ keyStatusBody }}
{{ keyToggleLabel }}
Play it on
{{ ic.name }}
Start practicing →
Import another
Sight-Reading Drill
Level {{ drillLevel }}
♩ = {{ drillTempo }}
Best Lv {{ drillBest }}
{{ drillHeadline }}
{{ drillSub }}
—%
Start drill
New phrase
{{ drillNextLabel }}
Retry level