Field | Value | Copy |
---|---|---|
Characters | {{ char_count }} | |
Words | {{ word_count }} | |
Letters decoded | {{ letters_decoded }} | |
Unknown tokens | {{ unknown_count }} | |
Dots | {{ dots }} | |
Dashes | {{ dashes }} | |
Distinct tokens | {{ distinct_tokens }} | |
Normalized Morse | {{ normalized_morse }} | |
Decoded | {{ decoded_text }} |
Morse code is a time based alphabet where letters, numbers, and symbols are expressed as short and long elements called dots and dashes. Decoding reveals the message in plain text and shows how fast the sequence would sound so you can judge rhythm and pacing with confidence.
A Morse code to text decoder helps when you have a string of dots and dashes and need a clean reading plus timing. Paste a line, choose how letters and words are separated, and pick how to handle anything unknown. The output shows the decoded text, a normalized Morse line, and summary counts you can copy.
You can tailor casing for readability and set speed in words per minute so the duration estimate matches practice pace. Farnsworth spacing slows the silent gaps while keeping each tone brisk so early learning stays clear. Use a steady sine tone to preview the timing and save a practice track if you wish.
Try a familiar example such as “.... . .-.. .-.. --- / .-- --- .-. .-.. -..” which reads as HELLO WORLD. If a token is not recognized you may replace it with a single placeholder or skip it. The first non blank line is used, so keep each run to one line for consistent results.
For reliable decoding use consistent separators, avoid stray whitespace, and keep speed settings the same when you compare runs. Pick this when you already have dots and dashes; use an audio decoder when starting from a recording.
The phenomenon measured is symbol timing in International Morse, observed as on–off tone segments and the silent gaps between them. The decoder maps each code sequence to its character, then computes a duration model from words per minute (WPM) and optional Farnsworth spacing to estimate total playback time and a step timeline.
Computation begins with the dot unit in seconds, then derives dash length and gap durations. Farnsworth wording uses a slower effective rate only for inter‑letter and inter‑word gaps while leaving dot and dash durations at the base rate. Letter frequency is counted over A–Z after casing is applied.
Results include decoded text, a normalized Morse string, totals for characters, words, letters decoded, unknown tokens, dot and dash counts, distinct tokens, estimated total time, a letter‑frequency bar chart, and a tone‑versus‑time step chart. Values near speed changes reflect gap stretching rather than tone length changes.
Symbol | Meaning | Unit/Datatype | Source |
---|---|---|---|
Words per minute using PARIS timing | 1/s | Input | |
Farnsworth effective WPM for gaps | 1/s | Input | |
Dot unit duration | s | Derived | |
Farnsworth unit for gaps | s | Derived | |
Inter‑letter gap | s | Derived | |
Inter‑word gap | s | Derived | |
Tone frequency | Hz | Input | |
α | Output level | 0–1 | Derived from % |
Lead and tail silence | s | Input |
Worked example
At WPM 20 with Farnsworth off and lead and tail set to 0.2 s each:
For “SOS” the body time is 0.48 s for S, 0.84 s for O, and 0.36 s for the final S. Including 0.2 s lead and 0.2 s tail gives ≈ 2.08 s total.
Timeline tooltips show time to three decimals; the summary rounds total time to two decimals.
Field | Type | Min | Max | Step/Pattern | Error Text |
---|---|---|---|---|---|
Input Morse | string (first non‑blank line used) | — | — | Dots/dashes; newlines become word separators | — |
Input letter separator | string | — | — | Space splits on any whitespace | — |
Input word separator | string | — | — | Default “/”; newlines treated as words | — |
Unknown policy | enum {replace, skip} | — | — | — | — |
Placeholder char | string length ≤ 1 | — | — | Maxlength 1 | — |
Case mode | enum {UPPER, lower, Title, Sentence} | — | — | — | — |
Audio WPM | number | 1 | — | Step 1 | — |
Farnsworth WPM | number | 0 | — | Step 1; active only if 0 < F < WPM | — |
Frequency | number | 100 | — | Step 1 | — |
Volume | percent | 0 | 100 | Step 1 | — |
Lead silence | seconds | 0 | — | Step 0.05 | — |
Tail silence | seconds | 0 | — | Step 0.05 | — |
Input | Accepted Families | Output | Encoding/Precision | Rounding |
---|---|---|---|---|
Morse string | Dot and dash glyphs normalized (• · ∙ ⠂ ◦ and many dashes) | Decoded text | Unicode text | — |
Plain‑text file | One line used; extra non‑blank lines ignored | Metrics CSV; JSON payload | UTF‑8; JSON pretty print | Times shown to 2 or 3 decimals |
Speed & tone | WPM, Farnsworth, frequency, volume | WAV audio | PCM 16‑bit, 44 100 Hz | 3 ms amplitude ramps |
Decoding, charts, playback, and file creation run in the browser on your device. No requests are sent to a server during these actions.
Decoding and timeline building are linear in the number of symbols and gaps. With the same settings and input, outputs are identical across runs.
Conventions align with International Morse practice, PARIS timing for WPM, and common Farnsworth spacing used in training. Speed settings and gap rules follow these widely recognized definitions.
Morse code decoding to readable text with a timing preview.
Example: With “... --- ...”, WPM 20, Farnsworth 0, frequency 600 Hz, you will hear short and long tones totaling about 2.08 s including lead and tail.
You now have readable text and a practice‑ready timing model.
No. Decoding, charts, playback, and file creation run locally on your device. Nothing is sent to a server by the decoder.
Dot, dash, and gap durations follow PARIS timing and Farnsworth rules. Device audio scheduling may add tiny jitter, which is negligible for study.
A–Z, digits 0–9, and common punctuation including . , ? ' ! / ( ) & : ; = + - _ " $ @ are mapped. Unrecognized codes can be skipped or replaced.
Spaces split letters and “/” splits words by default. Newlines become word separators. You may set custom separators for both.
Paste it on one line, keep letter separator as a space and word separator as “/”, then read the result as SOS. Timing reflects your speed settings.
It slows only the gaps between letters and words while keeping each dot and dash at the base WPM, which makes practice easier to copy.
Yes. After the page loads, decoding and audio work without a connection.
No license is stated here. Use within the terms of the site that hosts this tool.