Morse Code Adaptive Audio Decoder

Morse Decoder

This is an experimental tool for listening to, analysing and decoding Morse code all done in Javascript using the Web Audio API. I know it works in the latest Chrome and Firefox browsers on Windows, it might work in Safari and it just can't work in Internet Explorer. No information from the microphone is transmitted to the server, but the connection to the server is encrypted nonetheless.

If you cannot produce your own Morse code sounds then try using my Morse code translator to play or download some.

Use the microphone:

Or analyse an audio file containing Morse code:



Farnsworth WPM
Frequency (Hz)
Minimum volume
Maximum volume
Volume threshold
Range: to Hz


The decoder will analyse sound coming from the microphone or from an audio file. The spectrogram of the sound is shown in the main graph along with a pink region showing the frequency being analysed. If the volume in the chosen frequency is louder than the "Volume threshold" then it is treated as being part of a dit or dah, and otherwise it records a gap (this is shown in the lower graph that looks like a barcode). From these timings it determines if something is a dit, dah, or a sort of space and then converts it into a letter shown in the message box.

In fully automatic mode, the decoder selects the loudest frequency and adjusts the Morse code speed to fit the data. If you want to fix the frequency or speed then click on the "Manual" checkboxes and type in your chosen values. The frequency can only be certain values and the closest allowed value will be chosen.

There are three parameters which are not automatic: the minimum and maximum volume filter settings and the volume threshold setting. The volume filter (which uses dB) discards very quiet (very negative) or very loud (close to zero) sounds and scales the size of the remaining data. The volume threshold is the value (0-255) which the measured volume in the analysed frequency must exceed to be counted as a dit or dah.