Morse News periodically reads one or more Twitter feeds & direct messages, RSS (news) feeds, and/or Atom (news) feeds. It hen 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 document!
Quick Start
How to Add Feeds to Your List
How to Edit Feeds Already in the List
Using Twitter to Feed Morse News
RSS and Atom News Feeds and URLs
Feeding RSS and Atom From a File
Multiple Feeds - Aggregation
Article Control
Morse Code Speed Control and QRQ High Speed
Sound Output Device and Options - HF Fading and Static
Command Line Options
Using a Real Telegraph Sounder
Morse Code Encoding Reference
Debug Tracing
Administrivia - Credits
Version 5.0 Release Notes
Version 4.5 Release Notes
Version 4.4 Release Notes
Version 4.3 Release Notes
Version 4.2 Release Notes
Version 4.1.1 Release Notes
Version 4.1 Release Notes
Version 4.0 Release Notes
Hover the mouse over the controls on the program's window to get hints on what they do.
Please Note: Before ignoring 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. There is a lot you can do. Many news agencies and portal sites are shutting down their RSS feeds and instead using Twitter for their news alerts. Twitter is the up and coming way to do this!
The list of feeds can be expanded to include feeds you add. Right click the feed list and select Add new feed... The form that appears has fields for the name of the feed and the URL. You can give the new feed any name you want and it will show in the feed list with that name. The URL is usually the internet address of the feed (see following sections). Once you have entered the feed URL, you must use the Test Feed button to check the feed for connectivity and content. Only if the feed is in RSS or Atom format will the OK button light. You can add a feed that comes from a local file via the Browse... button. Follow the preceding link for details. You will still need to use the Test Feed button. Finally you can have a file of feeds again via the Browse button (this time for files of type .txt). See the section Multiple Feeds - Aggregation below.
Right click the feed list and select Edit current feed... The Add or Edit a Feed form appears and you can change both the name and the URL. Be aware that if you change the name, it will replace the name in the list, not add a new one. To add a new feed, see the previous section.
With news services such as Associated Press shutting down their RAA/Atom feeds Twitter is the up and coming way to monitor news and other things. It is far more flexible and powerful. You control what is in your feed, it can come from multiple sources, and you control it via your Twitter app or web browser.
You can easily monitor your Twitter time line (and much more) with Morse News. Assuming you have a Twitter account, all you have to do to monitor your home time line is to select the Twitter User Timeline feed from the list. Try it! The first time you do, your browser will be started and you must log in to the Twitter account you want to use as the source of news. Then you will be given a PIN for Morse News. Copy that from the browser and paste into the PIN form that will appear in Morse News. That's it. This will happen only once. From then on, Morse News will use that Twitter account for news or direct messages. To force it to change, hold the SHIFT key down when clicking Start. See Twitter Authentication below for more details. Please note that Morse News requires write access to your Twitter account, as this is required for access to your direct messages. Morse News has no logic to post tweets or make any changes on your behalf!.
Even if you don't use Twitter, it's a useful way to get news of multiple specialized topics. There are a few ways to do this:
The Twitter reader in Morse News supports many forms of Feed URLs which can be used to feed various kinds of information from Twitter. Note that your replies are not included. In the URLs below, user name is the screen or user name for the Twitter account from which you want to feed:
There are several options that can greatly increase the flexibility and power of Twitter feeds. Note that not all of these options apply to all of the URI types above. The specific ones are given in examples above. The syntax for including options is the standard W3C URL format: A question mark '?' is appended to the end of the URL path, followed by one or more options in name=value format, separated by an ampersand '&'. You can see this in the examples above.
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. If you have 2-factor authentication set up on your Twitter account, the PIN step will be followed by another step in which your 2FA code will need to be entered. 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 user name 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 (and optional 2FA) stage.
NOTE: If you encounter Twitter login errors, you probably have older credentials, and you need to re-authenticate. Hold the SHIFT key down when clicking Start on a Twitter feed to force re-authentication. You can also hold SHIFT when clicking Start to force re-authentication for "current" login to change to a different "current" twitter user.
If you use a URL of the form twitter:/// (3 slashes, without anything in the user name part) Morse News will interpret this as "current user". If Morse News has authenticated in the past, it will just continue to use the last used Twitter account. If it has not logged in, it will take you through 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 user name 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).
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 Associated Press and Google RSS News feeds. It comes pre-set with several of these feeds. Of course you can add your own feeds and they will be remembered in the list. If you want to reset the list to the original set, right click and select Reset to original list.
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. Not all feeds will be usable in Morse News! Some (e.g., CNN) just feed headlines with links to the full story. The meat of the story is not in the RSS. Here are some news-type sources, most of which are lists of news feed categories:
Google News - Lots of possibilities, see details below
US National Weather Service - Public Alerts (use the Atom feeds)
NOAA NWS Storm Prediction
Center - Tornado & Severe Thunderstorm watches and warnings, and more. This one omits the fire weather.
United Press International - The classic news wire service. Excellent stories, good copy, maybe the least biased of all services.
Reuters - British news wire service, more world-oriented than the above service.
The New York Times - Over two dozen news feeds of all types. Often strongly biased but well written.
The CBC News Network - Canadian Broadcasting Corporation world and Canada-oriented news. Works well for Morse messages.
The Register - British crazy tabloid style reporting on information technology, tech hardware, etc. Challenging for Morse reading because of the unusual writing style.
Google has extensive support for RSS news feeding. You can start with the basic and add options. Here are the URL formats. In the examples, omit the {}, they indicate place holders. Test the URL in your web browser first. Substitute + for spaces in phrases. Here is an excellent article Google News RSS: The missing documentation. I repeat some of this info here in case this article goes offline in the future. This info is as of June 2021.
Top News
https://news.google.com/news/rss
By major topic
https://news.google.com/news/rss/headlines/section/topic/{topic}
where {topic} is WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE, or HEALTH.
By any/custom topic
Once at https://news.google.com, browse to the desired topic, for example this. Identify the topic ID in its URL, e.g. CAAqIQgKIhtDQkFTRGdvSUwyMHZNR056T1hFU0FtVnVLQUFQAQ, and use the format:
https://news.google.com/rss/topics/{id}?hl={lang}
Note: The trick here is that you find your topic on Google News and add the /rss after the https://news.google.com/ and also look at the language part. Actually adding the /rss can work on other categories too. Note that the long topic ID may have a limited lifetime. If your feed stops working, return to the regular Google News page in your browser and use the possibly changed topic ID.
By geolocation
https://news.google.com/news/rss/headlines/section/geo/{place_name}
where {place_name} can be a city or other geographic location. If the name contains spaces, use a + in place of the space, for example ?q=Los+Angeles.
By search query
https://news.google.com/rss/search?q={query}
This one is very useful to narrow your subject matter, for example specify aviation. If you want to use a phrase, separate words with + instead of a space, for example ?q=Portland+Police.
By News Service
https://news.google.com/rss/search?q=allinurl:{news_service}
With this format, you can cause Google News to "relay" news from another service. Try apnews.com, bloomberg.com, or upi.com. Look at news sources in your web browser, note the root URL (without the https://) and try it. This is sort of amazing. Compare with the native RSS furnished by a news service, you may find that the relayed stories are cleaned of URLs and adverts.
Radio amateur Maurizio Manini IK2CNF has put several web based RSS feeds of words and other info of interest to Amateurs who use CW (Morse). His feeds are included in the default list of Morse News 4.0 and later. If you go to his web page RSS Code - RSS random word generator you will see details about each of these feeds and additional options including support for ID numbers with which you can check your work after the fact. Our thanks go out to Maurizio for this!! Check it out in case he has added additional feeds (which you can add to your list!).
Some RSS and Atom feeds require a user name and password. Morse News accepts URLs of the form
http[s]://user name:password@domain.name.here/...
This info is translated into HTTP authentication in the request. Most of the time this will work. Rarely, the feed site will have some sort of exotic encryption or cookie-based authentication, and Morse News won't work with that.
If you specify a URL of the form file:/// with a specified file name ending in .xml, .rss, or .atom, it is assumed that the file will contain RSS or Atom info, which will be sent as Morse as if it came in over the internet. The file(s) will be re-read according to the usual refreshing pattern of Morse News, so the files could contain variable info. Perhaps you have a source of data or news that you want to turn into RSS with other software. You can have this info sent as Morse code. Use the Add New Feed form, and the Browse... button to locate the file on your disk. The correct format of URL will automatically be added to the URL field.
If you are making a feed list (see next section) Note that Morse News expects the file URL to be of this form:
file:///C:/a/b/c/file.xml
Specifically note the three slashes, the ':' after the drive letter, and the forward slashes '/' in the path (different from Windows path syntax). The file extension is not used to determine whether the contents are RSS or Atom, Morse News looks at the contents for that. Note that you cannot use Google Chrome or Firefox to test File:/// URLs. Each of these browsers have command line options for this however. Check with the browser documentation.
To make things even more interesting, you can read multiple RSS, Atom, and Twitter feeds, combining all of their articles into an aggregated Morse code 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 Browse.. button in the Add New Feed form opens a file browser with which you can select the feed list file (type of .txt). You can use ; as a comment introducer. For example:
; ; Morse News feed list for Friedrich Gerke ; http://feeds.reuters.com/Reuters/domesticNews https://news.google.com/news/rss/headlines/section/topic/WORLD?ned=us&hl=en&gl=US https://rss.upi.com/news/top_news.rss twitter:///timeline ; Web browser's logged in 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 URL in the example list are of the "current user" form. You cannot mix Twitter URLs for different accounts in a feed list, therefore it's best practice to avoid putting the user name in the Twitter URL altogether.
NOTE: You can put file:/// URLs into a feed list! Think of the possibilities!
NOTE: When using the Add or Edit Feed form you must use the Test Feed button yourself to check the URLs before the OK button will allow putting them into your feed list. Only URLs of type http, https, ftp, twitter, and file are allowed. Including a feed list in a feed list is not allowed! Note Twitter URIs can't be tested in this form.
Each time a feed (or a set of feeds) is read, it supplies a bunch of "recent" articles. They are sorted oldest to newest so they will be displayed in the order "received". Also, if feeding from a Morse News feed list, Any Twitter Direct Messages will precede other Twitter messages, regardless of time stamp. 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 300 (minutes) means the same story won't be sent via Morse unless it hasn't been seen for five 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 long interval like 15 minutes, you'll tend to get larger batches of messages less often.
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 land line and railroad telegraphers.
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 trade-off 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.
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 will need to reduce the tone envelope rise/fall time below the default 8ms (see next section). If you reduce it too far you will start to hear key clicks. This may be unavoidable for real QRQ at 50 WPM and above. Also, QRQ receiving can greatly benefit from the use of an ASIO audio driver. See the next section for info on ASIO and where to get an ASIO adapter for your existing sound card. For telegraph sounder audio, as well as with real sounders, results above 35 WPM will probably be unsatisfactory.
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.
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 drop down list. To use the one selected in Windows, select Primary Sound Driver. In addition, if your system has a special low-latency driver that conforms to the Steinberg Audio Stream Input/Output (ASIO) protocol, you can select that as well (though static, fading, spark gap and telegraph sounds are not supported). The advantage of ASIO is that, for high speed receiving (QRQ) the generated Morse audio is cleaner and more accurately timed. Even if your sound driver doesn't natively support ASIO, you may be able to reduce your sound feedback latency via the ASIO4ALL universal ASIO driver for WDM Audio.
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 Raleigh 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.
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:
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 Interface Techniques page. 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 Les Kerr, author of MorseKOB, for the following which is reproduced from his web site.
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-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 (specifically 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.
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 common parts available at Fry's or online for $10 or so. 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.
Parts List |
RS Catalog # |
TIP120 NPN Darlington transistor | 276-2068 |
10 K ohm 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 |
Serial port connector with sounder interface circuit inside
Every effort has been made to make the Morse encodings authentic and accurate.
Many accented characters are implemented, but not all. For example, those used only in the Esperanto language are not implemented. Some of the letters with different accents are encoded the same in Morse. The È (E with grave accent) is encoded per the Italian convention as opposed to the French. The Ì (I with grave accent) is encoded per the info given to me by Italian radio amateur Maurizio Manini IK2CNF. Unicode left and right single and double quotes are turned into apostrophes and plain double quotes respectively.
Morse Code (Wikipedia)
ITU Recommendation ITU-R M.1677 (PDF)
Stack Exchange article with extensive list of accented characters
French "Code Morse" Characteres Speciaux
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 land line and railroad telegraphers. Most punctuation is implemented. Punctuation not implemented are pound sterling, colon-dash, "not" code, and quote marks within a quotation. If you are interested in more about American Morse, please visit the Morse Telegraph Club web site. Note that Split-speed timing is approximated for American Morse mode. The actual overall WPM will not be exact; it will be a bit fast. For split speed in American Morse mode, the inter-character and inter-word space times are simply multiplied by the ratio of the character speed to the word speed (always greater than or equal to one).
American Morse Code (Wikipedia)
Telegraph and Radiotelegraph Codes - an Introduction (K. Miller K6CTW, PDF)
If you hold the SHIFT key down when starting the program, it will send 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. To see only the tracing from Morse News filter to category MorseNews. If you hold SHIFT + CTRL down when starting the program, extremely detailed tracing information will be produced. This extra info is probably not of interest to anyone but the author.
Here is a Sample of the normal level tracing output.
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.
Thanks to Maurizio Manini IK2CNF for his web page RSS Code - RSS random word generator. His random word feeds are included in the default feed list of Morse News.
The ionospheric fading profile was generated for 640 seconds at a 4 Hz sampling rate using a Young's Model Raleigh 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. Please note that John Samin, author of CW Communicator, has retired from supporting the program. However, a gent from Portsmouth England has put up a great CWCom support site called MorsePower.
Morse News is licensed as open source under a Common Public Attribution License. Sources are available at the Morse RSS News Tools SourceForge Project. This is actually a huge Visual Studio 2015 project with many components.
Internal Major Release:
Minor Release:
Minor Release:
Minor Release:
This is a substantial upgrade, especially to the Twitter capabilities. Please note that RSS is going away, so please give a look at using Twitter.