Convert text to Morse code and back. Play audio of the Morse code with adjustable speed and tone.
Translate text to Morse code or Morse code back to text. Type a message and see (or hear) the dots and dashes, or paste Morse code to decode it.
Initializing in your browser…
Convert audio files between WAV, MP3, OGG, AAC, M4A, FLAC formats online. Adjust bitrate and quality settings. Free browser-based conversion with no file uploads to servers.
Generate QR codes from text or URLs
Scan QR codes from images or using your camera. Supports URLs, WiFi, contacts, emails, phone numbers, and more. 100% offline - no data uploaded.
You are prepping a scavenger-hunt clue and need an accurate Morse rendering of a short phrase.
Text
SOS HELLO
Morse
... --- ... / .... . .-.. .-.. ---
Each letter maps to its ITU Morse sequence; a space between letters is a short gap and `/` marks the word break. The tool translates both directions and can play the audio at a chosen WPM, so the dots and dashes are not just visually correct but timed correctly too.
Translate text to Morse code or Morse code back to text. Type a message and see (or hear) the dots and dashes, or paste Morse code to decode it.
The translator works in both directions from a single MORSE_CODE table that maps the 26 letters, digits 0-9, and a wide punctuation set (period, comma, question mark, apostrophe, exclamation, slash, parentheses, ampersand, colon, semicolon, equals, plus, hyphen, underscore, quote, dollar sign, and @) to their dot-dash patterns, with a literal space encoded as '/' for the word separator. Text-to-Morse uppercases the input, looks up each character, and joins letters with a single space while collapsing runs of spaces into ' / '; any character not in the table (an unmapped symbol) simply passes through unchanged. The reverse table is built by inverting MORSE_CODE, so Morse-to-text splits on ' / ' for words and on single spaces for letters, and unrecognized code groups are passed through verbatim. The mode toggle does a round-trip re-encode when you flip direction so the two text areas stay consistent, and the input box for the inactive direction is set read-only.
Audio playback is generated live with the Web Audio API rather than a recorded file. Each tone is a sine-wave OscillatorNode whose frequency is set by the Tone slider (range 400-1000 Hz in 50 Hz steps, default 700 Hz, the classic CW sidetone pitch), routed through a GainNode that starts at 0.3 and uses exponentialRampToValueAtTime down to 0.01 over the tone's duration to soften the key click. Timing follows the standard relative Morse units derived from the Speed slider: a dot lasts 1200/WPM milliseconds, a dash is three times that, the gap between symbols equals one dot, the gap between letters three dots, and the gap between words seven dots. The slider covers 5-30 WPM (default 15), so at 15 WPM a dot is 80 ms; lower settings suit beginners learning to copy code. Playback walks the Morse string character by character, awaiting each tone and gap, and a Stop button flips a stopping flag that clears the pending timeout and stops the oscillator mid-stream.
Two aids back up the conversion: a visual representation that renders each symbol as a colored block (a small circle for a dot, a wider pill for a dash, narrow spacers for letter gaps, and a '/' glyph for word breaks), and a reference chart showing the first 36 entries (A-Z and 0-9) with their patterns. Five quick-phrase presets (SOS, HELLO WORLD, I LOVE YOU, THANK YOU, HELP) load instantly and force text-to-Morse mode. Everything runs in the browser; the entered text is also persisted to a shareable URL via the share-config button, and there is a Clear button that resets both fields and halts any audio.
Letters are separated by spaces, and words are separated by a forward slash (/) or wider gap.
Conversions run on your device in JavaScript. The values you enter are never sent over the network.