RADIOFX

Morse Code Decoder

Play Morse at your microphone, or drop in a recording, and read the message back. The tone and the speed are worked out for you.

1 · Signal
0:00.0
Drop an audio file here — WAV, MP3, M4A or OGG, up to 2 minutes.
Waveform
No signal
Tone650 Hz
Ready.
2 · Result
Morse
Text

How the decoding works

Decoding Morse from audio is mostly a timing problem. The tool works through five steps, and knowing them helps when a recording will not decode.

  1. Find the tone. Candidate frequencies from 280 to 1400 Hz are scanned and the strongest is taken as the keying tone. The scan starts at the loudest part of the clip so leading silence cannot mislead it.
  2. Measure the envelope. A Goertzel filter tuned to that tone measures how much of it is present every four milliseconds. This ignores noise at other frequencies, which is why a signal buried in hiss can still decode.
  3. Split into marks and gaps. A threshold is placed between the noise floor and the signal level, with hysteresis so a ragged edge does not chatter.
  4. Find the dit length. Mark durations are clustered into short and long. The true dit is half the distance between the two clusters, which cancels out the smearing the measurement window introduces.
  5. Classify. Marks become dots and dashes. Gaps are clustered separately rather than compared against fixed multiples, which is what lets Farnsworth spacing decode correctly.

Getting a clean decode

Questions

Can it decode live off the air?

Record first, then decode. Recording and analysing separately is far more accurate than deciding character by character in real time, because the speed can be measured from the whole message rather than guessed from the first few letters.

Why does it produce ␣ symbols?

That marks a pattern with no matching character. Usually it means two letters ran together, or a gap was misread. Try setting the tone by hand.

Does anything get uploaded?

No. The recording is analysed in the page and never leaves your device.