Chris Collins

Tools · radio

Morse code trainer and decoder

Learn Morse with the Koch method and Farnsworth spacing, send text as sound or a flashing light, and decode CW from the microphone or an audio file in the browser.

Added

How to use it

Trainer — the Koch method: start with two characters (K and M) at full character speed, copy a drill, and add one character each time you score 90% or better. Drills are five-letter groups (weighted towards the newest character), words, or callsigns. Type what you hear and press Check for a score based on the edit distance.

Speed — character speed sets the dot length: 1.2 / WPM seconds (the word PARIS is 50 units). The overall speed adds Farnsworth spacing: characters stay fast but the gaps between them grow, using the ARRL formula (extra time ta = (60c − 37.2s)/(sc), spread 3/19 to each character gap and 7/19 to each word gap).

Send — plays text as a tone with soft edges and flashes a lamp in time; prosigns are written <AR>, <SK>, <KN>. Download WAV saves the audio.

Decoder — listens to the microphone (or decodes an audio file) and prints the text as it goes:

  • a Goertzel filter measures the tone in 5 ms blocks; with the tone left blank it finds the strongest one between 350 and 1,100 Hz;

  • the on/off threshold sits halfway between the signal and noise levels, measured over the last few seconds, with hysteresis;

  • speed is learnt from the first few marks (dits against dahs), then tracked; the character and word gaps adapt to the sender, so Farnsworth-spaced code decodes too.

Machine-sent code decodes best; hand-sent code with uneven spacing will produce some errors. Audio stays in the browser.

Presenting

The sender full screen: a large lamp that flashes the text from the Send tab, with the character being sent below it — for signalling across a room or a classroom demonstration. Press ⛶ Present (beside Share link) or F to open it; Esc or F closes it and T switches between dark and light. It goes full screen where the browser allows, otherwise it fills the window, and keeps the screen awake. A link that opens straight into presentation mode starts sending after the first click (browsers only allow sound after a gesture).

Sharing

Share link copies a URL with the text (text), speeds (wpm, fwpm), and tone (tone). For example ?text=CQ%20CQ%20DE%20W1AW&wpm=25&fwpm=15#send.

Related: the ham radio toolkit has Q-codes, prosigns, and CW abbreviations; the audio scope shows the tone’s spectrum.

Runs entirely in your browser; nothing you type leaves this page.