Recording distance
Hold the mic 15–30 cm from the source. Closer than 10 cm clips and distorts; further than 50 cm picks up echo and HVAC noise. For radios, the headphone jack is almost always cleaner than a mic on the speaker.
Upload a WAV or MP3 file, or record live from your microphone. FFT-based tone detection converts Morse beeps into text — all processing happens in your browser.
Supports WAV, MP3, OGG, M4A — max 10 MB
Six signal-processing stages turn raw audio into readable text — entirely inside your browser, with zero server uploads.
Your file is decoded by the Web Audio API on your device. Nothing is sent to a server, and the audio is discarded the moment you reset or close the tab. The decoder accepts WAV, MP3, OGG and M4A up to 10 MB, but uncompressed WAV gives the best accuracy because lossy codecs blur the sharp on/off edges that define a Morse symbol.
A Fast Fourier Transform converts each short window of audio into a frequency spectrum. The decoder scans your selected band — usually 600–1000 Hz, the standard CW sidetone — and locks onto the peak. The result is a per-frame amplitude curve that tracks the Morse key going down and up.
The quietest frames are sampled to estimate the noise floor. Anything below the gate threshold is treated as silence. The four strength presets — Light, Medium, Strong, Aggressive — let you trade sensitivity for noise rejection so the same engine works for clean practice tones and noisy SDR captures.
Every on/off transition is stamped with a millisecond timestamp. Continuous on-periods become candidate dots and dashes; gaps become intra-letter, inter-letter or word boundaries. All ratios follow the ITU timing standard (1 : 3 : 7).
K-means clustering separates short bursts (dots) from long bursts (dashes). The median dot length defines the timing unit, which yields words-per-minute. This handles non-integer speeds and the natural swing of hand-sent Morse — something fixed-ratio decoders fail at.
Each dot-dash sequence is matched against the ITU-R M.1677-1 table to produce a letter, digit or punctuation mark. Anything that fails to match becomes a ?, and the timeline panel highlights exactly where decoding broke down so you can fine-tune the settings.
Recording quality affects accuracy more than any decoder setting. Spend two minutes on the source and you can decode reliably at 20+ WPM — even on a basic laptop microphone.
Hold the mic 15–30 cm from the source. Closer than 10 cm clips and distorts; further than 50 cm picks up echo and HVAC noise. For radios, the headphone jack is almost always cleaner than a mic on the speaker.
Patch your radio's audio-out into your line-in and capture 44.1 kHz / 16-bit WAV in Audacity. Direct cabling eliminates room noise entirely and pushes accuracy past 95 % even at 20 WPM.
Use Audacity's Effect → Truncate Silence to clear long pauses before the first character. Long silence at the start confuses the noise-floor estimator. Aim to start within 1–2 seconds of the first dot.
Hard floors and bare walls produce echo that smears Morse edges. A small carpeted room — or a towel-lined cardboard box around the speaker — kills most of it. Crank the noise gate to Strong if echo is unavoidable.
Aim for peaks around −6 dBFS. Anything red-lining clips the tone and breaks the FFT peak detection. Anything below −30 dBFS leaves the signal buried in the noise floor.
Audacity (Win/Mac/Linux) for capture, trim, noise reduction and WAV export. GQRX and SDR# pipe demodulated audio straight to file for SDR users — no microphone needed.
From ham radio practice to escape rooms — here is how operators, learners, gamers and researchers put this tool to work.
CW operators record their own keying and run it through the decoder as a self-check. If the decoded text matches what you intended to send, your timing is solid; if not, the signal timeline shows exactly which dashes are short, which letter-spaces are crowded, and where the rhythm broke. It also chews through received CW recordings — DX contacts, beacons, contest captures.
Build a copy-and-check loop: generate a practice clip with the Morse translator, copy it on paper, then upload the same audio here for character-by-character feedback. Start at 5 WPM and step up by 2 WPM only when you score 90 %+. This mirrors the proven Koch and Farnsworth methods used by serious CW operators worldwide.
Morse audio shows up constantly in escape rooms, ARGs, and military-themed games like Call of Duty, Battlefield and indie thrillers. If the clue is too fast for your ear, capture the system audio and drop the file in here for an instant transcript — beats freezing the playback every two seconds.
Public archives now hold digitised WWII intercepts, maritime distress traffic and early commercial broadcasts. This decoder can transcribe high-quality WAV exports of those archives without a manual ear-copy session. For old, degraded recordings, switch to Aggressive noise gating and dial WPM down to match the period sending speed.
For Morse code's first hundred years, every message was decoded by a human ear. Telegraph operators and radio intercept specialists trained for months to copy Morse at 20 words per minute or more, recognising letters as rhythmic shapes rather than counting individual dots and dashes. During WWII the Allied signals-intelligence services trained thousands of operators — many of them women recruited for linguistic aptitude and manual dexterity — to copy enemy traffic in real time, often under combat conditions and through deliberate jamming.
The first software decoders appeared in the 1980s alongside personal computers and early sound cards, but were limited to fixed speeds and clean sine-wave tones. Modern tools like this one apply the same Fast Fourier Transform mathematics that powers digital radio, MP3 compression and medical imaging — turned loose on the problem of pulling a Morse signal out of a noisy real-world recording.
Today, SDR hobbyists routinely use desktop tools such as fldigi, CW Skimmer and MRP40 for live on-air decoding. This browser-based decoder brings the same capability to anyone with a recording and a web browser — no installation, no licence key, no upload.
Quick answers to the questions we get most often. Click any question to expand the answer.
WAV, MP3, OGG and M4A files up to 10 MB. WAV gives the best accuracy because it stores audio without lossy compression — MP3 and M4A can smear the sharp edges of Morse tones, especially at slow speeds or low bitrates. If an MP3 decodes poorly, open it in Audacity and re-export as 44.1 kHz / 16-bit WAV before uploading.
Yes. Capture your SDR or transceiver audio with Audacity, export as WAV, and upload here. Use the 600–1000 Hz range and set the expected WPM near the actual sending speed — or pick Auto-detect if you don't know it. GQRX and SDR# both export demodulated CW audio directly.
Three issues account for almost all decoding failures:
Question marks specifically mean the decoder found signals it could not match to a Morse character — almost always a WPM mismatch rather than a fundamental audio problem.
Reliably from 5 WPM (beginner pace) up to 25 WPM (contest-speed CW). Beyond 25 WPM individual dots drop under 48 ms and the FFT window may miss them. Auto-detect uses K-means clustering and handles non-integer hand-sent speeds between 5 and 20 WPM particularly well.
Yes, indirectly. Use system-audio capture — OBS Studio or Audacity's WASAPI loopback on Windows; BlackHole or Soundflower on macOS — to record the playback, then upload the file. Alternatively use the Record Live tab and play the video on speakers, though direct capture is more accurate.
Yes — both file upload and live recording work on iOS Safari and Android Chrome with no app install. For mic recordings, hold the phone 15–20 cm from the source and avoid Bluetooth headsets (their noise processing distorts CW tones). Use the device's built-in microphone for cleanest results.
No. Everything runs in your browser via the Web Audio API and JavaScript. The file is loaded into memory, analysed, and the result rendered on screen. Nothing is transmitted, stored in cookies, or cached — closing the tab discards the audio entirely.
The decoder is designed for a single CW signal. In a two-station QSO the operators may use slightly different tones, and the silence between transmissions confuses the word-spacing analysis. Trim the recording to one station's transmission in Audacity for a clean decode.
10 MB. A 10 MB mono WAV at 44.1 kHz is roughly 60 seconds of audio — enough for most practice clips and on-air contacts. Trim longer recordings in Audacity before uploading; large files also take longer to process because all analysis runs locally.