Morse code translator for text and audio
Type plain text (or paste dots and dashes) and get International Morse the other way — live as you type. Play CW tones, tweak WPM and pitch, copy either side. Encode and decode share this console.
When to use
Checking a message before you send it as sound or light; decoding a puzzle string; hearing how a callsign or short phrase sounds at a chosen WPM; confirming a paste of dots and dashes before you share it.
Better elsewhere
Structured learning → trainer or listen. Photo OCR is unsupported. Life-safety radio procedure courses live elsewhere.
Assumptions
International Morse for Latin letters, digits, and common punctuation. Chinese characters use standard Chinese Telegraph Code (汉字 → 4-digit CTC → Morse digits), same scheme as traditional Chinese CW traffic — not pinyin. Word gap shown as `/` by default; letter gap as space. Pretty Unicode dits/dahs are normalized. Audio uses Web Audio after your first click (browsers block autoplay).
Examples
Input
Text: SOS
Result
Morse: ... --- ...
Continuous prosign-style SOS practice also lives on the SOS page.
Input
Text: 中国
Result
CTC 0022 0948 → eight digit Morse groups
中 = 0022 · 国 = 0948. Play works the same as Latin.
Input
Morse: .... . .-.. .-.. --- / .-- --- .-. .-.. -..
Result
Text: HELLO WORLD
Slash separates words; spaces separate letters.
Input
Play at 20 WPM · 600 Hz
Result
Hear the sequence; Stop cuts tones mid-schedule
How it works
- Encode maps each character to a dit/dah pattern; unknown characters are skipped with a status note.
- Decode splits on spaces and / (or |); unknown tokens become ? with a clear skip list.
- Playback builds a PARIS-based timing table, then schedules Web Audio oscillators after you click Play.
- Flash / vibrate (optional) follow the same on/off schedule; Stop closes audio immediately.
dit ms ≈ 1200 / WPM · dah = 3×dit · letter gap ≈ 3 dit · word gap = / (7 dit timing)
Gotchas
- American Railroad Morse is not this chart — if an old book disagrees, you’re probably on the wrong alphabet.
- Pretty Unicode dots `·—` and ASCII `.-` both work; mixed junk spaces still break decode.
- Autoplay: hit Play once to unlock audio; silent failure is usually a browser gesture rule, not a broken tone.
- Huge pastes are fine locally, but keep Challenge share URLs short if you plan to share Morse elsewhere.
Compare
What you can do on this page
Encode plain text into International Morse, decode dots and dashes back to letters, play the sequence as CW-style tones, adjust WPM and pitch, copy either pane, and optionally flash or vibrate the pattern. Swap panes when you want Morse on the left. Sample and Clear reset the console without leaving the page.
Encode and decode share this console — one bidirectional tool for “decoder,” “converter,” and “text to Morse” jobs.
Input tips
- Prefer ASCII .- for long pastes; pretty ·— also works after normalization.
- Word breaks: use / (or multiple spaces). Letter breaks: single spaces.
- Unknown characters are skipped with a status note — check the status line under the console.
- Browsers block autoplay: click Play once after the page loads to start Web Audio.
Where to go next
Tone-first controls: audio translator. Learning: trainer and listening practice. Light: flashlight. Chart: alphabet. SOS rhythm: SOS.
Common questions
Short answers from real friction points.
Related tools
Practice tool only. See Methodology and Terms.