picMorse Code News 2.0 (was RSS Morse)

Morse Code News periodically reads one or more RSS (news) and/or Twitter feeds and translates the received messages into International or American Morse Code, which is output as CW radio tones, or telegraph sounder click/clack sounds, or to a physical telegraph sounder connected to a serial port. This document will hopefully be all you need to get going. You'll miss out on important features if you skip reading this!

Hover the mouse over the controls on the window to get hints on what they do.

Quick Start

  1. Select the "topstories" RSS feed URL.
  2. Set the code speed you want.
  3. Select Tone, Spark Gap, or Sounder.
  4. Select International or American code.
  5. Click Start and you should start to hear the Morse code for Yahoo! top stories.

If the program crashes when trying to make sounds, disable DirectX. See Sound Configuration - Troubleshooting below.

Please Note: Before writing off Twitter, please read the Twitter section below. You can create a separate dedicated Twitter account for use as a news feed then have it follow commercial news services' tweets.

RSSRSS News Feeds and URLs

RSS feeds contain digests of articles, most often news articles. It's beyond the scope of this document to describe RSS itself, how to use RSS, how to find RSS feeds, etc. Start with the Wikipedia article on RSS if you need info and go from there. Morse Code News was tested with Yahoo! RSS News feeds. It comes pre-set with several of these feeds. The Yahoo! feeds are clean copies of Associated Press, Reuters, etc. news wire services, not cluttered with junk and verbal decoration. I suggest you start with these. The Feed URL list is pre-filled with a few Yahoo! RSS feeds and a "Top 100 words" practice feed from my web site. Of course you can type in your own URLs. If you actually use a feed you typed in, it will be remembered in the list. Up to the latest 16 feeds used are remembered. If you want to reset the list to the original set, right click and select Reset to original list.

You can find a list of Yahoo! feeds on the Yahoo! RSS News Feeds page (there's a hot-link to that page on the Morse Code News main window!). To use one of these feeds, click on its RSS icon rss. You'll see a new browser tab or window full of "stuff". Never mind that, just copy the URL from the address box at the top of the browser and paste it into the Feed URL box at the top of Morse Code News.

There's sort of an art to discovering the actual feed URL for RSS feeds. Sometimes it's enough to right-click on the RSS icon and select Copy Link or Copy Shortcut (depending on your browser). Looking at the bottom status area of your browser while hovering over a feed icon is another trick. Here are some other news-type RSS sources:

Associated Press - The real deal, but note that Yahoo! combines AP, Reuters, AFP, and other newswires
United Press International - Another classic newswire service
Reuters - Brisith newswire service, more world-oriented than the above US-centric services
CNN News - These work well in Morse Code News
Fox News - Not so good, too much bulleted hyperlink text follows the real news.

Not all RSS feeds will be usable in Morse Code News!

Twitter

You can monitor your Twitter timeline (and much more) with Morse Code News. Assuming you have a Twitter account, all you have to do to monitor your home timeline is use a Feed URL of twitter://timeline. You'll notice that this is one of the default items in the Feed URL dropdown list. Try it! The first time you do, you'll see a web browser open to allow you to authorize Morse Code News to access your Twitter account. This happens only once. Please note that Morse Code News asks only for read access to your Twitter account. It cannot possibly post tweets or make any changes.

Why Twitter? It's an excellent way to get news!

Even if you don't use Twitter, it's a useful way to get news of multiple specialized topics. There are a couple of ways to do this:

  1. Set up a special Twitter account just for Morse Code News. Then "follow" one or more Twitter timelines like @NASA, @Reuters, or @dxzone. Most interesting Twitter timelines are low-bandwidth so follow more than one to get a decent amount of traffic. Once you've set this Twitter account up and have followed your choices, use the simple Feed URL of twitter://timeline to read the traffic in Morse Code.
  2. Create a list of news feeds in your existing Twitter account. Visit each Twitter news source (or whatever) and add them to your list. Then use the (advanced) Feed URL of twitter://list?name=mylist to read the tweets from the sources in your list. The disadvantage of this approach is that all of this news will also appear in your home timeline.

Advanced Twitter Features and Feed URLs

The Twitter reader in Morse Code News supports many forms of Feed URLs which can be used to feed various kinds of information from Twitter:

twitter://timeline
The home timeline
twitter://user
Your tweets only
twitter://user?screen_name=abcdefg
The tweets of the user whose screen name is abcdefg.
twitter://public
The public timeline. This is typically extremely busy and full of junk.
twitter://mentions
Tweets which contain a mention of you
twitter://list?list_name=mylist
Timeline produced from your saved list named mylist
twitter://list?screen_name=abcdefg&list_name=alist
Timeline produced from the public list alist of user abcdefg
twitter://messages
Your direct messages (as opposed to tweets)
twitter://search?query=xyzzy
A timeline resulting from a Twitter search with search term xyzzy. Useful for feeding trending topics via hashtags like #astronomy or #justinbieber.
twitter://search?query=#morsecode&result_type=popular
A timeline resulting from a Twitter search for hashtag #morsecode, and returning only popular tweets. The choices for result_type are popular, recent, and mixed (containing both).

Multiple Feeds - Aggregation

To make things even more interesting, you can read multiple RSS and Twitter feeds, combining all of their articles into an aggregated feed. Instead of putting a single feed URL into the field, you put the URL of a local file which contains a list of feed URLs (you can mix http:// for RSS and twitter://). Clicking the Get Feed List button opens a file browser with which you can select the feed list file (type of .txt). For example:

;
; Morse Code News feed list for Joe Mama
;
http://rss.news.yahoo.com/rss/topstories
http://rss.news.yahoo.com/rss/tech
twitter://timeline                          ; My home timeline
twitter://messages ; My direct messages (PVT)

When you select the feed list file in the file browser, you'll notice that a file:// URL appears in the Feed URL field, and the file has a type of .txt. If you enter a file:// URL of a file of type .xml, it is assumed to contain RSS info, which will be fed. You can put one of these into a feed list file!

Article Control

Each time a feed (or a set of feeds) is read, it supplies a bunch of "recent" articles. They are sorted newest to oldest. Morse Code News has some filtering to prevent the same articles from being seen "too often". That's what the Story Age setting does. The default setting of 120 (minutes) means the same story won't be sent via Morse unless it hasn't been seen for two hours. The Clear Cache button immediately deletes all to the "seen" titles instead of waiting for each to expire.

The Poll Interval sets the time (minutes) between fetches of the articles from the RSS feed. If you set this to many minutes, you'll get possibly large batches of messages at once (like when the Start button is first clicked). If you set this to a short interval like 5 minutes, you'll tend to get small batches of messages more or less in real time.

Morse Code Control

Besides the obvious selector for International versus American Morse code, you can also control the speed (words per minute). The generated American Morse code has timing nuances that should make it sound quite natural. Timing of American code is much more "human". Thanks to Les Kerr (the MorseKOB author) for the algorithms that make American code sound natural to experienced landline telegraphers.

Split-Speed (Farnsworth) Timing

There are separate controls for code speed (the overall WPM rate) and character speed (the wpm equivalent at which the characters are sent). By setting the character speed higher than the word speed, additional space is inserted between characters and words. This is useful when learning Morse Code. The split-speed timing for International Morse mode is precise, the Code Speed really sets the actual overall "PARIS" (also "MORSE" by the way!) algorithm words-per-minute, even when the character speed is set higher. For American Morse, the Code WPM will not be precise. The split speed timing algorithm is a tradeoff between complexity (and interpretation) and accuracy. Just adjust each speed to your liking and don't put too much faith in the actual WPM read from the Code Speed control.

Sound Output

You can select to have CW radio tone, old-time CW spark gap tone, or telegraph sounder output. Selecting Telegraph Sounder also changes the format of the Morse Code output. Telegraph sounds cause the output messages (e.g., news summaries) to be in the format of a telegram with old-fashioned date/time. CW Radio Tone and CW Spark Gap cause the messages to be in the format of a radio message.

If you select CW Radio Tone, clicking the up and down arrow in the Tone Freq. box will play a short tone at the new frequency. If you select CW Spark Gap you can cycle through the available spark gap sounds. If you select Telegraph Sounder, you can cycle through the available sounder sounds in the same way.

At speeds above 30 wpm, the telegraph sounds can start to sound mushy, especially if you are not using DirectX (see Sound (and Timing) Configuration below). This is a limitation in the speed of the sound playing in Windows.

Using a Real Telegraph Sounder

First you need to make up an interface circuit which uses the serial port's Request to Send (RTS) pin to control the current loop that drives the sounder. You can find out more at Les Kerr's MorseKOB tutorial Appendix D, and at the end of the CW Communicator manual. Once you have the sounder interface connected, in Morse Code News, select your COM port and click the little blank button to the right of the Use check box. Your sounder should click/clack 4 times. If this works, you're all set. Check the Use box, and you'll see the sound output items become disabled. Morse will be sent only to your external sounder.

Thanks to Kes Kerr, author of MorseKOB, for the following which is reproduced from his web site.

Serial Port

The following table identifies the RS232 lines used by the program to interface with an external sounder.

Function RS232
Line
DB9
Pin
 Color*
Sounder
output
RTS 7 Blue
Sounder
ground
SG 5 Yellow

*The color code shown is for the Belkin model F2N209-06-T serial extension cable.  Some other cables follow the same color code, some do not.

USB Adapters (thanks again to Les Kerr for this)

USB-to-serial adapter cables have a reputation for being "quirky", and that's been my experience too.  Morse Code News requires good performance on the RS232 control lines (specificall RTS), whereas it doesn't use the serial data lines at all.  Consequently, a product that performs well for general applications may not be suitable for use with this program.

I've had good luck with two adapter products.  My favorite is the 13-inch Port Authority USB Serial DB9 Adapter Cable, made by Cables To Go (product #26886).  I like it because it's economical, compact, and convenient. Another product that has worked well for me is the Radio Shack USB-to-Serial Port Cable (catalog #26-183).  It's more expensive than the Cables to Go model and it's a bit bulkier, but it does have the potential advantage of being readily available at local Radio Shack stores.

If you have a desktop computer with no serial port, an alternative to the USB adapter is to install a serial port card in one of the computer's spare PCI slots.  I bought a StarTech 2 Port 16550 Serial PCI Card, model number PCI2S550.  It took just a few minutes to open my computer, plug in the new card, and install the device driver software. 

Sounder Driver

In order to drive an external sounder from the serial port, you'll need an interface circuit like the one shown below.  The circuit can be built from parts available at Radio Shack for about $6. The components can even be made to fit inside a DB9 serial port connector, although you may prefer to build it in a project box.

Sounder Driver

Parts List

RS Catalog #
TIP120 NPN Darlington transistor 276-2068
10 Kohm 1/4 watt resistor 271-1335
1N914/4148 diode 276-1122
1N4005 micro 1 amp diode 276-1104
9-pin D-sub female connector 276-1538
D-sub connector hood 276-1539

Sounder Interface
Serial port connector with sounder interface circuit inside

Sound (and Timing) Configuration - Troubleshooting

By default Morse Code News uses Microsoft's DirectX sound to produce the audio sounds. This produces the most consistent and accurate sound timing. On some systems DirectX may not work, causing the program to crash when it tries to produce sounds. Before giving up on DirectX, make sure you have the latest DirectX End-User Runtime update (available from Microsoft here). If that doesn't work, then you probably have an old, cheap, or unusual sound adapter that can't be used with DirectX. In that case, click on the Sound Cfg link and turn off DirectX in the popup window, then set the Timing Comp setting to zero (see below). Now try the program again. If that works, but the timing is off, see the Timing Compensation section below.

Envelope Shaping (DirectX only)

Normally, when you are using DirectX sound, the program will shape the Morse code elements to prevent key clicks. THe leading and trailing edges are simple linear rise and fall shapes. The Sound Cfg popup window has the control for setting the rise and fall times (in milliseconds) of the envelopes. The default setting is 5 ms, which is good all the way up to the program's maximum WPM of 35. For slower speeds, you can increase this time to soften the pulses.

Timing Compensation (non-DirectX only)

If you have a slow system and are not using DirectX, you may need to adjust the timing for your computer's speed using the Timing Comp setting, also in the Sound Cfg popup window. The Timing Comp setting needs some explanation: On slower systems, the non-DirectX sound player takes some time to start up. This time subtracts from the computed time for the "mark" symbols (dits and dahs) and adds to the computed time between mark symbols ("spaces"). The effect on a slower system is that the marks will be too short and the spaces will be too long. The Timing Comp setting sets the number of milliseconds that will be added to the marks and subtracted from the spaces, allowing for the sound player latency. On a fast system 0 or 1 will be fine. You may need to set 8 or more on a slow notebook, or even more on a dog-slow netbook.

Tip: To adjust Morse Code News for your system, use a sound/audio editor like Audacity (a free program) to display the output of Morse Code News. Use CW Tones, and set the speed to 30WPM, International code. This should produce 40ms marks and 40ms spaces between marks (within a character). Set up your Windows Sound Recording to use Stereo Mix as the sound source. Now run Morse Code News and capture at least 30 seconds of sound output. You will clearly see the marks and spaces. Use the program's time-ruler to measure the marks and spaces. Adjust the Timing Comp until your code is timed correctly.

Administrivia

Morse Code News was developed by Robert B. Denny. You can contact me at rdenny@dc3.com.

The original spark gap sound is thanks to John S. Belrose on The sounds of a Spark Transmitter: Telegraphy and Telephony. I did some audio processing to create the lower pitch sounds.

Thanks to Les Kerr, the MorseKOB author, and John Samin, author of CW Communicator, for help in getting this and other Morse code tools going.

As shown below, Morse Code News is licensed as open source. Sources are available at the Morse RSS News Tools SourceForge Project.


picMorse Code News by Robert B. Denny is licensed under a Common Public Attribution License.