Convert text to Morse code and Morse code back to text using the full ITU-R M.1677-1 character table — letters, digits, and punctuation — then listen to it: the built-in keyer plays your message as a sine tone at 5–30 WPM with correct PARIS timing and a flashing indicator. The decoder is tolerant of dot and dash variants, extra spaces, and the usual word separators, and anything it cannot translate is reported rather than silently dropped. All of it runs in your browser. For other character-level conversions see ROT13 & Caesar Cipher, XOR Cipher, or Base64 Encode / Decode. Morse is an encoding, not a cipher — it hides nothing. If you need to keep something secret, use AES Encrypt / Decrypt.
Morse Code Translator
Translate text to Morse code and back, with audio playback and PARIS timing
Result will appear here…Enter a message to hear it keyed as a sine tone.
Frequently asked questions
Which Morse code table does this use?
Recommendation ITU-R M.1677-1 (10/2009), "International Morse code", Annex 1, Part I, section 1.1 — letters in 1.1.1 (including accented é), figures in 1.1.2, and punctuation marks and miscellaneous signs in 1.1.3 (full stop, comma, colon, question mark, apostrophe, hyphen, fraction bar, both brackets, inverted commas, double hyphen =, cross +, multiplication sign ×, and commercial at @). Five characters people commonly expect — ! & ; _ and $ — do not appear anywhere in that Recommendation; they are widely used de-facto amateur/software codes and are included here as extensions. Note that & is sent as .-... which is also the ITU "Wait" signal.
Why is SOS written ...---... with no gaps?
SOS is a distress prosign: it is keyed as one continuous character with no inter-letter gaps, not as the three letters S, O, S. This tool encodes the text "SOS" the normal way, as "... --- ..." with letter gaps, because that is what the character table says. The decoder accepts both — paste "...---..." with no spaces and you still get SOS back, along with a few other well-known run-together prosigns such as the eight-dot error signal, SK (end of work), KA (starting signal), and SN (understood).
How is the audio speed calculated?
By the PARIS standard: one dit lasts 1200 / WPM milliseconds, so 15 WPM gives an 80 ms dit. The gaps follow ITU-R M.1677-1 section 2: a dash is three dots (2.1), the space between signals in the same letter is one dot (2.2), between two letters three dots (2.3), and between two words seven dots (2.4). The tone is a plain sine wave generated by your browser's Web Audio API — nothing is downloaded or streamed, and the audio context is only created when you press Play, because browsers block audio that starts on its own.
What happens to characters that have no Morse code?
They are never silently dropped. When encoding, an unsupported character (an emoji, a Cyrillic letter, a tilde) is skipped and listed under Warnings so you can see exactly what was left out. When decoding, a sequence of dots and dashes that is not in the table becomes the replacement character � and is also reported in Warnings. The decoder is deliberately forgiving about input style: it accepts · • _ — as dot and dash variants, any number of spaces, newlines, and /, |, or three spaces as a word separator.
Get weekly dev tools and tips