Morse, as an API

The same functions this site runs on are verbs on the shared text adapter, reachable over HTTP and as MCP tools.

One encoder, not two

These verbs live on the existing text adapter rather than in a package of their own, because morse encoding was already there. Adding a second implementation would mean two tables of dots and dashes that agree until the day somebody fixes one of them.

Loss is reported, not hidden

MorseTranslate returns what it could not represent alongside the result. The older MorseEncode and MorseDecode verbs still return a plain string for their existing callers, but they are the ones that drop characters silently — use the newer verb when the completeness matters.

Questions

Why do some characters come back missing?

Because morse has no code for them. There is no standard morse for an accented letter, a curly apostrophe or an emoji, so anything without a code cannot be sent. This site lists exactly what it had to drop rather than quietly leaving it out, which is what most translators do.

How fast is 20 words per minute?

A dit is 1200 divided by the speed in words per minute, so at 20 WPM a dit is 60 milliseconds and a dah is 180. The standard word is PARIS because it is exactly 50 units long, which is what makes words per minute a precise measure of morse rather than an approximate one.