{{ morseCadenceLiveText }}
Morse code generator input
Enter one message, e.g. CQ CQ TEST, or browse/drop a TXT file.
Drop TXT onto the textarea.
{{ boundedWpm }} WPM
Whole WPM values work best; 15-20 WPM is a common practice range.
WPM
{{ boundedFarnsworthWpm === 0 ? 'Off' : `${boundedFarnsworthWpm} WPM` }}
Use 0 to disable, or choose a lower WPM than Speed for extra copy time.
WPM
{{ boundedFrequencyHz }} Hz
Try 500-800 Hz for comfortable listening.
Hz
{{ boundedVolumePercent }}%
0 mutes tone output; 100 exports at full browser-generated level.
{{ boundedLeadSeconds.toFixed(2) }} s
Seconds accepted; 0.25 leaves a short lead-in.
s
{{ boundedTailSeconds.toFixed(2) }} s
Seconds accepted; 0.5 leaves a short tail after the last signal.
s
Skip removes unsupported symbols; Replace inserts the placeholder character.
Enter one visible character, for example ? or *.
{{ morse_display }}
Metric Value Copy
Unit (ms) {{ Math.round(unit_ms) }}
Total units {{ total_units }}
Duration (s) {{ duration_seconds.toFixed(2) }}
Characters {{ char_count }}
Words {{ word_count }}
Letters encoded {{ letter_count }}
Unknown chars {{ unknown_count }}
Dots {{ dots }}
Dashes {{ dashes }}
Input text {{ input_text }}
Morse {{ morse_display }}
Morse playback:
{{ playing ? 'Playing' : 'Ready' }}
Playback uses the current WPM, Farnsworth spacing, frequency, volume, lead silence, and tail silence settings.
{{ playing ? 'Tone output is playing now.' : 'Ready to play or export the generated Morse tone plan.' }}

                
Customize
Advanced
:

Introduction:

Morse code turns written characters into a timed pattern of short signals, long signals, and silence. The silence matters as much as the marks. A dot and dash sequence can be technically correct, but if the gaps are wrong, a listener may hear the wrong letter boundary or lose the word break entirely.

International Morse is built around a compact character table. Latin letters, digits, and selected punctuation each have a dot-dash pattern. The letter E is one dot, T is one dash, and many less common characters use longer patterns. That variable length is why Morse is learned as sound rhythm rather than as a printed substitute alphabet.

The timing rules make the code usable across operators, training tools, and practice files. A dot is one unit, a dash is three units, the gap inside a character is one unit, the gap between letters is three units, and the gap between words is seven units. Those proportions are the first thing to verify when a generated message will be played aloud or reused for listening practice.

Speed is normally stated in words per minute, or WPM, even though real words vary in length. The usual reference is the word PARIS plus a following word space, counted as 50 timing units. That convention lets a 20 WPM practice file, a 15 WPM lesson, and a slower beginner drill use the same dot-dash proportions while changing the actual duration of each unit.

Farnsworth timing is a learning aid for people who can recognize individual character sounds but need more time between characters or words. Instead of slowing every dot and dash, it keeps the character rhythm faster and stretches the larger gaps. The tradeoff is that different trainers do not always compute the stretched gaps the same way, so repeated practice should use one timing convention consistently.

Morse output is an encoding, not encryption and not proof that a message is ready for radio use. Accented characters, emoji, typographic punctuation, procedure signs, and operating abbreviations need extra care because they may not belong to the supported character table. A clean dot-dash string can still hide a skipped symbol, a copied typo, or text that should not be played aloud or saved in an audio file.

How to Use This Tool:

Start by checking the encoded text, then adjust timing and audio settings once the character mapping is clean.

  1. Paste a message into Text to encode, drop text onto the field, or choose Browse TXT. Plain letters, digits, spaces, and common punctuation give the most predictable results.
  2. Set Speed from 1 to 60 WPM. The slider is useful for rough changes, while the number field is better when a lesson or practice plan needs an exact value.
  3. Open Encoded Morse and compare the printed dots, dashes, spaces, and slashes with the original message. A slash marks a displayed word break.
  4. Check Encoding Metrics. Unknown chars should be 0 for a clean conversion, and Letters encoded, Dots, and Dashes should look plausible for the source text.
  5. Use Advanced when listening or export timing matters. Farnsworth speed stretches letter and word gaps when it is lower than Speed. Tone frequency, Volume, Lead silence, and Tail silence affect playback and WAV output.
  6. Choose an Unknown character policy. Skip removes unsupported symbols from the Morse output, while Replace inserts the selected placeholder when that placeholder has a supported pattern.
  7. Use Play or the Audio Player to hear the current plan. Open Playback Timeline when you need to inspect tone and silence over elapsed seconds.
  8. Export only after both content and timing are checked. The page can copy or download the dot-dash text, metrics, timeline chart data or images, WAV audio, DOCX output, CSV rows, and JSON records.

Interpreting Results:

Read the result in three passes. The encoded string confirms the character mapping, the metrics confirm the timing plan, and the playback or timeline confirms the rhythm that a listener will experience.

Morse generator result fields and how to read them
Result Field What It Means What To Verify
Morse The displayed dot-dash output, with spaces between character codes and slashes between words. Compare it with the source message before copying, downloading, or playing the audio.
Unit (ms) The dot length produced by the selected WPM. At 20 WPM it should be about 60 ms. Higher WPM values make this unit shorter.
Total units The full planned duration expressed in main dot units. Expect this to grow when Farnsworth spacing, lead silence, or tail silence is added.
Duration (s) The elapsed time for tones and silences, including the optional lead-in and tail. Check this before preparing drills, timed demonstrations, or WAV files.
Letters encoded Supported non-space characters that were converted into Morse patterns. Compare this with the input when punctuation, accents, or symbols are present.
Unknown chars Characters that did not match the supported Morse table. Investigate any nonzero value before trusting the output.
Playback Timeline A tone-versus-silence trace over elapsed seconds. Use it to spot long gaps, stretched Farnsworth spacing, and added start or end silence.

A skipped character is easy to miss because the remaining Morse can still sound smooth. If Unknown chars is greater than 0 and the policy is Skip, the exported text or audio may be shorter than the original message. Use Replace with a visible placeholder, or clean the source text, when missing content would matter.

Technical Details:

International Morse is a variable-length timing code. Characters are represented by ordered dots and dashes, and the gaps inside and around those elements define where one character ends and the next begins. Because common letters often have shorter patterns than uncommon letters or punctuation, message length depends on the actual characters rather than only on the number of words.

The timing model uses a main unit for dots, dashes, and intra-character gaps. A separate spacing unit is used when Farnsworth timing is active, so the character shapes can keep their main WPM rhythm while letter and word gaps become longer. Tone frequency and volume do not change the code itself; they change how the generated audio is heard or saved.

Formula Core:

The base dot unit follows the 50-unit PARIS convention. The spacing unit follows the selected Farnsworth WPM only when that value is greater than 0 and lower than the main WPM.

u = 1.2W g = { 1.2F if 0 < F < W u otherwise } dot = u dash = 3u letter gap = 3g word gap = 7g

Here, W is the main WPM, F is the Farnsworth WPM, u is the dot unit in seconds, and g is the spacing unit in seconds. At 20 WPM, u = 1.2 / 20 = 0.06, so a dot is 60 ms and a dash is 180 ms. With Farnsworth speed set to 10 WPM, g = 0.12, which makes the full letter gap 360 ms and the full word gap 840 ms.

Transformation Core:

Input text is split into whitespace-separated words. Each supported character is uppercased for lookup, mapped to its dot-dash pattern, then joined with a space between character codes. Encoded words are joined with a slash in the displayed output.

Supported Morse input groups
Input Group Supported Characters Notes
Letters A to Z Lowercase text is uppercased before the Morse lookup.
Digits 0 to 9 Digit patterns use five Morse elements.
Punctuation . , ? ' ! / ( ) & : ; = + - _ " $ @ The set is useful for practice text, but it is not a complete prosign or accented-character table.
Whitespace Spaces, tabs, and line breaks Whitespace separates words and becomes slash-separated word breaks in the visible output.
Representative Morse character mappings
Character Morse Character Morse Character Morse
E.T-A.-
H....O---S...
1.----5.....0-----
?..--../-..-.@.--.-.

Unknown characters are counted before the chosen policy is applied. Skip omits them from the encoded output. Replace uses the placeholder character when it has a supported Morse pattern; otherwise the question mark pattern is used as the fallback.

The audio plan is built from the same segment list used for metrics and the playback timeline. Tone segments become sine-wave audio at the selected frequency and volume. Silence segments represent intra-character gaps, letter gaps, word gaps, lead silence, and tail silence. Tone frequency is bounded from 100 to 1200 Hz, volume from 0 to 100 percent, and lead or tail silence from 0 to 3 seconds. WAV export is mono 16-bit PCM at 44.1 kHz with short fades at tone edges to reduce clicks.

The Farnsworth rule here applies the lower WPM directly to letter and word spacing. That makes the spacing predictable, but it differs from trainers that compute a special gap length so the full PARIS reference word lands on an exact slower WPM. For comparison drills, use one convention for the whole session.

Privacy Notes:

The message text and selected TXT file are processed in the browser after the page loads. There is no separate submission step for the text you enter. The practical privacy risks come from the artifacts you create, the sound you play, the clipboard, and browser addresses that may preserve changed values.

  • Review call signs, practice messages, puzzle answers, or private text before copying, downloading, playing, or sharing output.
  • Imported TXT content becomes normal input text, so check Morse and Unknown chars before saving any generated file.
  • Downloaded TXT, WAV, CSV, DOCX, chart, and JSON files can contain the original message, encoded Morse, timing values, or audio settings.

Worked Examples:

Entering HELLO WORLD at 20 WPM produces .... . .-.. .-.. --- / .-- --- .-. .-.. -... The dot unit should be about 60 ms, Words should be 2, and Unknown chars should be 0.

For beginner listening practice, keep Speed at 20 WPM and set Farnsworth speed to 10 WPM. The dots and dashes keep their 20 WPM shape, but Duration (s) increases because letter and word gaps are stretched.

If the input is CAFE, every letter maps cleanly. If the source uses CAFÉ, the accented letter is outside the supported lookup set, so Unknown chars increases and the result depends on the unknown-character policy.

If an unsupported symbol must remain visible, choose Replace and use ? as the placeholder. The generated Morse includes ..--.. at that point, making the issue visible in text and audible during playback.

FAQ:

Why does the displayed Morse use slashes?

A slash marks a word break in the printed Morse string. Spaces between dot-dash groups separate letters. Audio uses timed silence for those breaks rather than playing a slash sound.

What does Farnsworth speed change?

It lengthens the gaps between letters and words when it is lower than Speed. Dot duration, dash duration, and intra-character gaps still follow the main WPM value.

Why are characters missing from the result?

They were not found in the supported character table and were handled by the current unknown-character policy. Check Unknown chars, simplify the text, or switch from Skip to Replace.

Does tone frequency change the Morse code?

No. Tone frequency changes playback pitch and WAV pitch only. The encoded characters and timing metrics change only when text, speed, Farnsworth spacing, or silence settings change.

Does this include every prosign or accented character?

No. It supports A to Z, digits, whitespace, and the listed punctuation set. Prosigns, cut numbers, accented letters, and special operating conventions may need manual preparation.

Can it decode incoming Morse audio?

No. It generates Morse from supplied text. Use a decoder when you need to interpret received audio, tapped signals, or pasted dot-dash code.

Glossary:

Dot
The shortest Morse tone, one timing unit long.
Dash
A longer Morse tone, three timing units long.
WPM
Words per minute, based on the 50-unit PARIS reference word.
Farnsworth speed
A lower spacing speed that stretches letter and word gaps while preserving character timing.
Unknown chars
The count of input characters that did not have a supported Morse mapping.
Playback Timeline
The chart that shows tone and silence over elapsed seconds.

References: