Clever Quest Lab ← Labs

Morse Decoder

Tune a receiver to a Morse signal and this page turns the beeps your computer plays into text.

Sound is off. Choose an audio source, or press “Play demo signal” to try it without a radio.

Microphone, computer and file audio is analysed in your browser and never leaves your device. When you share computer audio, the picture of your screen is not used, recorded or sent, and captured sound is never played back.

Click or drag on the spectrum to pick the tone. Keyboard: ← → move it by 5 Hz (Shift: 50 Hz), A returns to automatic tuning.

No signalKeying envelope (blue) and the threshold (dashed). Bars on top: blue dots, dark dashes, grey ignored noise.

Decoded text appears here.

Readouts

Tone
–
Speed
–
Signal
–
Source
none

Decoder

Speed–

Sets the dashed threshold line in the chart. Random letters while nobody is sending? Move right until the noise stays under the line.

Automatic keeps the last good tone during pauses. To choose another station, click its line in the spectrum.

Demo signal / practice sender

Noise is measured in a 2.5 kHz bandwidth. Only the demo and audio files are played through the speakers.

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.

  1. 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.
  2. 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.
  3. 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.
  4. A recording. Load a WAV or MP3 file with Open audio file.

Receiver setup

SettingValue
ModeCW, or USB/LSB tuned slightly beside the signal.
Filter width300–500 Hz keeps neighbours out; a 2.4 kHz voice filter also works, as this page has its own narrow filter.
TuningAim 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 / noteMedium or slow. A very fast AGC makes the noise between the dots pump.

Example frequencies

FrequencyWhatReceiver settingWhen / note
14.100 MHzThe 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 HzRound the clock; each beacon is on for 10 seconds of a 3-minute cycle.
14.000–14.070 MHzAmateur CW segment of the IARU Region 1 band plan (20 m).CW, 500 Hz14.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 MHzAmateur CW segments, 40 m and 80 m.CW, 500 HzLow-power centres: 7.030 and 3.560 MHz.
190–535 kHzAviation non-directional beacons, each sending a one- to three-letter Morse identifier.AM or CW; the receiver must reach long waveOn 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

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:

Tdot = 1.2 s / WPM    (20 words per minute → 60 ms)

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:

I = avg(x·cos 2πft),   Q = avg(x·sin 2πft),   A = 2√(I² + Q²)

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

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.

More free games and simulators