-.-. .-- / -.. . -.-. --- -.. . .-.
FREEFreeware · personal hobby project
CW buried in noise,
turned into readable text.
CwDecoder is Windows software that turns Morse code from your receiver's audio or from recordings into text. Even when a signal is too weak to copy comfortably by ear, it uses Morse timing rules to find the most likely text across the whole signal.
Installer (.msi) for Windows 10 / 11 · No fee, no registration.
- Windows 10 / 11
- Fully offline
- Japanese Wabun Morse
- ADIF log export
- 5 UI languages
- Call
- JA1ABC
- RST
- 599
- Name
- TARO
- QTH
- TOKYO
Station 7.012.04 MHz (CAT)
Free to use
CwDecoder is free software. There is nothing to buy, no license fee and no registration.
A personal hobby project
CwDecoder is not a commercial product. It is developed and published by an individual as a hobby.
For that reason it comes with no warranty and no individual support. Please use it at your own discretion.
From receiving to logging, in one app
Whether you are on the air and don't want to miss a CQ, or want to go back over recordings later.
Strong on weak signals
Instead of deciding "tone or no tone" right away, it keeps how likely a tone is at each moment and reads the signal as a whole. Elements broken up by noise can be filled in from what comes before and after.
Live or recorded
Feed your receiver's audio into the PC to decode in real time. It also analyzes WAV / MP3 files and whole folders in one batch.
Straight through to your log
Pulls the other station's call sign, RST, name and QTH from the received text. Check or edit them, then save to an ADIF 3.1.4 log.
A look at the screens
Besides the real-time screen, there are screens for checking decoded text character by character, looking at the signal, and processing many recordings at once.
Spot doubtful characters at a glance
Decoded characters are shown as tiles, each with its own confidence.
- Listen to check: click a character or word to play that part of the audio.
- Confidence: characters below the threshold are marked in yellow with ⚠.
- Other candidates: alternative readings are listed from most to least likely.
See what the signal is doing
When copy is poor, the charts show where the signal faded and which frequency it is on.
- Waveform: select a range and analyze just that part again.
- Spectrogram: shows frequency and signal strength over time in color.
- CW probability: how likely a tone is at each moment, overlaid with the decoded dots, dashes and character / word boundaries.
- Frequency candidates: signals found automatically, with scores. You can also set the frequency by hand.
Turn a pile of recordings into text
Pick a folder and the recordings in it are analyzed one after another.
- Choose a folder: subfolders can be included.
- Track progress: status and character count per file. With a reference transcript it also computes the character error rate (CER).
- Output in one go: a TXT per file, a summary CSV and an ADIF log of the call signs found. Existing files are never overwritten.
Main features
Optional features can each be turned on or off in the Options window, so you only use what you need.
Receiving and decoding
Real-time decoding
Just connect your receiver's audio output to the PC's input or a USB audio interface. Frequency and speed (5–60 WPM) are estimated automatically.
Recording analysis
Drag and drop a WAV / MP3 to analyze it. You can also select part of the waveform and analyze only that range.
Waterfall and tuning
Shows the signals in the passband. Click a station to receive it, or go back to automatic tuning.
Several stations at once
Decodes up to 4 CW stations in the passband in parallel – in real time, file analysis and batch analysis.
Japanese Wabun Morse
Switches between Japanese and Latin Morse automatically on HO-RE / RA-TA, with kana and voicing marks.
Automatic carrier notch
Detects steady carriers (heterodynes) near the CW signal and removes them automatically.
Operating and logging
Contact extraction and ADIF
Extracts call sign, RST, name and QTH into the log. The other station's frequency is corrected for the tone pitch.
Radio frequency readoutCAT
Reads the frequency from Icom CI-V, Yaesu, Kenwood and Elecraft radios (read-only), or you can type it in.
Call sign alerts
When a call sign or word you specify (wildcards allowed) is received, you are alerted on screen, with a sound or a Windows notification.
Timestamps
Starts a new line after a pause and puts the UTC time (real time) or elapsed time (files) at the start of each line.
Batch folder analysis
Analyzes all recordings in a folder and writes TXT, a summary CSV and ADIF. Existing files are never overwritten.
Flexible export
Save as TXT, JSON, diagnostic CSV or a Markdown report. You can also record the incoming audio to WAV.
Checking and analysis
Hear any character
Click a decoded character or word to play that part of the audio and check doubtful spots by ear.
Confidence and candidates
Shows confidence per character, alternative readings and alternative text, so uncertain parts stand out.
Signal visualization
Zoomable waveform, spectrum, spectrogram, SNR and a timeline of dots and dashes.
It doesn't jump to conclusions – so weak signals still read
Just as an experienced operator copies from context, CwDecoder looks at the whole signal before it decides.
A typical decoder
Decides "tone or no tone" on the spot
- Calls it a tone as soon as the level crosses a threshold
- Tells dots from dashes by how long the tone lasts
- Strings the elements together into characters
One wrong call caused by noise, and the whole character falls apart.
CwDecoder
Keeps the likelihoods and decides over the whole signal
- Records how likely a tone is at each moment
- Searches for sequences that fit the timing rules of dots, dashes and spaces
- Picks the most likely text for the whole signal
Broken elements can be filled in from context, so noisy signals hold together much better.
Measured decoding performance
Measured during development with synthetic signals plus noise and with real CW recordings.
Character error rate at SNR −6 dB, 20 WPM
Synthetic signal with added noise (file analysis).
Character error rate at SNR −9 dB, 20 WPM
Even weaker, and still more than 90 % of characters are correct.
Real CW recordings (15 / 25 / 35 WPM)
The same text sent at three speeds: file analysis gave exactly the same text for all three.
| Condition (white noise) | SNR −9 dB | −6 dB | −3 dB | 0 dB |
|---|---|---|---|---|
| Character error rate, 20 WPM | 6.1 % | 0 % | 0 % | 0 % |
| Character error rate, 35 WPM | 45.5 % | 6.8 % | 2.3 % | 0 % |
* 8 kHz synthetic signals; SNR is referenced to a 2500 Hz bandwidth (file analysis). Real-time decoding commits characters without seeing the whole recording, so it makes a few more errors at low SNR (9.1 % at −9 dB, 20 WPM). Results depend on signal conditions.
Four simple steps
Connect or open
Feed your receiver's audio into the PC, or drag and drop a recording.
Start decoding
Press Start for real time, or Analyze (F5) for a file.
Check the result
Look at the confidence of each character and click doubtful ones to hear them.
Save and log
Save the text or a report, and send contacts to your logger as ADIF.
Requirements and specifications
- OS
- Windows 10 / 11 (x64 recommended)
- Runtime
- .NET 10 Desktop Runtime
- Audio input
- PC audio input or USB audio interface (real time)
- File formats
- WAV (PCM 8–32 bit, floating point), MP3 (decoded by Windows, no extra codec needed)
- Analysis range
- Frequency 300–1200 Hz detected automatically (or set by hand); speed 5–60 WPM estimated automatically
- Recordings
- Sample rate 4–384 kHz, up to 4 hours
- Output
- TXT / ADIF 3.1.4 / CSV / JSON / Markdown report / WAV recording
- UI languages
- Japanese, English, German, Spanish, French
- Themes
- Light / dark / follow system. Color-blind-friendly chart colors available
- Network
- Not needed (no network traffic or telemetry at all)
Please note
- CwDecoder is free software developed by an individual as a hobby. It comes with no warranty and no individual support. Use it at your own discretion.
- Radio control (CAT) is implemented from the manufacturers' published specifications and has not yet been tested with real radios. It only reads the frequency and never changes radio settings.
- Extremely weak signals, below about −12 dB SNR (2500 Hz bandwidth), cannot be decoded usefully.
- In real-time decoding, characters are committed after a decision delay of about 1–2 seconds.
- The English, German, Spanish and French UI texts were translated with AI and have not been reviewed by native speakers. The user manual is available in Japanese and English.
FAQ
Is it really free?
Yes. There is nothing to buy, no license fee and no registration. As a personal hobby project, it comes with no warranty and no individual support.
Do I need an internet connection?
No. CwDecoder works completely offline and sends nothing over the network – no telemetry or usage data. It is fine for portable operation too.
How do I connect my receiver?
Connect an audio output of your receiver or transceiver (headphone or data jack) to the PC's line or mic input, or to a USB audio interface. Then select that input device in the app and start decoding.
Can it read Japanese (Wabun) Morse?
Yes. Turn on Wabun in Options to switch automatically between Japanese and Latin Morse on HO-RE / RA-TA, or to always decode as Japanese.
What if other stations are transmitting nearby?
Click the station you want on the waterfall, or decode up to 4 stations at once. Steady carriers are notched out automatically (keyed signals from nearby stations cannot be removed).
Is there a manual?
Yes. Open the user manual from the Help menu in the app (F1) – no internet needed. To read it before installing, see the user manual on the web.
Does it run on Mac or Linux?
No, it currently runs on Windows 10 / 11 only.
Never miss a weak signal again.
CwDecoder is free software, developed as a personal hobby project.
Make CW reception more reliable – and more fun.
--... ...-- / - ..-
