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.
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.
- 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.
- 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.
- 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.
- 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.
- 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
- A steady tone decodes best. Hand-sent Morse with uneven timing will produce errors no decoder can fully fix.
- Noise matters less than you think. The filter is tuned to one frequency, so broadband hiss is largely rejected. Interference near the same pitch is the real problem.
- Set the tone by hand if two signals are present and it locks onto the wrong one. Switch off automatic detection and move the slider.
- Watch the clean percentage. It reports how many marks and gaps sat clearly on one side of a decision boundary. Below about 75 percent, treat the output as a guess.
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.