Morse News periodically reads one or more RSS (news) feeds, and/or Atom (news) feeds. It then 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 NEW features if you skip reading this document!
Quick Start
Strategy for Reading News
About RSS and Atom
Sources of RSS and Atom Feeds
Managing the Feed List
The Headline / Full Article Checkbox
How to Add Feeds to Your List
How to Edit Feeds Already in the List
Authenticated Feeds
Feeding RSS and Atom From a File
Multiple Feeds - Aggregation
Feeds with Enhanced Capabilities and Processing
Google News Multi-Source RSS Feeds
Google Custom News Feeds
Feeds From RSS.app
Maurizio's Random Word Feeds
Article Control
Morse Code Speed Control and QRQ High Speed
Sound Output Options
Noise/QRN (and customizing)
Fading/QSB (and customizing)
Sound Output Device & Envelope Shape
Command Line Options
Using a Real Telegraph Sounder
Morse Code Encoding Reference
Debug Tracing
Administrivia - Credits
Version 6.1 Release Notes
Version 6,0 Release Notes
Version 5.3 Release Notes
Hover the mouse over the controls on the program's window to get hints on what they do.
The idea is to start this app and let it transmit all of the articles seen within the last Story Age (min), which defaults to 360 minutes, or 6 hours. After this is complete it will periodically check and send new stories as they are posted by the service. So you will get "surprise" news with quiet periods between. You can regulate the frequency of reading for new stories with the Max Wait setting.
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 includes many useful news sources already in the Feed List. 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 an RSS/Atom icon or hyperlink 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 or link is another trick. Here are some news-type sources, most of which are lists of news feed categories:
Google News - Lots of possibilities including constructing your own custom feeds, see details below. Morse News is smart about these feeds.
Fox News - American media company. Their multiple RSS services are well balanced and curated.
Sky News - The British news giant has a great reputation in the market and is one of the most trusted news sources.
United Press International - The classic news wire service. Excellent stories, good copy, maybe the least biased of all services.
The New York Times - Over two dozen news feeds of all types. Often strongly biased but well written.
US News & World Report - American media company that publishes news, consumer advice, rankings, and analysis.
The CBC News Network - Many feeds. Canadian Broadcasting Corporation including world and Canada-oriented. 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.
US National Weather Service - Public Alerts (use the Atom feeds). The included NWS link is for the entire US land areas. They have by state and other regions.
NOAA NWS Storm Prediction
Center - Tornado & Severe Thunderstorm watches and warnings, and more. The included one omits the fire weather.
RSS.app - Paid service ($10/mo) that can generate RSS feeds from just about anything, even an X (Twitter) public feed. Worth exploring.
Morse News is smart about X feeds from RSS.app and will deliver you a nice clean Morse news feed from any X public feed (by X URL). See below for details.
The feed list is configurable by you. To access these features, right click on the feed list and select from the popup menu. You can add, edit, and delete feeds. Each feed can some from an on line RSS source via URL (the most typical), from a local file containing RSS, or from a local file that contains multiple URL and local file feeds. The latter allows you to aggregate info from multiple sources.
Each feed has an option that controls how Morse News handles the article headline and detail copy. The checkbox "Send both headline and article body" is in the feed editing window used for adding and editing feeds. Most feeds will have a short headline and a longer article body. You can choose, for each feed, whether to receive just the headline or both the headline and the body. Some feeds will have identical headline and body; obviously, for these feeds, set the feed to send only the headline.
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.
Note: If you include a short name in parentheses at the end of your feed name, it will be used instead of RSS or ATM as the "from" in each message preamble. For example, if you supply a feed name of "UPI World News (UPI)" the messages will begin with DE UPI instead of DE RSS or DE ATM. The default feeds already have this in their names.
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. See Feeding RSS And Atom From a File below. 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 the headline-only or full mode, 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.
Note: If you include a short name in parentheses at the end of your feed name, it will be used instead of RSS or ATM as the "from" in each message preamble. For example, if you supply a feed name of "UPI World News (UPI)" the messages will begin with DE UPI instead of DE RSS or DE ATM. The default feeds already have this in their names.
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 and Atom 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. 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 ; https://news.google.com/news/rss/headlines/section/topic/WORLD?ned=us&hl=en&gl=US https://www.latimes.com/local/rss2.0.xml https://rss.upi.com/news/top_news.rss file:///C:/a/b/c/file.xml
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. This is the file containing the feeds to use.
Morse News has some enhanced processing capabilities for Google News feeds and for RSS.app feeds generated from Twitter public timelines.
Google has extensive support for RSS news feeding. The three most popular topics are already in the default feed list. What makes Google unique is their multi-source articles. Each article has a headline from one source (e.g. Associated Press), and the body of the article may include copy from multiple sources (e.g., CBS News, Barron's, Reuters), all covering the same story but from different angles. If you select the Headline and Body mode you will get the headline and then the copy from other sources, beginning with a repeat the headline copy (sorry), separated by /BT/ breaks. Look at one of these in your browser to see what Morse News sifts through to accomplish this.
Google has the ability deliver customized content like local news for your area, specialized topics, all sorts of useful things. Here's how to make up a URL to deliver what you want. You can start with the basic and add options. 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 How to get Google news RSS feed URL?. Here is another article covering the same thing Google News RSS: The missing documentation. I repeat some of this info here in case both of these articles go off line. This info was just verified in Nov 2024.
Note: The custom/specialized feeds described below can sometimes produce a low number of stories and some may be days old. If you see no stories sent, use the Debugging display from DebugView (see below) to see what's going on. You may find that making up an aggregated feed from multiple of these specialized feeds will give you a decent flow of news.
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. Example:
https://news.google.com/news/rss/headlines/section/topic/TECHNOLOGY
By any/custom topic
Once at https://news.google.com, scroll down to "For You", then use the "Customize" button in the lower right corner to select some topics you're interested in. Once you have done that, close the popup. Let's say you selected Paleontology. Scroll down to "Your Topics" and click on Paleontology. Identify the topic ID in its URL, e.g. CAAqIQgKIhtDQkFTRGdvSUwyMHZNRFZ5YW13U0FtVnVLQUFQAQ, and use the format:
https://news.google.com/rss/topics/{id}
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.
For example, to get Paleontology:
https://news.google.com/rss/topics/CAAqIQgKIhtDQkFTRGdvSUwyMHZNRFZ5YW13U0FtVnVLQUFQAQ
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 /geo/AZ will give a feed "Arizona - Latest". Very cool. Note that your selection may not include recent posts and be "too old" per the Story Age setting (see below). Example for Canada:
https://news.google.com/news/rss/headlines/section/geo/Canada
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. For example ?q=allinurl:reuters.com. Reuters' own RSS feeds super slow and Reuters themselves are a low-volume service. It's included in the default feeds! Look at news sources in your web browser, note the root URL (without the https://) and try it. Compare with the native RSS furnished by a news service, you may find that the relayed stories are cleaned of URLs and adverts. Be careful though, you may get stuff you don't expect if you put "just anything" into the news_service, instead of a news service domain name!
By Country and Language
When testing in your browser you may notice that Google has appended additional parameters like hl, gl, and ceid. These are appended to any of the URLs described above. With these you can produce feeds in many languages and their regional variations:
https://news.google.com/rss?hl={language}&gl={country}&ceid={country}:{language}
These language and country codes can be found on this Country Code Language List and other places (they are WWW standards). For example, to produce a Technology feed in French Canadian:
https://news.google.com/news/rss/headlines/section/topic/TECHNOLOGY?hl=fr&gl=CA&ceid=CA:fr
will produce a feed titled "Technologie - Les plus récents - Google Actualités", a French Canadian news feed. You'll also see the hl converted to fr-CA and that may be enough. Play with it and test in your browser. Note that languages using non-Roman alphabets, like Russian, will produce nothing because the Cyrillic alphabet is not in the Morse tables. Also be aware that Google isn't always able to provide a feed in a given language and country, but it's amazingly flexible.
The RSS.app service can create an RSS feed for you from just about anything like X, Instagram, and dozens of other places, and you can build your own! The resulting live RSS feed URL can be given to Morse News and it will feed just like any other RSS source. It is a paid service (basic level $10/mo). Note that you must save your feed before the URL to the RSS appears. You have limits on the number of feeds and the number of articles per access, and for more money you can get more. The base level will almost certainly be plenty! Generally these will benefit from inclusion of both the headline and body being included (the checkbox in the feed edit window). Note that RSS.app may not feed the most recent info. Comparing its Associated Press feed with the one from Google News, shows the Goodle feed to be much more complete and lively. Just test in your browser.
Morse News has special processing for X (Twitter) feeds generated by RSS.app. Only public feeds (accessible via an X URL like https://x.com/FoxNews) are available for this. If Morse News recognizes an X feed produced by RSS.app, it will specially clean up the feed, removing noise and other things, giving you a fairly clean Morse output. Set the Headline / Body checkbox unchecked (no body, headline only). If you want a good laugh and see a bunch of "woah" and "wow" messages try https://x.com/elonmusk.
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) through Morse News. His feeds are included in the default list of Morse News. 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!).
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". 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 360 (minutes) means the same story won't be sent via Morse unless it hasn't been seen for six hours. The Clear Cache button immediately deletes all to the "seen" titles instead of waiting for each to expire.
The Max Wait setting establishes the maximu time that the app will wait before trying to get new articles. If the time spent sending the previous batch of articles exceeds this time, the app will not want at all, and instead fetch a new batch of articles immediately.
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 message 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.
If you raise the QRN slider, it will add typical atmospheric noise/QRN. This comes from the file QRN.wav which was recorded as PCM signed 16 bit, 44100Hz, 705Kbps, mono. The sound was recorded from an HF receiver with typical SSB bandpass in the Summer on an empty frequency at around 7MHz. It is 3 minutes long and loops. You can record your own with (e.g.) some annoying QRM even and use it in place of the supplied one.
When QSB/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 QSB.txt. There are 2048 of them, comma separated, and they are applied at a rate of 4 per second, so the "cycle" time of QSB is 512 seconds. 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. If you wish, you can create your own QSB file.
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. Most PCs as of now (2024) will be able to handle Morse output up to 35 WPM with the native sound system.
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 on line 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. Prior to sending, all article text is filtered to remove characters not in the encoding tables. This gets rid of Cyrillic, Arabic, Chinese, etc. characters that may be present. This is particularly needed for the X feeds from RSS.app.
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. Also enable the Clock Time option in DebugView. 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 are samples of the normal and extended level tracing outputs.
Minor release:
Major release:
Minor Release: