Morse Code Translator

Free & private · Powered by @gykh/morse

Type text to get Morse code, or type Morse to get text. Press Play to hear it and watch the light flash in sync, slow it down with Farnsworth spacing, or download it as a WAV. Everything runs in your browser; nothing is uploaded.

Translate

Edit either box. Letters are split by a space and words by /. Wrap letters in <> for a prosign, like <SOS>.

Sound & light

 
 

Set the volume to 0 to learn by light only. Farnsworth below the speed keeps letters fast but widens the gaps.

Morse code alphabetClick a letter to hear it

More free tools

How Morse code works

Morse code spells each character with short and long signals: dots and dashes. The most common letters get the shortest codes, so E is a single dot and T a single dash. Everything is timed in units, where one unit is the length of a dot:

ElementLength
Dot1 unit on
Dash3 units on
Gap inside a letter1 unit off
Gap between letters3 units off
Gap between words7 units off

Speed is counted in words per minute using the word PARIS, which is exactly 50 units long. At 20 WPM a unit is 1200 / 20 = 60 ms.

How to read Morse code

  1. Split the words at each / (or a long pause when listening).
  2. Split the letters at each space (a 3-unit pause).
  3. Look up each code in the alphabet above, or paste the whole thing into the Morse box. It also accepts •, ·, – and _.

Use it in your code

Everything on this page is available as a free, MIT-licensed, zero-dependency npm package with TypeScript types and a CLI.

npm install @gykh/morse

import { encode, decode, toWav, toPattern } from "@gykh/morse";
encode("SOS");          // "... --- ..."
decode("-- --- .-. ... ."); // "MORSE"
toWav("CQ CQ", { wpm: 15 }); // a WAV Buffer
navigator.vibrate(toPattern("SOS"));

npx @gykh/morse "<SOS> help" --play

Star it on GitHub · View on npm · Watch the 50s video

Frequently asked questions

What is SOS in Morse code?

... --- ...: three dots, three dashes, three dots. It is sent as one continuous signal with no gaps between the letters, so it is really the prosign <SOS>. Type <SOS> in the text box to hear the difference.

How do I translate Morse code to text?

Type or paste the Morse into the Morse box using dots and dashes, with a space between letters and a slash between words. The text appears as you type. Dots like • and dashes like – or _ also work.

How fast is Morse code?

Speed is measured in words per minute (WPM) using the word PARIS, which is 50 units long. At 20 WPM one unit, the length of a dot, is 60 ms. Beginners often start around 5 to 15 WPM.

What are prosigns?

Procedural signals: two or more letters run together with no letter gap, like <AR> (end of message), <SK> (end of contact) and <BT> (new paragraph). Some share their code with a character, so <AR> decodes as +.

What is Farnsworth timing?

Each letter is sent at the full speed, but the gaps between letters and words are stretched to slow the overall speed. Learners hear the real rhythm of every letter instead of memorizing slow dots and dashes. Try speed 20 with Farnsworth 8.

Which characters are supported?

The full ITU set: A to Z, 0 to 9 and . , ? ' ! / ( ) & : ; = + - _ " $ @, plus accented letters such as É, Ü, Ñ, Ç, Ø and Ł. Characters with no code are sent as ?.

Is my text sent to a server?

No. Translation, sound and the light all run locally in your browser. Want to share your message with a short, tidy link? Shorten it with MiniFyn.

Can I use this Morse code translator in my own code?

Yes. Install the free, MIT-licensed npm package @gykh/morse. It supports strings, buffers, streams, WAV audio, timings and a CLI, with TypeScript types. See Use it in your code above.

Copied to clipboard!