Convert text to Morse code and back against the ITU-R M.1677-1 table, and play it with the timing the Recommendation specifies
Initializing in your browser…
Convert between MP3, WAV, OGG, AAC, M4A and FLAC with a bitrate, sample rate, channel count and bit depth that all reach the encoder, and a panel that reports what was actually written.
Percent-encode and decode against four character sets, build query strings, and take a URL apart
Generate QR codes and check each one scans by decoding it back before you download it
You want to send a short message by key or by lamp, so the characters have to be right and the rhythm has to be right too.
Text
SOS HELLO
Morse, and what it takes to send
... --- ... / .... . .-.. .-.. --- 83 units, 4.98 seconds at 20 WPM (one dot is 60 ms) Gaps present: 1 unit inside a character, 3 between characters, 7 between words
The characters come from the tables in ITU-R M.1677-1, with the handful in common use that the Recommendation does not list marked as such rather than passed off as standard. The timing comes from section 2 of the same document, and it is the part that is easy to get one unit wrong: emitting a gap after every element and then adding the character gap on top gives four units between characters and fourteen between words instead of three and seven, which is audibly a different rhythm. Here the gaps go between things rather than after them, so a message shows only 1, 3 and 7 unit silences. PARIS comes to exactly 50 units including its trailing word space, which is what makes words per minute a definition: at 20 WPM it takes exactly three seconds.
Translate text to Morse code and back, against the tables in ITU-R M.1677-1, and hear it played with the timing section 2 of that Recommendation specifies. A message shows how many units long it is and how long it takes at the chosen speed, and any character Morse has no code for is named rather than passed through.
The characters come from the Recommendation: Table 1 for the letters and the accented forms, Table 2 for the figures, Table 3 for punctuation. A handful of signs in everyday use are not in it at all, and the exclamation mark, semicolon, underscore, dollar sign and ampersand are among them. They are encoded anyway, because a translator that quietly drops an exclamation mark is worse than one that sends a mark an operator may not know, but they are marked in the chart and called out under the output rather than passed off as standard. One deliberate departure is stated on the page: the Recommendation gives a single parenthesis sign used both before and after, and this tool encodes an opening bracket and a closing bracket differently because that is what almost everything else does, while decoding either.
The timing is where a Morse tool is usually one unit out. Section 2 gives seven ratios and only seven: a dash is three dots, the gap between the elements of a character is one dot, the gap between characters is three, the gap between words is seven. The mistake is to emit a gap after every element and then add the character gap on top of it, which makes the gap between characters four units and, when the word separator is itself surrounded by spaces, fourteen between words. That is not a rounding error, it is a different rhythm: measured, "A B" comes out at 29 units sent where the Recommendation gives 21. Here the schedule puts gaps between things rather than after them, so a message contains only one, three and seven unit silences, and the panel says which lengths are present.
That matters because words per minute is a definition rather than a convention. The word PARIS is exactly 50 units including its trailing word space, so at 20 words per minute a dot is 60 milliseconds and PARIS takes exactly three seconds. The page states the unit count and the duration for whatever is in the box, so the number can be checked against a stopwatch.
The tone is a constant note with a few milliseconds of shaping at each end to stop it clicking, which is what a key sounds like. It is not a note that fades away across its own length; an envelope that ramps from full down to a thirtieth over the duration makes the end of a dash far quieter than its start, so a dash sounds like a fading dot and the rhythm is harder to read by ear than it should be. Frequency is adjustable from 400 to 1000 Hz around the 700 Hz sidetone pitch most operators use, and speed from 5 to 30 words per minute.
Decoding is tolerant of what people actually paste. A middle dot, a bullet, an en dash, an em dash and a Unicode minus are all read as dots and dashes; a pipe works as a word separator as well as a slash; and any amount of whitespace around a separator is fine. A code that is not in the table is named rather than passed through as if it were text, which is the same principle as the encoding side.
Set a slow speed and listen. Because the gaps are the ones the Recommendation gives, the rhythm you learn is the rhythm an operator uses.
The unit count and duration tell you how long a transmission will take, and anything unsendable is named before you get on the air.
Paste it in whatever characters it arrived as. Dots written as middle dots and dashes written as en dashes are understood.
The visual representation shows the dots, dashes and gaps at their real relative widths, so a printed version is proportionally right.
In writing, a space between characters and a slash between words. In sending, three dot lengths of silence between characters and seven between words, which is what the playback here uses.
It is defined by the word PARIS, which is exactly 50 units of Morse including the word space after it. At 20 words per minute PARIS takes three seconds, so one unit is 60 milliseconds. The page shows both numbers for whatever you have typed.
Because it is not in ITU-R M.1677-1. Nor are the semicolon, underscore, dollar sign or ampersand. They are in common use and are encoded here, but an operator is not obliged to know them.
Morse has no code for it. The page names which character it was rather than passing it through, because a Morse string with a hash sign in the middle of it is not something anybody can send.
Not really. It is a prosign, sent as one run of nine elements with no gaps between the S, the O and the S. The prosign list at the bottom sends it that way; typing SOS as text sends three separate characters, which sounds different.
Conversions run on your device in JavaScript. The values you enter are never sent over the network.