A simple morse tutor using the Koch method.
C++ Makefile CMake NSIS Other
Latest commit 5ceff39 Dec 13, 2015 @hmatuschek Update README.md
fixed typo.
Failed to load latest commit information.
dist Prepared release of verion 3.2.3 Dec 13, 2015
doc Added example screen shots. Oct 24, 2014
shared Added prosign support. Oct 24, 2014
src Added group-size selection to random tutor. Dec 13, 2015


KochMorse -- A morse-code tutor

KochMorse is a simple morse-code tutor using the Koch method. It is written in C++ and uses Qt5 for the graphical user interface (GUI) and PortAudio as its audio backend.

Koch Morse in action.

KochMorse runs under Linux, MacOS X and even under Windows. See the Install wiki page for details.


Below, you will find a list of features of the current KochMorse release. The highlighted features are new features compared to the "old" python implementation.

  • A simplified GUI -- All settings are now accessible via the Preferences dialog.
  • A morse tutor using the Koch method (of course).
  • A random morse tutor -- Allows to select a set of characters and prosigns for practicing.
  • A QSO tutor -- Selects a random QSO from a set of over 900 for practicing.
  • Different speed of characters and pauses. This allows to practice the reading in full speed, while having enough time to write the character down.
  • Different tones for dashes and dots.
  • Noise audio effect -- Increases the difficulty to read the morse code for practicing.
  • Fading audio effect -- Periodically fades the morse signal for practicing. In conjecture with the noise effect, it simulates the conditions on HF bands pretty well.



This is a C++/Qt reimplementation of my "old" python morse-code tutor (also called "kochmorse", https://kochmorse.googlecode.com). As the "old" implementation relied on ALSA for sound output, it was restricted to Linux. This reimplementation now uses PortAudio for the sound output and the GUI is implemented using Qt5, it is therefore more platform independent and runs under Linux, MacOS X and Windows.

For this reimplementation, I simplified the GUI a lot. All settings are now "hidden" in a preferences dialog. All features of the "old" version are now present in this one and even some more...