Stream decoding

Live over-the-air CW terminal. Cable the rig into your laptop's aux jack or a USB sound card, or hold a microphone to its speaker — the audio is passed through to your headphones while it decodes. The text is a running log: it survives Stop and reloads, breaks the line after five seconds of silence, and only Clear empties it. Callsigns, Q-signals, RST reports, prosigns and common shorthand are coloured as they arrive; hover one for its meaning.

Idle Key
Spectrum · click or drag to tune · wheel sets bandwidth
Tone level in passband ▮ floor▮ threshold▮ peak
-60 dB-40-200
Speed
— WPM
dit 60 ms · dah 180 ms · 3.0:1
Signal report— S/N
RST ——
S1S3S5S7S9+10+20+30
copy 100% · timing 100% · gaps 180/420 ms
Elements
—
Decoded text
Nothing decoded yet. Pick an input below and press Start listening.
■Callsign■Abbreviation■Q-signal■RST■Prosign· hover a word for its meaning
Source

Run a cable from the rig's headphone / speaker jack to the laptop's aux (combo) jack or a USB sound card, and pick that input here — the system default is usually the built-in microphone. Keep the rig's AF gain moderate so the meter sits around −20 dB on a signal, and set the pitch to the rig's CW pitch. Browser AGC, noise suppression and echo cancellation are switched off automatically.

+0 dB

Plugging into the rig's headphone jack silences its speaker; the input is passed straight through to your headphones so you still hear the band. The rig's volume sets the decoder level, this sets yours. Levelling evens out the rig's loud sidetone and its quieter receive audio, so you stop turning the volume down to transmit and back up to copy. It holds its gain through the gaps of a transmission and recovers over a few seconds after one ends; switch it off to hear the rig's own levels. Between overs it will run up to its +30 dB limit and bring the band noise up with it, so a quiet band sounds far noisier in your headphones than it is on the air — what the decoder sees is the S/N figure on the signal report, not what you are hearing. The browser adds a few tens of milliseconds each way, which you will notice when keying. For a zero-delay sidetone, put a Y-splitter on the rig's headphone jack — one leg to the laptop, one to your headphones — and switch this monitor off.

Filter & threshold
Centre pitch700 Hz
Bandwidth (pre-filter Q ≈ 5)100 Hz

Narrow to reject QRM; widen for fast code or a drifting signal. 100 Hz suits most 15–30 WPM copy.

Threshold
Squelch — minimum signal over noise6 dB

Auto measures the distribution of levels in the passband and keys halfway up a signal it can see, never closer to the noise than a constant-false-alarm gate allows. While that distribution shows no transmission the pill by the meter reads Squelched and nothing is printed, so a dead band stays a blank page instead of a page of E and T. Raise this on a noisy band, lower it for weak signals.

Fine tuning

Everything is still measured automatically — these move where the decoder draws its lines. Centred is the tested default; change one at a time while watching the text.

Threshold±0 dB
weak / fadingnoisy band

Moves the amber mark on the meter. Down catches elements that fade under the gate; up stops static crashes keying it.

Fade following40 ms
fast QSBsteady signal

How quickly the tracked signal level follows a fade during a transmission.

Letter break×1.00
letters run togetherletters split apart

If a 4 prints as I U or a C as T A, the sender pauses inside letters — move right.

Word break×1.00
words run togetherC Q C Q

If every letter prints as its own word, move right.

Measured spacing: inside a letter 1.0 · between letters 3.0 · between words 7.0 dits

Squelch — print only what looks like a transmission
Ignore RTTY — don't print radioteletype as Morse

How it works: the audio is mixed to the centre pitch and integrated over a window set by the bandwidth (a sliding single-bin Goertzel detector, as in the QCX/QMX), the envelope is keyed against an adaptive noise-floor/peak threshold, and each burst of keying is held until it looks like a transmission — a tone, not the whole band getting louder, and not the two alternating tones of RTTY — then decoded from its start at the speed and spacing measured from it. After that letters print as soon as the gap after them passes the letter boundary. Unknown patterns print as a dot.

73 DE MORSEY ·-·-· Free & open-source CW trainer — Koch method · Farnsworth timing About & FAQ GitHub