An unauthorized fork of <ahref="https://alexanderell.is/posts/morse-code/">alexanderll.is</a>'s toy. My code <ahref="https://git.nathanmcrae.name/nathanmcrae/morse-game.git">here</a>.
Unfortunately, JavaScript is needed to run these games. The only JS running on my site is for the games (no tracking, etc) if you want to enable it. The good news is that if you're disabling JavaScript, you probably already know some Morse Code :)
<p>The speeds match the following from Wikipedia:</p>
<p><em>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.</em></p>
<divid="speed-table">
<table>
<thead>
<tr>
<th>Speed</th>
<th>Dit (ms)</th>
<th>Dash (ms)</th>
<th>Letter gap (ms)</th>
<th>Word gap (ms)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Slow</td>
<td>300</td>
<td>900</td>
<td>900</td>
<td>2100</td>
</tr>
<tr>
<td>Medium</td>
<td>200</td>
<td>600</td>
<td>600</td>
<td>1400</td>
</tr>
<tr>
<td>Fast</td>
<td>100</td>
<td>300</td>
<td>300</td>
<td>700</td>
</tr>
<tr>
<td>Very Fast</td>
<td>60</td>
<td>180</td>
<td>180</td>
<td>420</td>
</tr>
</tbody>
</table>
</div>
<p>But, that being said, the <ahref="https://www.google.com/search?q=Farnsworth+method">Farnsworth method</a>
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.</p>
<p>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!</p>
<br>
<h2id="issuesquestions">Issues/questions</h2>
<h4id="something-went-wrong"><em>Something went wrong?</em></h4>
<p>You may need to refresh — it’s a little rough around the edges.</p>
<h4id="something-went-wrong-on-ios"><em>Something went wrong on iOS?</em></h4>
<p>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.</p>
<h4id="why-is-it-so-quick-with-the-spaces-when-listening"><em>Why is it so quick with the spaces when listening?</em></h4>
<p>Sorry, it was easiest to be super strict about the timing when making it. Try slowing the speed down or practicing to go faster!</p>
<h4id="how-does-it-work"><em>How does it work?</em></h4>
<p>You can read about it <ahref="https://alexanderell.is/posts/writing-morse-code-games">here</a>, and you can see the source code <ahref="https://alexanderell.is/posts/morse-code/morse-code.js">here</a> and <ahref="https://alexanderell.is/posts/morse-code/constants.js">here</a>, though it’s very unpolished.</p>
<h4id="any-recommendations-for-learning-morse-code-for-real"><em>Any recommendations for learning Morse Code for real?</em></h4>
<p>I’m far from an expert, but so far I’ve seen a few recommendations (thanks to curiousfab and SaberTail on HN):</p>