picMorse News 3.3 (07-Apr-2014)

Morse News periodically reads one or more RSS (news or Facebook), Atom (news), and/or Twitter feeds and translates the received messages into International or American Morse Code, which is output as CW radio tones, old-fashioned spark-gap radio sounds, telegraph sounder click/clack sounds, or to a physical telegraph sounder connected to a serial port. The CW/spark-gap radio tones can be augmented by noise/QRN, static crashes, and realistic ionospheric fading. 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.

Morse Tools Discussion Group

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.

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 and Atom News Feeds and URLs

RSS and Atom feeds are similar and Morse News understands both formats automatically. These feeds contain digests of articles, most often news articles. It's beyond the scope of this document to describe these feed technologies, how to use them, how to find feeds, etc. Start with the Wikipedia articles on RSS and Atom if you want detailed info and go from there. Morse 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.

RSS and Atom Feeds

There's sort of an art to discovering the actual feed URL for RSS and Atom feeds. Sometimes it's enough to right-click on the RSS/Atom 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 news-type sources:

Yahoo! News - These are clean news feeds from Reuters, AP, and others and they result in clean telegraphic news.
Associated Press - Essential news from AP. There are over a dozen categorized feeds
Reuters - British newswire service, more world-oriented than the above services
The New York Times - Over two dozen news feeds of all types. Somewhat biased but well written.
United Press International - The classic newswire service.
The CBC News Network - Canadian Broadcasting Corporation world and Canada-oriented news. Works well for Morse messages.
CNN News - These work well in Morse News.
The Register - British crazy tabloid style reporting on information technology, tech hardware, etc. Challenging for Morse reading becuse of the unusual writing style.
Yahoo! Finance - Markets, companies, and commentary from one of Yahoo!'s best services. You can even get feeds on individual stocks.

Not all feeds will be usable in Morse News!

FacebookFeeding From Your Facebook Home

To get the RSS feed for your Facebook "home":

  1. Along the top of your Facebook page, in the blue bar, the globe icon is where you see your notifications. Click the globe and at the bottom select see all notifications.
  2. At the top of the Your Notifications page that appears, see Get notifications via: RSS. The RSS is a hyperlink to your Facebook RSS feed. As usual, right click and select Copy Link or Copy Shortcut (depending on your browser).

Stories made from Facebook notifications will be "from" FBK instead of RSS or Atom.

TwitterUsing Twitter to Feed Morse News

You can monitor your Twitter timeline (and much more) with Morse 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 News to access your Twitter account. This happens only once. Please note that Morse 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 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://username/timeline to read the traffic in Morse Code, where username is the desired Twitter account screen or user name.
  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://username/list?name=mylist to read the tweets from the sources in your list. Again username is your Twitter screen or user name. The disadvantage of this approach is that all of this news will also appear in your home timeline.

Advanced Twitter Features and Feed URIs

The Twitter reader in Morse News supports many forms of Feed URLs which can be used to feed various kinds of information from Twitter. In the URLs below, username is the screen or user name for the Twitter account you want to feed from:

twitter://username/timeline
The home timeline
twitter://username/user
Your tweets only
twitter://username/user?screen_name=abcdefg
The tweets of the user whose screen name is abcdefg.
twitter://username/mentions
Tweets which contain a mention of you
twitter://username/list?list_name=mylist
Timeline produced from your saved list named mylist
twitter://username/list?screen_name=abcdefg&list_name=alist
Timeline produced from the public list alist of user abcdefg
twitter://username/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://username/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).

Twitter Authentication - oAuth

Morse News uses the advanced and secure oAuth protocol to authenticate with Twitter. When you first use a twitter:// feed URL, you'll see your default browser open. At this point you may be asked to log into Twitter (if you didn't ask the browser to remember you). Eventually, you'll see a 7 digit PIN that you need to copy into the PIN window that Morse News shows. If it is correct, you'll be authenticated as the user that your browser is logged in as. From there on, Morse News will not need to re-authenticate during routine use.

If you have authenticated and wish to switch Morse News to a new Twitter account, just change the username part of the twitter:// URL. You will be led through the steps needed. You can save time by first logging into the new Twitter account with your default browser. This will allow Morse News to take you directly to the PIN stage.

Twitter URL for "Current User"

If you use a URL of the form twitter:/// (3 slashes, without anything in the username part) Morse News will interpret this as "current user". If Morse News has authenticated in the past, it will jsut continue to use the last used Twitter account. If it has not logged in, it will take you theough the oAuth dance with whatever account is logged into your default web browser, or if your web browser is not logged into Twitter, it will ask you to log into Twitter in your browser first. After that, the username check will be skipped, so it will take whatever account you logged in with. This form is most useful in a feed list (as described below).

Multiple Feeds - Aggregation

To make things even more interesting, you can read multiple RSS, Atom, 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/Atom 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 News feed list for Joe Mama
;
http://rss.upi.com/news/news.rss
http://rss.cnn.com/rss/cnn_crime.rss
twitter:///timeline                         ; My home timeline (note the "current user" form of URL)

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. Note that the Twitter URLs in the list are of the "current user" form. You cannot mix Twitter URLs for diffierent accounts in a feed list, therefore it's best practice to avoid putting the username in the Twitter URL altogether.

If you include a file:// URL of a file of type .xml, .rss, or .atom it is assumed to contain RSS or Atom 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 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 feed(s). 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.

NOTE: You can set the speed controls as high as 60 WPM. The program will produce precise timing on most computers at or below 35 WPM. Above that, you're on your own. For telegraph sounder audio, as well as with real sounders, results above 35 WPM will probably be unsatisfactory.

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.

Sound Options & Selecting the Sound Output Device

On the main window there is a little hyperlink Sound cfg. This opens the Sound Settings window where you can select the Windows sound device that is used for audio output and the CW tone envelope rise and fall times. If you want to use a sound output device ("sound card") other than the one currently selected in Windows, you can select it in the dropdown list. To use the one selected in Windows, select Primary Sound Driver.

The other controls in this window allow you to create realistic sounding Morse Code radio over HF. You can vary the level of background noise/QRN, as well as enable and disable static crashes and ionospheric fading. When fading is enabled, the average level of the signal (as controlled by the volume slider on the main window) will decrease by around 5dB. In the real world, the signal level can increase and decrease from it's ground-wave equivalent due to constructive and destructive addition of fading components. The fading profile is a baseband Rayleigh fading envelope generated by a MATLAB program. The fading values, if you're curious, are contained in the file fading.txt and there are 2048 of them. Their values range from just above zero to 1.0 max. There is no AGC so when the signal fades, the background will not increase in volume.

Command Line Options

You can use a command line to run the Morse RSS News program. With command line options, you can specify the feed URL as well as tell it to start without you needing to click the Start button:

-f or --feedurl xxxxx
Force the feed URL to be xxxxx instead of the last one used.
-s
Immediately start the Morse Code feed

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 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 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

Advanced Settings

There are several things that cannot be controlled through user controls, but instead must be set via editing the program's configuration file. This is located in the same folder as the program, ans is called MorseNews.exe.config. This is an XML file and must be edited carefully! The following settings can be changed via editing this file:

IgnoreRetweets
Normally True, this controls whether tweets containing " RT @" are suppressed. These re-tweets are commonly off-topic for the person/service you're following. If you want them, change the True to False.
BreakTime
The time between morse code messages, in seconds. Normally this is 5 seconds. You can change this to modify the quiet interval between successive messages.
DebugTracing
Normally True, this turns off the extensive debug tracing in MorseNews when set to False. See the next section.

Debug Tracing

If the advanced setting DebugTracing is set to True, the program will send quite a bit of tracing information to the Windows diagnostic tracing system. The easiest and most flexible way to monitor the tracing information is to use the free SysInternals DebugView tool. Here is a Sample of the Tracing output.

Administrivia

Morse 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.

The ionospheric fading profile was generated for 640 seconds at a 4 Hz sampling rate using a Young's Model Rayleigh Fading simulator run in MATLAB.

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 News is licensed as open source. Sources are available at the Morse RSS News Tools SourceForge Project.


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