Little games to play with Morse Code in your browser

Feb 4, 2022 · 728 words · 4 minutes read

This is a pair of games for playing with Morse Code. Since the games play the signals as sound, I recommend headphones (wired if possible for the latency) and a low volume. Game options are available towards the bottom.

Morse Code Listening Game

In this game, it will play a word in Morse Code, and you have to type in the word.



Press Start to begin.




How to play the listening game

As you hear the Morse Code, enter the letters (or words!) that you hear. Press Enter (either the button or on your keyboard) to see if you got it, and press Replay (or Control on your keyboard) to hear it again.

For doing Morse to letter lookups, I find it helpful to look at a tree-shaped diagram, where you can follow from one node to the next based on whether it’s a dit or a dah. Binary Tree-shaped diagram of letters and their corresponding Morse Code representation. Source


Morse Code “Speaking” Game

For the speaking game, it will show a word, and you’ll have to enter it in Morse Code.

Press Start to begin.



How to play the speaking game

Press start to reveal the target. Enter Morse Code with your spacebar or the Tap button. Press Control or the Try Again button to clear your input and start over.

The game will assume you’re done with a letter after the letter gap interval (see options below), and it will automatically insert a space for you after the word interval; be careful you don’t take too long in between dits!

For doing letter to Morse lookups, I find it helpful to look at an alphabetical list with the matching representation. This makes looking up a letter faster. Alphabetical list of letters and their corresponding Morse Code representation Source


Game options

After changing settings, you have to stop and restart the above games.

Difficulty

Please select your preferred difficulty:





Speed

Please select your preferred speed:




Use the Farnsworth method?


The speeds match the following from Wikipedia:

The duration of a dah is three times the duration of a dit. Each dit or dah within an encoded character is followed by a period of signal absence, called a space, equal to the dit duration. The letters of a word are separated by a space of duration equal to three dits, and words are separated by a space equal to seven dits.

Speed Dit (ms) Dash (ms) Letter gap (ms) Word gap (ms)
Slow 300 900 900 2100
Medium 200 600 600 1400
Fast 100 300 300 700
Very Fast 60 180 180 420

But, that being said, the Farnsworth method varies the intervals between the letters and the word gap instead of varying the length of the dits, dashes, or character gaps. It is more helpful for learning the sounds of each letter at a real speed you would hear it.

All times are in milliseconds. I recommend starting with slow and giving yourself plenty of time for the dahs, then increasing the speed as you go!


Issues/questions

Something went wrong?

You may need to refresh — it’s a little rough around the edges.

Something went wrong on iOS?

First, make sure your phone is unsilenced (turns out a silenced phone blocks the web audio APIs). You also may need to tap Start and Stop a few times, refresh, or start with the “speaking” game. I ran into an issue with initializing the AudioContext, and although I think I got it right, I’m sorry if it’s giving you trouble.

Why is it so quick with the spaces when listening?

Sorry, it was easiest to be super strict about the timing when making it. Try slowing the speed down or practicing to go faster!

How does it work?

You can read about it here, and you can see the source code here and here, though it’s very unpolished.

Any recommendations for learning Morse Code for real?

I’m far from an expert, but so far I’ve seen a few recommendations (thanks to curiousfab and SaberTail on HN):