Skip to content
Morse Code Generator

Morse Code Generator and Translator with True CW Timing

Type a message and the morse code generator keys it in dits and dahs with exact ITU spacing, then plays it as a tone, flashes it on screen or saves a WAV. Paste Morse instead and it reads it back to text, prosigns included.

Morse Code Generator

0 / 50,000
0 / 250,000

Speed and tone

20 WPM
20 WPM
600 Hz
80%
Dot
60 ms
Dash
180 ms
Letter gap
180 ms
Word gap
420 ms
Total
0 s

Accented letters

Extended codes are common but not part of the ITU standard; É (..-..) is the only accented letter in ITU. Typed CH stays C + H; the extended CH code (----) is decoded only in Extended mode.

Practice key: tap your own Morse

Morse code chart (tap a sign to hear it)

Letters (ITU)

Figures

Punctuation (ITU)

× is sent as X. ITU has no %: 2% is sent 2-0/0, and 1 3/4 is sent 1-3/4.

Not in ITU (common extensions)

Prosigns (sent as one character, no letter gaps)

AR = +, BT = =, KN = (, AS = & share a code; the decoder shows the sign.

A good morse code generator should sound like a well-adjusted keyer, not like a beeping toy: dits and dahs in a clean 1 to 3 ratio, a one-unit gap inside each letter, three units between letters and seven between words. That spacing is what lets a trained ear copy the code, and it is the part most online translators get wrong. Type plain text and you get Morse with one space between letters and a slash between words; paste Morse and you get text back.

Everything runs in your browser. Your message is never uploaded, and a share link keeps the message and your settings in the part of the address after the #, which browsers do not send to any server.

Getting a clean signal out of the Morse code generator

  1. Type or paste. Letters, figures and ITU punctuation encode directly. If you paste dots and dashes into the text box, the generator recognises them as Morse and decodes instead of encoding the dots as full stops.
  2. Set the character speed. This is how fast each letter is keyed, in words per minute. For learning I keep it at 18–20 WPM so every letter has the rhythm it will have on the air.
  3. Slow the gaps, not the letters. Set the effective speed lower than the character speed and the generator stretches only the silences (Farnsworth spacing). A live readout shows the dot, dash, letter-gap and word-gap lengths in milliseconds and the total running time.
  4. Pick a pitch and volume. Pitch runs from 300 to 1200 Hz and starts at 600, which is easy on the ears for long sessions. Every element gets a 5 ms soft rise and fall, so the tone does not click, in the live sound and in the WAV.
  5. Choose the output. Sound, Light and Vibrate are three switches you can combine: a bright lamp you can take full-screen, and vibration on phones that support it. A paper tape drawn to scale highlights the letter and element being played, Pause really pauses, and Repeat loops after a word gap. Save a WAV of up to ten minutes for a video, an escape-room clue or a gift.
  6. Choose how accents are sent. Extended (the default) has codes for Ä, Ö, Ü, Ñ, Ç, È, À and ß; ITU strict spells them out. More on that under the chart.
  7. Practise sending. The practice key works like a straight key: press it with a finger or the mouse, or focus it and hold the space bar. A press shorter than two units is a dit, a longer one a dah; two units of silence end the letter and five end the word, all measured at your character speed. It shows the dits and dahs and the letters you actually keyed, and one button sends them to the Text box.

Morse code alphabet chart

These are the codes from Recommendation ITU-R M.1677-1, the international standard. Short letters belong to frequent letters: E is a single dit, T a single dah. Every figure is exactly five elements, which makes numbers the easiest group to learn. The chart inside the tool holds 73 signs: letters, figures, ITU punctuation, the non-ITU extras and the prosigns. Tap a sign to hear it, or print the chart on its own.

International Morse code letters (ITU)
LetterCodeLetterCode
A.-N-.
B-...O---
C-.-.P.--.
D-..Q--.-
E.R.-.
F..-.S...
G--.T-
H....U..-
I..V...-
J.---W.--
K-.-X-..-
L.-..Y-.--
M--Z--..
Figures and ITU punctuation
FigureCodeSignCode
0-----..-.-.-
1.----,--..--
2..---:---...
3...--?..--..
4....-'.----.
5.....--....-
6-..../-..-.
7--...(-.--.
8---..)-.--.-
9----.".-..-.
=-...-
+.-.-.
@.--.-.
×-..-

The only accented letter ITU defines is É ..-... Common extensions, which many operators use but the standard does not include: Ä .-.- · Ö ---. · Ü ..-- · Ñ --.-- · Ç -.-.. · È .-..- · À .--.- · ß ...--.. · CH ----. Non-ITU signs: ! -.-.-- · & .-... · ; -.-.-. · $ ...-..- · _ ..--.-. A receiving station may not know them, so in ITU-strict mode the generator spells Ä, Ö and Ü as AE, OE and UE and ß as SS, and sends other accented letters as the plain letter. In extended mode it sends the codes listed above. A typed CH is still sent as C and H; the code ---- is read as CH only when decoding in extended mode.

Timing: units, PARIS and what 20 WPM means

All Morse timing is counted in one unit, the length of a dit. A dah is 3 units, the gap between elements of one letter is 1, between letters 3 and between words 7. Speed is measured with the word PARIS: its dits, dahs and gaps, plus one word gap, add up to exactly 50 units (PARIS timing explained). Twenty words a minute means 1,000 units a minute, so one unit lasts 60 ms.

dot length (ms) = 1200 ÷ WPM
Dot length by speed
SpeedDot (1 unit)Dah (3 units)Word gap (7 units)
5 WPM240 ms720 ms1680 ms
10 WPM120 ms360 ms840 ms
13 WPM92.3 ms276.9 ms646.2 ms
15 WPM80 ms240 ms560 ms
20 WPM60 ms180 ms420 ms
25 WPM48 ms144 ms336 ms
SOS drawn on a unit grid: as three letters it takes 27 units, as one prosign 23 units
The same dits and dahs, two spacings: SOS as letters and as a prosign.

Plain text runs close to PARIS. Random five-letter code groups, the kind used in exams and contest practice, are heavier on long letters, so some trainers time them with CODEX, a 60-unit word (Morse code overview). If two tools disagree slightly about the speed of the same group, that is usually why.

Farnsworth spacing: fast letters, slow gaps

A beginner who learns letters at 5 WPM learns to count dots. At 20 WPM counting is impossible and you have to hear each letter as one sound, which is the skill you actually need. Farnsworth spacing keeps the letters at the character speed c and stretches the gaps until the overall speed drops to s. The formula is from the ARRL standard for Farnsworth timing:

ta = (60c − 37.2s) ÷ (c·s) seconds  ·  letter gap = 3ta ÷ 19  ·  word gap = 7ta ÷ 19

At c = 18 and s = 5: ta = (1080 − 186) ÷ 90 = 9.933 s per PARIS word, so the letter gap is 1568.4 ms and the word gap 3659.6 ms, while the dot stays at 66.7 ms. At c = 20 and s = 10 the letter gap is 653.7 ms and the word gap 1525.3 ms. In both cases PARIS plus its word gap lasts exactly 60 ÷ s seconds: 12.0 s and 6.0 s.

The word PARIS at standard 20 WPM lasting 3 seconds and at Farnsworth 20 over 10 WPM lasting 6 seconds with the same element lengths
Farnsworth only lengthens the silences; the letters keep their full-speed sound.

My advice: start with character speed 18–20 and an effective speed you can copy without stress, then raise the effective speed one step at a time. Never lower the character speed to make things easier. The guide to learning Morse by sound sets out a daily plan with the Koch method.

Worked examples, unit by unit

SOS

As three letters: ... --- .... Elements 3 + 9 + 3 = 15 units, element gaps 2 + 2 + 2 = 6, two letter gaps = 6, total 27 units, or 1.62 s at 20 WPM. On the air, SOS is a prosign keyed as one character, ...---...: the two letter gaps shrink to one unit each, so it is 23 units, 1.38 s at 20 WPM. For a light signal I would drop to 5 WPM: a 240 ms dot, and the prosign takes 23 × 0.24 = 5.52 s. Repeat it with a word gap between each one.

I love you

.. / .-.. --- ...- . / -.-- --- ..-. Elements and the gaps inside letters add up to 64 units, five letter gaps add 15, two word gaps add 14: 93 units. That is 5.58 s at 20 WPM and 22.32 s at 5 WPM.

Café and Müller

Café is -.-. .- ..-. ..-.., because É is in the ITU table. Müller has no ITU Ü, so strict mode sends MUELLER: -- ..- . .-.. .-.. . .-., 59 units, 3.54 s at 20 WPM. In extended mode the Ü becomes ..-- and the word shrinks to -- ..-- .-.. .-.. . .-..

Hello World with Farnsworth

.... . .-.. .-.. --- / .-- --- .-. .-.. -.. is 111 units, 6.66 s at a plain 20 WPM. At character 20 / effective 10 it splits into 80 units of elements and in-letter gaps at 60 ms (4.80 s), 8 letter gaps of 653.7 ms (5.23 s) and one word gap of 1525.3 ms: 11.55 s in total.

2%

There is no percent sign in Morse. ITU says to send the fraction 0/0 joined to the number by a hyphen, so 2% is 2-0/0: ..--- -....- ----- -..-. -----. Writing it as 20/0 is a common mistake that the receiver reads as twenty over zero. When you type %, the generator lists it as not in Morse and offers the ITU spelling. Fractions and other signs are covered in the guide to numbers and punctuation.

Prosigns you will meet

A prosign is two letters keyed as one character, with no letter gap. Type it in angle brackets, such as <SK>, and the generator joins the letters.

ProsignCodeMeaning
<SOS>...---...distress, sent as one character
<AR>.-.-.end of message (same code as +)
<SK>...-.-end of contact / ITU end of work
<BT>-...-break / new paragraph (same code as =)
<KN>-.--.go ahead, named station only (same code as ( )
<AS>.-...wait (ITU wait; same code as &)
<KA>-.-.-ITU starting signal
<SN>...-.ITU understood (also written VE)
<HH>........ITU error, eight dots
K-.-ITU invitation to transmit

Several prosigns share a code with punctuation: AR is the same as +, BT as =, KN as (, AS as &. When decoding, the generator shows the punctuation sign for these and the prosign only for codes that have no other meaning, such as ...---... or the eight-dot error ......... The guide to SOS and prosigns explains each one and how to signal SOS with a torch or a whistle.

Morse by light or sound is a backup. In a real emergency, call your local emergency number or use a marine or aviation distress radio first.

Reading Morse back to text

What sits under the key

The engine turns your text into one list of timed events, tone on or off with a duration in units, and that same list drives the sound, the flash, the vibration, the highlight and the WAV file. One list for every output means a word gap is always 7 units, never 7 in the sound and 9 in the file, and a line break plays as a word gap. The unit is 1200 ÷ character WPM ms. Pause follows the audio clock, so a paused message stays paused however long you wait. When the effective speed is lower, the letter and word gaps come from the ARRL Farnsworth formula above. No gap is added after the last element, so durations are from the start of the first dit to the end of the last one. Codes and spellings follow ITU-R M.1677-1; extended letters and signs follow the common tables and are marked non-ITU. WAV export stays under ten minutes. The paper tape draws up to 1,500 characters and says so when it stops early; sound, light and WAV always play the whole message. A share link holds at most 2,000 characters.

These control cases are worked out by hand and checked again in Python. The tool's test page must reproduce them before a change goes live:

Control cases
InputExpected
Text SOS, 20 WPM... --- ..., 27 units, 1.62 s
Text Hello World, 20 WPM.... . .-.. .-.. --- / .-- --- .-. .-.. -.., 111 units, 6.66 s
Text A B, 20 WPM.- / -..., 21 units, 1.26 s (word gap 420 ms)
Text <SOS>, 13 WPM...---..., 23 units, 2.12 s (dot 92.3 ms)
Decode •−, ._, .... .. - .... . .-. ., ...---..., ...-.-A, A, HI THERE, <SOS>, <SK>
Café; Müller strict / extended-.-. .- ..-. ..-..; -- ..- . .-.. .-.. . .-. (3.54 s) / -- ..-- .-.. .-.. . .-.
Farnsworth c 18, s 5dot 66.7 ms, letter gap 1568.4 ms, word gap 3659.6 ms, PARIS 12.0 s
Farnsworth c 20, s 10dot 60 ms, letter gap 653.7 ms, word gap 1525.3 ms, PARIS 6.0 s; Hello World 11.55 s
PARIS plus its word gap, 20 WPM50 units, 3.000 s
Text 2% after the ITU spelling button2-0/0, ..--- -....- ----- -..-. -----

FAQ

How do you write SOS in Morse code?

SOS is ... --- ..., and on the air it is sent as one prosign, ...---..., with no gaps between the letters. At 20 WPM it takes 1.38 s; repeat it with a word gap between each one.

How long is a dot at 20 WPM?

One dot is 1200 ÷ 20 = 60 ms. A dah is 180 ms, the letter gap 180 ms and the word gap 420 ms.

What is Farnsworth timing?

The letters are keyed at a fast character speed and only the gaps between letters and words are stretched to give a lower overall speed. At character 18 and effective 5 WPM the letter gap is about 1.57 s and the word gap about 3.66 s.

Is there Morse code for ä, ö, ü or ñ?

Not in the ITU standard, which has only é (..-..). Common extensions are Ä .-.-, Ö ---., Ü ..-- and Ñ --.--; for a station that may not know them, write AE, OE, UE and N.

How do I signal SOS with a flashlight?

Flash a short pulse for each dit and a pulse three times as long for each dah, with a one-unit dark gap between them, so the nine elements run together (...---...). About 240 ms per dot (5 WPM) is easy to read at a distance. Call your local emergency number first if you can.

How long does it take to learn Morse code?

It depends mostly on how regularly you practise. Short daily sessions by sound, with Koch's method and Farnsworth spacing, work far better than occasional long ones or memorising a chart.

Guides

About this site