Decode Summary
{{ (decodeResult && decodeResult.total_time_sec ? decodeResult.total_time_sec.toFixed(2) : '0.00') }} s audio
{{ letters_decoded }} letters {{ word_count }} words {{ distinct_tokens }} distinct {{ dots }} · {{ dashes }} Unknown {{ unknown_count }} WPM {{ audio_wpm }} Farnsworth {{ audio_farnsworth_wpm }}
{{ decoded_text }}
Morse:
Ignored {{ extraLinesIgnored }} extra line(s).

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 }}

        

Introduction:

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.

Technical Details:

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.

u = 1.2 WPM  s uF = { if 0<F<WPM,   1.2 F ;   else, u } GL = 3uF GW = 7uF dot = u dash = 3u intra‑element gap = u
Symbols and units used in formulas
Symbol Meaning Unit/Datatype Source
WPM Words per minute using PARIS timing 1/s Input
F Farnsworth effective WPM for gaps 1/s Input
u Dot unit duration s Derived
uF Farnsworth unit for gaps s Derived
GL Inter‑letter gap s Derived
GW Inter‑word gap s Derived
f Tone frequency Hz Input
α Output level 0–1 Derived from %
L, T Lead and tail silence s Input

Worked example

At WPM 20 with Farnsworth off and lead and tail set to 0.2 s each:

u = 1.220 =0.06 s GL = 3u=0.18 s GW = 7u=0.42 s

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.

Validation & bounds

Inputs and their constraints
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

I/O formats & encoding

Inputs and outputs
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

Units, precision & rounding policy

  • Decimal separator is a dot. Summary time uses two decimals; timeline tooltips use three.
  • Letter frequency counts only A–Z after case conversion.
  • Audio engine applies ≈ 3 ms fade in and out per segment to reduce clicks.

Networking & storage behavior

Decoding, charts, playback, and file creation run in the browser on your device. No requests are sent to a server during these actions.

Performance & determinism

Decoding and timeline building are linear in the number of symbols and gaps. With the same settings and input, outputs are identical across runs.

Security considerations

  • Clipboard and file downloads occur only on explicit user action.
  • Uploaded text is read locally; no remote transmission is performed by the decoder.

Assumptions & limitations

  • Only the first non‑blank input line is used. Heads‑up
  • Newlines are treated as word separators.
  • Normalized Morse omits unmapped tokens.
  • Unknown tokens are counted even when skipped in output.
  • Farnsworth affects only gaps, not dot or dash duration.
  • Letter frequency ignores digits and punctuation.
  • Character count reflects normalized input length, not output length.
  • Playback uses a pure sine tone without sidetone shaping.
  • Very large inputs may be slow to chart.

Edge cases & error sources

  • Mixed or repeated separators can create empty tokens.
  • Non‑breaking spaces and tabs are normalized to spaces.
  • Exotic dot or dash glyphs outside the normalization list remain unknown.
  • Clipboard access may be blocked by permissions.
  • Autoplay policies can prevent audio until a user click.
  • High WPM values shorten gaps and may be hard to follow.
  • Farnsworth equal to or above WPM is ignored.
  • Device audio timing jitter can shift millisecond edges.
  • Exported WAV length is quantized to whole samples.
  • Charting may not render if the charting layer fails to load.

Scientific & standards background

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.

Step‑by‑Step Guide:

Morse code decoding to readable text with a timing preview.

  1. Paste or drop your Morse on one line into Input Morse.
  2. Set Input letter separator and Input word separator.
  3. Choose Unknown policy and placeholder if needed.
  4. Pick a Case mode for readability.
  5. Adjust Audio WPM and, if desired, Farnsworth WPM.
  6. Set Frequency, Volume, Lead, and Tail.
  7. Review metrics, frequency chart, and the tone‑versus‑time timeline.
  8. Play the tone and save a WAV file if you want a practice track.
  9. Copy or download the CSV or JSON summary as needed.

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.

FAQ:

Is my data stored?

No. Decoding, charts, playback, and file creation run locally on your device. Nothing is sent to a server by the decoder.

How accurate is the timing?

Dot, dash, and gap durations follow PARIS timing and Farnsworth rules. Device audio scheduling may add tiny jitter, which is negligible for study.

Which symbols are supported?

A–Z, digits 0–9, and common punctuation including . , ? ' ! / ( ) & : ; = + - _ " $ @ are mapped. Unrecognized codes can be skipped or replaced.

What separators can I use?

Spaces split letters and “/” splits words by default. Newlines become word separators. You may set custom separators for both.

How do I decode "... --- ..."

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.

What does Farnsworth mean?

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.

Can I work offline?

Yes. After the page loads, decoding and audio work without a connection.

Is there any cost or license?

No license is stated here. Use within the terms of the site that hosts this tool.

Troubleshooting:

  • No output shows — ensure the first non‑blank line contains dots and dashes.
  • Weird characters appear — set the correct letter and word separators.
  • Unknown count is high — your input has codes not in the table or mixed glyphs.
  • No sound — click Play after a user gesture to satisfy autoplay policies.
  • Too loud or clipping — lower volume or increase lead and tail for space.
  • Charts blank — reload once the charting layer is available.

Advanced Tips:

  • Tip Use a fixed WPM and vary Farnsworth to track progress without changing tone speed.
  • Tip Title Case improves readability for phrases; Sentence case helps longer notes.
  • Tip Keep separators stable so normalized Morse comparisons remain meaningful.
  • Tip For ear training, set frequency near your preferred sidetone pitch, then adjust volume gently.
  • Tip Include a short lead to avoid clipped beginnings on some audio devices.
  • Tip Use the JSON to snapshot settings and results for repeatable sessions.

Glossary:

Morse code
An alphabet of dots and dashes that represent characters.
Dot / Dash
Short and long tone elements that form each character.
WPM
Words per minute based on PARIS timing convention.
Farnsworth
Method that lengthens gaps while keeping tones fast.
Letter gap
Silence between letters within a word.
Word gap
Silence between words in a message.
Normalized Morse
Cleaned dot and dash string using chosen separators.
Letter frequency
Count of A–Z letters in the decoded text.