By · Updated

Morse Code Key

Send by Hand and Decode Live From the Microphone

No ratings yet

OneTask is free, with no sign-up, and built by one person.
If this tool saved you time, a coffee helps keep new ones coming.

How the Morse Code Key works

An online Morse code key with a receiver on the same page. Hold the key, or the space bar, to send: a sidetone sounds while it is down and the dots, dashes and decoded letters appear as you go. Press Start listening and the microphone decodes any Morse tone it hears, working out the pitch and the speed by itself, so you can read a practice recording, a radio or a second device across the room.

Morse code is timed sound. A dot is one unit, a dash is three, the gap inside a letter is one, the gap between letters is three and the gap between words is seven. Everything on this page is built on that clock: the sender measures how long you held the key and how long you paused, and the receiver measures how long a tone was present and how long it was absent.

How the online Morse code key sends

Set a speed in words per minute. That fixes the unit length — 1200 divided by the speed, in milliseconds, so 15 wpm is an 80 ms dot. A press shorter than two units is a dot, anything longer is a dash. When the key has been up for more than two units the letter is closed and decoded; more than five units and a word break is added. The Morse line shows the raw symbols, the line beneath shows the text. Speed matters: at 5 wpm you have almost half a second to make a dot, at 30 wpm you have 80 ms, which is why beginners should start slow and let the decoder tell them whether their dashes are really three times their dots.

The sidetone is a plain sine wave at the pitch you choose. Pointer and touch work as well as the space bar, and the space bar is ignored while you are typing in a field.

How the receiver listens

Opening the microphone starts a short, fast spectrum analysis about 250 times a second. In each frame the receiver looks at the band from 300 to 1500 Hz, where every Morse sidetone and practice oscillator lives, and compares the strongest frequency against the median level of the band. A peak 18 dB above the surrounding noise means a tone has started; once it has, the receiver follows that one frequency and only lets go when it drops back within 10 dB of the floor. That hysteresis stops a noisy room from chopping one dash into several dots, and following the locked frequency stops a door slam or a voice from stretching a symbol.

The receiver sensitivity slider sets how loud a tone has to be before it counts. Turn it down if the lamp flickers on room noise or speech, and up if a quiet source across the room is being missed.

The pitch is never set by hand. Whatever frequency the tone starts on becomes the frequency being tracked, so a 600 Hz radio sidetone and a 900 Hz phone app both decode without a setting. The detected pitch is shown beside the lamp.

Speed is learned the same way. The receiver keeps the lengths of the last forty tones it heard, sorts them and looks for the biggest jump between one length and the next. Below the jump are the dots, above it are the dashes, and the middle of the dot cluster is the unit. Until it has heard four tones it falls back to the sending speed setting. The unit it settled on is shown as words per minute, which also tells you how fast the other operator is sending.

While the microphone is open the sidetone is muted, otherwise the receiver would hear the sender and decode your own keying twice.

What decodes well and what does not

A single clean tone that switches sharply on and off is the ideal: practice oscillators, keyer apps, a radio with the squelch closed, or another copy of this page on a second device. Two stations at different pitches transmitting at once will confuse the tracker, and heavy background noise raises the floor until soft tones fall below the start threshold. If the letters look wrong, watch the Morse line: a run of dots where there should be a dash means the sender's dashes are too short for the speed the receiver has learned, and a few symbols at a steadier pace will correct it.

FAQ

Do I have to set the tone frequency?

No. The receiver finds the loudest frequency in the 300–1500 Hz band when a tone begins and tracks that frequency until the tone ends. The detected pitch is shown next to the lamp so you can see what it locked on to. Practice oscillators, radios and Morse apps all sit inside that band.

Why is the sidetone silent while I am listening?

Because the microphone would hear it. The receiver would then decode everything you send as well as everything it hears from outside, and the two streams would run into each other. The sidetone comes back the moment you press Stop listening. Your keying is still decoded on the Send line while the microphone is open; it just makes no sound.

Can two people use this to talk to each other?

Yes, if each has the page open on their own device within earshot of the other. One sends with the sidetone on and the other listens. Turn-taking is up to you, since a single microphone hearing two tones at once will lock on to whichever is louder. Over a phone or video call it also works as long as the call is not applying noise suppression that treats a steady tone as noise.

What does the wpm figure on the receiver mean?

It is the speed the receiver has measured from the tones it heard, using the standard definition of fifty units per word, so a 60 ms dot reads as 20 wpm. It updates as more tones arrive. If it differs a lot from what the sender thinks they are sending, their dots and dashes are not in a three-to-one ratio.

Is anything recorded or uploaded?

No. The microphone audio is analysed in your browser and discarded frame by frame. Nothing is stored, and nothing leaves the page. Pressing Stop listening releases the microphone.

See also: all Audio tools, Images, Video & Screen, PDF, SVG, Simulations & Screensavers, Generative Art, Chart Makers, 3D Model Viewers, Drawing Pads, Mockups & 3D Making, Diagram Makers, 3D Science, Tracker Music.

Related tools