Matt J. Gumbley | Website:
Blog: On The Edge of Occam's Razor

Amateur Radio Software

Table Of Contents

1 Introduction

I'm also a licensed radio amateur - M0CUV's the callsign. Here's some software for Linux that may be useful for practicing morse... (it's no substitute for listening to a real amateur though).

2 Morse

Great name for a package, that ;-) It's like Clint Eastwood calling his Horse "Horse".

Download it here. It's a Morse training package for Linux, with the following features:

  • Uses your sound card; plays nice dit/dah samples
  • Can send standard input as Morse
  • Can send random characters
  • Can also display these in a large typeface, to aid "brainwashing".
  • Can be configured (via source code at the moment; configuration tool comes later) to send any code speed - 12 WPM is default.
  • Released under the GPL. Patches are very welcome!
Here's the README from the package:
"morse" - Morse Training Software for Linux

(C) 2000 Matt J. Gumbley, G7JFJ

This package contains several programs and Perl scripts which might help you to
learn Morse code. I wrote this code to help me through the RSGB's 12 WPM Morse
test, after a conversation with my instructor at Maidstone Amateur Radio
Society, Colin Wilson. Colin's training in the services amounted to
"brainwashing" - a letter would flash up on a screen with the appropriate Morse
character being sent - at high speed.

One problem I have when reading Morse is that I occasionally stumble over a
character, and by the time I've worked it out, I've missed the rest of the word.
The translation has to be automatic; unconscious.

To this end, I wrote these tools....

You need a working sound card. I can't go into this in any depth here - you must
have /dev/dsp - that's all. See the Sound-HOWTO.

For the Perl scripts, you need several CPAN modules installing.

(You need to build these before anything will happen: just type 'make')

typemorse: use at the end of a pipeline to convert text into Morse:
typemorse < qso.txt

brainwash:  sends random characters from the entire set; can be hacked to send a
limited set - the ones you're stuck on.

------------ - needs /usr/dict/words and 'typemorse' building. Sends words of
increasing size, so you get to train your ability to decode and string
characters together simultaneously. (I can get individual characters most of the
time, but trying to put them together into a word hasn't quite become automatic
yet!) - don't bother with this, it just dumps out a file as an "oscilloscope
view" - I use it to verify that the waveforms for dit and dah are "nice". - needs 'brainwash' built, and Perl/Tk installing. Displays the
output of 'brainwash' in a big window. Maximise the window, turn the lights off,
and let it just flow into your subconscious.... you are programmed to receive!

'morse.o' and 'morse.h' can be used as a Morse library - feel free to add Morse
support to all your software !

After you run any of the executables, you'll get two files generated: dit and
dah - they're the waveforms I use (8kHz, 8-bit). They're not particularly
wonderful, so if you can come up with a better generation algorithm than
gensample() in morse.c, please let me know.

The software is released under the GNU General Public License.

* Write a GUI front end for everything; configuration, etc.
* Get the executables reading configuration from a file.
* Write a 'big letters' output program (like banner) for those that don't have
* Add some slight delays to make it sound more 'natural'
* There's a hook for generating white noise (see morse.c) - why not add in a
  battery of effects? I'm told there's a CW Pileup program that is good in this
  respect. (I can imagine clicking radio buttons: 'Deep QRM' / 'Dellinger
  Fade-Out' / 'Operator has the Shakes' ;-) )

Thanks to Colin Wilson G0VAR for the idea, and good luck in your Morse training!

Matt Gumbley, G7JFJ

That's all for now - expect more amateur software for Linux as time goes by...

Matt M0CUV
nee G7JFJ
(C) Matt J. Gumbley 1998-2005 - All Tights Reversed