Translate text to Morse code and back — with audio playback
This translator implements the International Morse Code standard (ITU-R M.1677-1) with precise timing ratios: a dot is 1 unit (80ms), a dash is 3 units, inter-element gap is 1 unit, inter-letter gap is 3 units, and inter-word gap is 7 units. Audio generation uses the Web Audio API with a 600Hz sine wave oscillator — the standard CW (Continuous Wave) frequency used in amateur radio. The AudioContext scheduler pre-computes all note timings for precise, drift-free playback regardless of JavaScript event loop latency.
Real-world use cases:
This tool is part of the FAK LAB ecosystem, founded by Faizan Ahmad Khan Khichi. All Morse code translation and audio generation happens 100% client-side using your browser's JavaScript engine and Web Audio API. No text, encoded messages, or audio data is transmitted to any server. Your communications remain entirely private — ideal for encoding sensitive messages that never leave your device.
The current implementation supports the international alphabet (A-Z) and numerals (0-9) as defined in the ITU standard. Characters not in the Morse code alphabet (punctuation, special symbols) are rendered as "?" in the output. The standard Morse alphabet covers the vast majority of practical communication needs.
The audio plays at 600Hz, which is the standard sidetone frequency used in amateur radio CW practice. This frequency sits in the optimal range for human auditory perception — high enough to be distinct from background noise but low enough to be comfortable during extended listening sessions. Professional Morse operators typically train between 500-800Hz.
The current implementation uses a fixed 80ms dot length, which corresponds to approximately 15 words per minute (WPM) — the standard speed for Morse proficiency certification. At this rate, "PARIS" (the standard calibration word) takes exactly 4 seconds to transmit. Advanced users can modify the timing through browser developer tools for faster or slower practice.