A webbased game and podcast focused on learning to "head copy" morse code.
This podcast is released twice a day and includes the latest news headlines, delivered in Morse Code at the selected speed (Listen to an example).
- 10 WPM RSS / iTunes
- 15 WPM RSS / iTunes
- 20 WPM RSS / iTunes
- 25 WPM RSS / iTunes
- 30 WPM RSS / iTunes
- 35 WPM RSS / iTunes
Most of the credit goes to Stephen C. Phillips for his excellent Morse Pro library which I use to create the mp3 files for the headlines. Credit also goes to Kurt Zoglmann who open sourced Morse Code Ninja where I was able to get great word/callsign/training lists from.
- Should be optimized for mobile users
- No keyboard entry, multiple choice
- Should work on a variety of devices and mobile browsers
- Ideally should not require an application to be installed
- No signup or login, user can get started immediately
- Should encourage headcopy (make the user wait until completion of callsign or phrase to answer)
- Free of any requirement for a backend server (static website)
- Low data usage for mobile users
- Should be hostable with almost no cost
- Scoring/gamification should encourage the user to shoot for a long term goal (e.g. decode 50k characters) versus getting discouraged by periods little or no improvement.
- Should be easy for developers to implement new game modes and game data (e.g. Top 100 words, DXCC100 Calls, etc.)
- Open source and free forever!
- Node >= 17.x
The easiest way to get started is to fork this project and open up a Github Codespace. It should work out of the box.
If you want to develop on your own machine, use the following:
git clone
cd morse.mdp.im
yarn install
yarn dev
- Open your browser to localhost:3000/head-copy/
This is both a web application and a podcast generator.
- Node >= 17.x
- ffmpeg installed
All deployment is scheduled and handled via Github Actions, however, it's possible to deploy a podcast to your own AWS S3 bucket using the following:
Assumes you have the required env variables (NEWSAPI_KEY and AWS keys)
yarn ts-node podcast/bin/new_podcast.ts -w 15 -f 25 --prefix podcast morse.mdp.im
yarn ts-node podcast/bin/update_rss.ts -w 15 -f 25 --prefix podcast morse.mdp.im
yarn ts-node podcast/bin/update_headlines.ts --prefix podcast morse.mdp.im