Stream decoding

Live over-the-air CW terminal. Feed it your rig's audio, or run a test sample to see it work before the hardware arrives.

Idle Key
Spectrum · click or drag to tune
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 a source below and press Start — or click a test sample.

Source
Sample library · easiest to hardest
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 tracks the noise floor and the signal peak and keys halfway between them, with a constant-false-alarm gate against noise bursts. Raise the squelch on a noisy band, lower it for weak signals.

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 element lengths are clustered into dits and dahs so the speed tracks the sender. Letters print as soon as the gap after them exceeds the letter boundary. Unknown patterns print as a dot.

73 DE MORSEY ·-·-· CW trainer — Koch method · Farnsworth timing GitHub