Morse Timing

While working on my Morse practice generating program that I have tentatively called mscript, I decided that I wanted to support “Farnsworth” timing: basically sending characters at one rate, but then increasing the spacing between characters and words so that the overall rate was slower. The idea (as near as I can tell, completely untested but still probably sensible) is that by learning the sound of characters at a fast rate, you don’t plateau as readily.

It isn’t hard to figure out the timing of traditional Morse code: A dit lasts one time period. A dash is three times as long. All elemtents (dots and dashes) within a character are separated by one period. Characters are separated by three periods. Words are separated by seven periods. Using this, the word “PARIS” takes 50 time periods, so the length of each period is 1200 / WPM milliseconds when WPM denotes the desired speed in words per minute.

But how does his timing change with the Farnsworth spacing? Well, inside a given character, the timing all remains the same. We’d like to extend intra and interword spacings to slow the overall code down to a different rate. We’d also like to preserve the 3/7 ratio between those two intervals. The math was eluding me, so I did what all people do when they don’t know the answer to a question: I looked it up on the internet. And of course, if you ask the right question, you get the right answer. Mine came in the form of an article by Jon Bloom, KE3Z that appeared in QEX entitled A Standard for Morse Timing Using the Farnsworth Technique which you can get from the ARRL archive here if you are a member.

But if you can’t, here are the formulas. Let’s say that you are specifying the Farnsworth in terms of a ratio s/c, where s is the overall (slower speed) and c is the character speed in WPM. You then compute

ta = (60 c – 37.2 s) / (s * c)
tc = 3 * ta / 19
tw = 7 * ta / 19

where tc and tw are the times (in seconds) that you have between characters and words respectively.

I’ll get this hacked into mscript shortly, and post an example.

Addendum: I’ve got the code added into mscript. Here are two samples of six random five-letter groups, sent first at 20wpm, and secondly sent at 20wpm, but with character spacing increased to slow the overall rate to 10wpm.

An example of both conventional timing and Farnsworth timing.