How to use it
Tune a receiver until a Morse (CW) signal is heard as a clear tone, then bring its audio in as described under “Getting the audio in” below. Play demo signal lets you try everything without a radio.
If the text looks wrong, check that the yellow marker sits on the signal, that the Speed display is plausible, and that the dashed threshold line lies between the noise and the tops of the dots and dashes.
Decoding continues while the page is in a background tab; only the drawing pauses.
Where to find it and how to tune
Getting the audio in
There are four ways to get the signal in. Nothing is uploaded: all decoding happens in this tab.
- No radio needed — a web receiver in another tab. Open a public web-based SDR receiver in a second tab (universities and radio clubs run many of them), tune it as described below and start its audio. Here, press Use computer audio, choose that tab in the sharing dialog and switch on sharing of the tab’s audio. Keep the receiver tab playing; this page can stay in the background.
- Your own receiver or SDR program on this computer. Press Use computer audio and share the program’s window or the entire screen together with system audio, or send the program’s output to a virtual audio cable and pick that cable after pressing Use microphone.
- A radio with a speaker. Hold it near the microphone and press Use microphone. It works, but room noise hurts weak signals; a cable from the headphone socket to the line or microphone input is better.
- A recording. Load a WAV or MP3 file with Open audio file.
Receiver setup
| Setting | Value |
|---|---|
| Mode | CW, or USB/LSB tuned slightly beside the signal. |
| Filter width | 300–500 Hz keeps neighbours out; a 2.4 kHz voice filter also works, as this page has its own narrow filter. |
| Tuning | Aim for a pitch of 600–800 Hz; anything from 300 to 1500 Hz is accepted. In USB the pitch rises when you tune lower, in LSB when you tune higher. Click the trace in the waterfall. |
| AGC / note | Medium or slow. A very fast AGC makes the noise between the dots pump. |
Example frequencies
| Frequency | What | Receiver setting | When / note |
|---|---|---|---|
| 14.100 MHz | The NCDXF/IARU beacons: 18 stations take turns, each sending its call sign and four long dashes. The same chain runs on 18.110, 21.150, 24.930 and 28.200 MHz. | CW, 300–500 Hz | Round the clock; each beacon is on for 10 seconds of a 3-minute cycle. |
| 14.000–14.070 MHz | Amateur CW segment of the IARU Region 1 band plan (20 m). | CW, 500 Hz | 14.055 MHz is the centre of slow-speed activity, 14.060 MHz the low-power one. |
| 7.000–7.040 and 3.500–3.570 MHz | Amateur CW segments, 40 m and 80 m. | CW, 500 Hz | Low-power centres: 7.030 and 3.560 MHz. |
| 190–535 kHz | Aviation non-directional beacons, each sending a one- to three-letter Morse identifier. | AM or CW; the receiver must reach long wave | On continuously, on fixed frequencies. |
Segments and schedules change from time to time. Check the current IARU band plan or your national amateur radio society.
Controls
- Spectrum and waterfall: shows 200–1600 Hz. Click, tap or drag to choose the tone; the arrow keys move it by 5 Hz (50 Hz with Shift) and A returns to automatic tuning.
- Speed: Auto measures the speed from the signal and shows it. Fixed uses the slider; moving the slider switches to Fixed.
- Noise rejection: how far above the noise the threshold stays. The dashed line in the envelope chart is the threshold; the label below it says whether a signal is heard.
- Automatic tone: locks onto the strongest steady narrow peak between 300 and 1500 Hz and keeps it during pauses.
- Text: Copy, Save as .txt and Clear; auto-scroll can be switched off.
- Demo: sends your own text at 5–50 words per minute with optional noise and uneven timing.
How it works
Morse code is built from one time unit. A dot lasts one unit and a dash three. The gap inside a character is one unit, between letters three and between words seven. The standard word PARIS takes 50 units, which gives the dot length:
The audio is reduced to about 4000 samples per second. A 512-point Fourier transform, repeated about 30 times a second, draws the waterfall and finds the tone. The detector then multiplies the samples x by a cosine and a sine at the tone frequency f and averages both products over a few milliseconds. That is a quadrature mixer, and the tone’s amplitude follows without needing its phase:
A second average, three quarters of a dot long, narrows the filter to suit the keying speed. The threshold is about half of the recent signal peak, which is held and fades over many seconds, and it never drops below the chosen margin above the noise measured in the spectrum beside the tone. That matters because a receiver’s automatic gain control turns the noise up as soon as a station stops.
A key-down period shorter than 1.75 units is a dot, longer is a dash. A gap under two units stays inside the character, up to five ends a letter, and more ends a word. The unit is measured from strong neighbouring dots and dashes. Text appears once a transmission has three clear marks; the newest letters (blue) can still change when the speed estimate does.
Things to try
- Play the demo with heavy noise and raise Noise rejection to the maximum: the dashed line climbs above the signal and the text stops.
- Set the demo pitch far from the marker and watch automatic tuning jump to it.
- Switch on hand-keyed timing and see how much unevenness the decoder accepts.
- Fix the speed at 20 WPM, send the demo at 10 WPM and read the nonsense that results.
- Switch Automatic tone off and click a little beside the signal to see how exact the tuning must be.
Frequently asked questions
Is my audio sent anywhere?
No. Capture and decoding run in this page on your device; nothing is uploaded or recorded.
Why do I get random E and T letters?
Noise that crosses the threshold looks like single dots (E) and dashes (T). Raise Noise rejection until the noise stays below the dashed line, and check that the tone marker sits on the signal.
Why are some letters joined, split or missing?
Hand-sent Morse has uneven spacing: letters sent too close together merge, and a pause inside a letter splits it. A square (□) marks an unknown pattern. One or two marks sent alone, with seconds of silence around them, are not printed, because they cannot be told from noise.
What do <AR> and <SK> mean?
They are procedural signals, two letters sent without a gap: AR ends a message, SK ends a contact and AS means wait.
How fast can it read?
Roughly 5 to 50 words per minute. The filter is matched to the speed it finds.