About Morse Tutor
Morse Tutor teaches International Morse code by keying and by ear: 52 items in 6 levels, from first dits and dahs to full phrases, plus prosigns SOS, AR and SK. Key an item yourself, or listen to its beeps and type what you hear. Every element and every gap is checked against standard Morse timing, and each mistake gets one named hint right away.
How it works
- Key it: press and hold the key pad or the spacebar. A short press is a dit, a longer press is a dah. The app scores each element the moment you release it, and scores each gap the moment you start the next element. After a word gap of silence (seven units plus a little), the attempt is checked automatically, or press Check my keying at any time.
- Copy it: press Play the beeps and type what you hear. Each character is scored, and every miss shows the correct code for that character.
- Sound mode: the microphone listens for short and long sounds in an AudioWorklet on the audio thread. It measures loudness block by block and reports when a sound starts and ends. There is no AI model: just arithmetic on loudness.
- Speed: 5 to 30 WPM, using the PARIS standard of 50 units per word, so one unit lasts 1200 divided by your WPM in milliseconds. At 12 WPM a dit is 100 ms and a dah is 300 ms.
- Passing: the decoded text must match the item exactly, with no too-short or too-long element. A perfect key also needs every gap right. Passing any item in a level unlocks the next level.
- Quiz mode picks 5 items from levels you have unlocked, hides the code chart, and scores each one from memory.
The timing rules
- Dit: 1 unit. A press from 0.5 units up to (but not including) 2.0 units counts as a dit.
- Dah: 3 units. A press from 2.0 units up to 4.0 units counts as a dah.
- Too short: under 0.5 units. Too short to count as anything, and always rejected.
- Too long: over 4.0 units. Always rejected, even if you meant a dah.
- Gap inside a letter: 1 unit. A silence under 2.0 units stays inside the letter.
- Gap between letters: 3 units. A silence from 2.0 units up to (but not including) 5.0 units ends a letter.
- Gap between words: 7 units. A silence of 5.0 units or more ends a word.
- The gap boundaries are the midpoints between the standard gaps (2.0 between 1 and 3, 5.0 between 3 and 7), so a gap is always read as the nearest standard gap.
The hints
- "That was a dit, you needed a dah": hold it about three times longer.
- "That was a dah, you needed a dit": keep it short, one unit only.
- "That dah was too short, hold it longer": a dah lasts three units, and your press fell short of a dah.
- "That press was too short to count as a dit": hold it a fraction longer.
- "That dah was far too long" / "That dit was far too long": over four units, past even a generous dah.
- "Gap too long, that split one letter into two": you left a letter gap (or more) inside a letter.
- "Gap too short, two letters ran together": you left only an intra-letter gap between letters.
- "Gap too long, that split the word": you left a word gap between letters of one word.
- "Gap too short, two words ran together": you left only a letter gap (or less) between words.
Wrong answers always show the named hint, never just a score.
The levels
- Level 1, first dits and dahs: E, T, I, M, S, O, A, N.
- Level 2, mixed letters: D, U, R, K, W, G, B, H.
- Level 3, the rest of the alphabet: C, F, J, L, P, Q, V, X, Y, Z.
- Level 4, digits: 0 through 9.
- Level 5, prosigns and words: SOS, AR, SK, HI, CQ, CAT, DOG, SUN, RUN, BOOK.
- Level 6, phrases: HELLO WORLD, GOOD MORNING, SEE YOU SOON, THANK YOU, GOOD NIGHT, HOW ARE YOU.
Resources: learn from the amateur radio community
For real instruction, learn from the amateur radio community: a local club, an experienced operator (an Elmer), or a class. A teacher hears things a timing score cannot: your fist, your spacing, and your rhythm on the air.
These links open other websites in a new tab. Morse Tutor isn't affiliated with any of them and sends them nothing.
Privacy
- Your audio never leaves your device. The sound detector measures loudness block by block and discards each block. Only the times of your presses are kept, for the current attempt.
- No accounts, ads, cookies, analytics or trackers. The app loads nothing from other websites, and a security policy blocks connections anywhere else.
- Stored on your device only: items passed, points, badges, practice days, settings, in your browser's local storage. Delete it with Offline proof β Delete all my data, Settings β Clear progress, or your browser's site settings.
- The microphone is only on on a practice screen in Sound mode. Tap mode never uses it.
- Hosting: like any website, the server that delivers the app's files may keep standard technical logs of those downloads. The app itself sends nothing. Full privacy page
Disclaimer
- This is a home practice tool, not a teacher, therapist or safety device. Everything runs on your device: no video, audio or images are sent anywhere. Feedback is automatic and can be wrong. For real instruction, learn from the amateur radio community, linked on the Resources page.
- Sound detection can miss soft sounds, count loud room noises, and be thrown by device latency. Timing scores are a practice aid, not a measure of operating skill, and this app does not teach radio operation or licensing.
- Keep the volume comfortable, especially with headphones.
- The app is provided βas isβ, without warranty of any kind.
Accessibility
- Everything works with a keyboard: hold the spacebar for a dit or a dah during a keying lesson. Each hint is announced to screen readers, and the code for each item is also written out as dots and dashes.
- Animations follow your device's "reduce motion" setting, and chimes and confetti can be turned off in Settings.
Credits
- Beeps, sound detection, scoring and all items: original code and content written for this app (no third-party libraries).
- International Morse code and its prosigns are the ITU standard, summarised here from common practice.
- Built with the on-device coach pattern from the Little Hands and Rhythm Tutor apps.
Morse Tutor version 1.0.0