In 1844 Morse tapped "What hath God wrought" over 40 miles of wire. The device didn't transmit letters. It transmitted time: how long the circuit stayed closed, and how long it stayed open.
Vail is credited with shaping the code itself, reportedly counting movable type in a printer's tray to give commonest English letters shortest signals. E is one dit; Q is four elements. That frequency-weighting is a Huffman code built by hand, a century before Huffman formalized it in 1952.
| Element | Symbol | Length | Meaning |
|---|---|---|---|
| Dit | · | 1 unit ON | short mark |
| Dah | — | 3 units ON | long mark |
| Element gap | 1 unit OFF | within letter | |
| Letter gap | / | 3 units OFF | between letters |
| Word gap | // | 7 units OFF | between words |
Every signal on this page built from exactly these five durations. Change the "unit" and you change speed — nothing else.
It isn't an abbreviation. Chosen in 1906 because ···---··· keyed as one unbroken nine-element string is impossible to mistake through heavy static. Rhythm was whole point.
SOS is actually one prosign: SOS with no letter gaps — 9 elements: 3 dits, 3 dahs, 3 dits as one fused character.
Every glyph clickable — tap to hear actual keyed signal at current lab settings. Dits amber, dahs teal by color.
Procedural signals sent as one character — overbar shows fusion.
| Prosign | Code | Means |
|---|
| Signal | Meaning |
|---|---|
| CQ | Calling any station |
| DE | "from" (this is ...) |
| K | Over |
| R | Received |
| 73 | Best regards |
| 88 | Love and kisses |
| QTH/QRM/QRN | Location / interference / static |
| SK | End of contact |
Because every duration is multiple of single "unit," Morse transmission has exactly one free parameter: length of one dit. Fix that, and dahs, gaps all follow. Standard way to name parameter is words per minute.
"WPM" needs reference word, because words differ. Convention is word PARIS followed by one word space — exactly 50 units.
If you send \(W\) words per minute, you emit \(50W\) units per minute. One unit therefore lasts:
Learners hear fast characters but need thinking time between them. Farnsworth keeps each character at brisk speed \(c\) but stretches gaps so overall rate is slower \(s\).
Of PARIS's 50 units, 31 belong to characters and 19 are spacing. Send 31 at speed \(c\), then pad 19 until whole word fits budget for speed \(s\):
This is why 5-WPM practice can still contain crisp 18-WPM letters — only silence dilated.
Type in either field; other updates live. Morse field accepts dots/dashes or Unicode · —; letters separated by spaces, words by /.
Proper Morse shaping: raised-cosine edges (≈5 ms) to kill key clicks. Watch envelope and listen.
Envelope shows ON time. Playhead is amber. Edge shaping removes click sidebands — see next section for spectrum.
Hold short = ·, long = —. Gap timing decodes automatically. This is how straight key feels.
Koch method: start with 2 letters at full speed, add one when 90% copy. Never count dots.
Koch order used: K M R S U A P T L O W I N J E F Y V G Q Z H B C D X — maximizes early distinction.
Morse is narrow. Voice SSB needs ~2700 Hz. CW at 25 WPM needs ~40 Hz. That's why QRP 5W Morse goes worldwide when voice doesn't.
A string of dits at \(W\) WPM has fundamental keying frequency (one dit + one gap = 2 units):
Estimate using keying factor \(K\) (≈3 soft edges, ≈5 hard):
Drag tr to 0 for rectangular key: watch sidelobes fill band. Increase it and skirts collapse.
Vail's frequency weighting was intuition that Shannon made exact: minimize average transmission time, assign shortest signals to most frequent symbols.
—
Let \(p_i\) frequency and \(\ell_i\) cost in time-units (dits=1, dahs=3, plus intra gaps). Expected units per letter:
Shannon entropy — theoretical floor:
Bridge to binary: fixed-length codes like ASCII throw away frequency weighting to gain machine-friendly clock. Morse optimizes for human ear; binary optimizes for crystal oscillator.
Don't memorize dots. Memorize sound shapes. Di-dah for A, dah-di-di-dit for B. At 18 WPM you stop counting and start hearing words.
Start K and M (far apart). Add one at 90% copy. Order: K M R S U A P T L O W I . N J E F 0 Y V G 5 / Q 9 Z H 3 8 B ? 4 2 7 C 1 D 6 X
Char speed 18-20 WPM always. Effective 10 WPM by stretching gaps. Shrink gaps as you improve.
If you write · — and translate, you'll never exceed 10 WPM. Train ear to hand.
| MISTAKE | FIX |
|---|---|
| Counting dits | Raise char speed to 18+ |
| Visual table | Audio only trainer |
| 5 WPM start | Start 18/10 Farnsworth |
| Stuck on one letter | Drill minimal pairs: S/H (... vs ....), D/B (-.. vs -...) |
Koch progress: 2 letters = 18% English text coverage. 10 letters = 70% coverage. Full alphabet = 100% but numbers/punct add extra.
Most active mode. 14.020-14.070 MHz wall-to-wall Morse at 20-30 WPM. QRP 5W + wire = worldwide because 200 Hz BW beats SSB 2700 Hz by ~11 dB.
BW≈WPM×1.2 HzVOR, NDB, ILS IDs still send Morse: SFO = ... ..-. ---. No computer needed — AM detector + ear. Ultimate backup.
FailsafeSip-and-puff, single switch, eye blink → Morse → text. Used for ALS. 2 switches faster: one dit, one dah.
AccessibilityMirror flashes, flashlight, tapping pipes. SOS mirror seen 10+ miles. International distress as one prosign.
Hidden in music, movies, CTFs. Steganography: hide in image LSB as morse audio envelope.
Brain-computer interfaces test Morse as output: 2 mental states → dit/dah. Slow but 2 bits/sec with 95% accuracy.
Everything on this page reduces to arrays and timing — exactly Octave's home turf. Snippets run in Octave 7+ (most also MATLAB). Cover encoding, audio synthesis with proper envelope, spectral analysis, decoding, Farnsworth, information theory, practice file generation. Copy any block. Leading 1; marks file as script so inline functions allowed.
| CONCEPT | VALUE |
|---|---|
| Dit at 20 WPM | 60 ms |
| PARIS at 20 WPM | 3.0 s |
| Chars/min | ≈5×WPM (PARIS) |
| Bits/sec | ≈0.6×WPM |
| Entropy letters | ~4.14 bits |
| Entropy English | ~1.1 bits with context |
| Morse avg | ~__LBAR__ units |
| SNR gain vs SSB at 25WPM | ~14 dB |
Sources: ITU-R M.1677-1, Shannon 1948 & 1951, ARRL Handbook, Koch 1936, ITU-T G.709.