Morse is timing as much as it is symbols, and a translator that only prints dots and dashes teaches half of it. The Morse Code Translator prints the pattern and will also sound it: a 600 Hz tone scheduled through the Web Audio API at 100 ms per unit, which works out to roughly 12 words per minute on the usual PARIS measure.
Encoding uppercases your text, looks every character up in a table of 51 entries, and joins the results with single spaces. A space between words becomes /, the conventional word divider, so SOS NOW encodes to ... --- ... / -. --- .--. Decoding walks that back, splitting on / for words and on whitespace for characters.
A reference grid of all 26 letters sits beneath the panes for checking a single mapping without leaving the page. Nothing is transmitted anywhere; the lookup and the audio both happen locally.
Running a Message Out as Audio
- Leave the toggle on Text → Morse and type a message. The Morse Output pane fills as you go, set in monospace with widened letter-spacing so the marks stay countable.
- Press Play Audio. The label becomes Playing… and the button disables for an estimate of 120 ms per output character plus half a second.
- Consult the Morse Reference grid to settle a single letter, for instance that
Q is --.- while -.-. is C. - Press the swap arrow for Morse → Text. It empties the box on purpose, since marks left behind would be read as literal text and re-encoded into dots describing dots.
- Paste a sequence with spaces between characters and
/ between words, then take the decoded result with Copy.
The Timing Standard and Its Limits
- A dot is one unit of tone and a dash is three, so at the fixed 100 ms unit you hear a 100 ms and a 300 ms beep, with another 100 ms of silence between marks inside a character.
- The gap between characters totals 300 ms, matching the 3 units international timing asks for.
- The gap between words totals 900 ms rather than the standard 7 units, because the divider adds 400 ms on top of the spaces flanking it. Messages sound right but run slightly slow at word boundaries.
- Speed is fixed. 100 ms per unit sits well under the 20 to 25 words per minute used in amateur radio testing, which suits learning and not much else.
- Playback is fire-and-forget. Every tone is scheduled on the audio clock in a single pass, so there is no stop control and reloading the page is the only way to cut a long message short.
What It Accepts Beyond A to Z
- The table holds 26 letters, 10 digits and 15 punctuation marks including
., ,, ?, & and +. Only the letters appear in the on-screen grid. - Anything outside the table encodes as a literal
? and raises Some characters have no Morse mapping and were encoded as "?". Accented letters and emoji both trip it. - That warning earns its place, because a literal
? is not the morse for a question mark, which is ..--... Send it back through decode and it returns [??]. - Unrecognised codes survive decoding instead of vanishing. The group appears inline as
[?code] and the pane reports Some codes could not be decoded (shown as [?code]). - Case is discarded on the way in, so capitalisation cannot round-trip.
SOS and sos give identical marks and both come back as SOS.