Personal Page of DM3MAT

Kochmorse 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).

Screen shot of Koch Morse in action.



Below, you will find a list of selected features of KochMorse:


KochMorse runs under Linux, MacOS X and even under Windows and can be downloaded from my GitHub page.

How to use KochMorse

The KochMorse application is intended to teach the morse code rather than for practicing it for specific occasions. For the latter case there are other more specialized applications like Morse Runner.

Learning CW with the Koch method

KochMorse allows (as the name suggests) to learn reading CW using the Koch method. There are basically two ways to learn CW. One way is to memorize the Morse-code table and start with a very slow speed like <5 WPM. Once you master that speed you increase the speed slowly. This method has the advantage to learn the code very quickly (within a couple of days) but the disadvantage that you build a lookup table in your brain that maps a series of dits and dahs to a character. Once you reach a speed of about 10WPM, this lookup table method gets unfeasible. You are simply not able to reliable read and remember the pattern of individual dits and dahs for higher speeds.

To overcome this speed limit, one has to avoid this lookup table at all. For typical CW speeds on the band (> 15WPM) you need to associate a rhythm with its character in a reflex like manner. The Koch method tries to do exactly that. You will learn the rhythms of the characters from the beginning at full speed (e.g., between 15 and 20 WPM), way to fast to read individual dits and dahs. Although it takes much longer to learn this reflex-like association of rhythm and character compared to memorizing a lookup table, in the end you will likely be faster in achieving the desired on-the-air speed.

The Koch method works the following way: When you start, you will hear five lines of five groups, each five characters long consisting of only two letters (K and M) at full speed (the first lesson in KochMorse is called "2" because it contains two letters). You need to write the characters down. If you start with a character speed of >15WPM you may not have enough time to write them down. You may then select a lower effective speed in the code settings menu. This will increase the pauses between characters and words allowing you the write the characters down (I learned at 18/15WPM). Once a session is completed you compare the send characters with those you have written. Once you are able to correctly copy 90% of the characters send, you can start the next lesson. If not, just repeat the current lesson.

Frequently, I get feature requests to implement a keyboard input of the heard characters and an automatic comparison of the characters send and keyboard input. I haven't implemented it (yet) for two reasons: First, I consider CW an analog art. That is, you should be able to have a CW QSO without a computer. Second, you will need a brief pause between sessions. Although somewhat cumbersome, the comparison of your notes with the text send gives you that pause. Moreover, once you are able to read CW with pen and paper, you are also able to hack the characters into a keyboard.

With each new lesson a new letter and later number or prosign is added. In the beginning you will proceed very fast. It is likely that you will reach lesson 5 within a couple of hours. This does not mean that you have learned the first five characters already. All you have learned is to distinguish these five characters. With an increasing number of characters it gets increasingly difficult to distinguish them. Around lesson 10, you will notice a considerable slowdown in your progress. At this point you start to actually learn the character rhythms. But do not be afraid of that plateau, you will keep that now slower learning rate. I actually got a wee faster towards the end again.

Please note that the suggested 90% threshold to proceed to the next lesson is not a universal constant. It is a rather arbitrary trade-of between proficiency and frustration. If you are patient, you may increase it to 95%. This implies that you will need more time to complete a lesson, your accuracy however will be improved.

Around lesson 20 you may notice that you start to regularly confuse certain character, for example s, h and 5 or u, v and 4 even if none of these characters are new. This was really frustrating for me as it slowed my progress. To practice specific characters you may use the Random Tutor. This tutor allows you to select characters you want to practice more intensively. This helped me to improve on these particular characters.

With increasing lesson numbers, you will notice that new characters are getting send less and less frequently. To increase the frequency of new characters you may use the prefer last chars option in the Koch tutor settings. You may also enable the repeat last char option. This will send the newest character five times before the session starts to get the rhythm of the new character. With these tools and some daily practicing of not more than an hour you should be able to learn CW at on-the-air speeds within 1 to 3 months (you mileage may vary).

How to continue

Still learning the code, I found it very demotivating to listen to CW on the air. Not knowing the complete alphabet, I lost my concentration whenever an unknown character was send. Consequently, I was not able to follow any QSO, not even partially. Once I knew the complete alphabet, I was able to follow some QSOs, but found it very exhausting to write everything down. For having a relaxed QSO, you will need to achieve a level of proficiency that allows you to follow typical QSOs without noting everything down. Ask any experience CW operator: They do not read individual characters but rather complete words.

Once you learned the code, achieving this level is easier than you might think. Typical QSOs follow a very specific scheme. Knowing that scheme by heart, makes large parts of the QSO very predictable. Moreover, it consists mainly of very few common abbreviations. Hence, the next step is to learn reading these common abbreviations without writing them down. In the end you will only note Calls, RSTs, QTH and Names in a typical QSO, while just reading along for the rest. Achieving this level of proficiency turns CW into fun.

The KochMorse application provides several tutors that can be used to practice reading common QSOs and frequently used abbreviations. Starting with version 3.3.0, KochMorse features a text generation mechanism that allows to generate random QSOs based on a set of rules. These QSOs follow the common scheme and vary slightly in the abbreviations being used. I personally found that particular tutor very helpful. In the end you will note that you do not need to understand every character send to follow a QSO.

And most important: Do not over-practice your skills. The objective is to get on the air

Learn to transmit

You can also use KochMorse to practice sending CW. There are two Tutors you may use. The transmit tutor just listens on the selected audio input and tries to decode whatever you send. Note: You may need to adjust the detector threshold depending on your input level. The decoder is relatively strict concerning your timing. With this you can be sure that if the decoder can read your code any operator will certainly too. Just pick some newspaper article or any text and try to send it. Please not that your Morse code settings also apply for the decoder. You may need to reduce the speed.

Once you are able to transmit relatively reliable you may try the QSO Chat Tutor. This tutor is a combination of the transmit tutor and the randomly generated QSO tutor. It tries to read the text you have send and will answer. It interprets any single "k" character as an request to reply as in


I found that tutor very helpful in practicing not only transmitting but to learn the typical QSO structure and common abbreviations. In the end you will not only read entire words in CW you will also send them without thinking about every single character.

Prepare for your first QSO on the air

To reduce your stress level for your first QSOs you may want to prepare a cheat-sheet: That is, just open an editor and write a typical QSO down. Leave some space for everything that may differ from QSO to QSO like call sign, RST and name of the other station but fill in your call, name, QTH, rig etc. This should easily fit on a single DIN A5 page. Laminate it and put it on your desk. In your first QSOs you will certainly be very nervous and this cheat-sheet takes the burden to remember what you want to send and how to spell it. You can just concentrate on sending clean code. After only few QSOs, you will use that cheat-sheet less and less. You have now memorized the typical QSO structure and typical abbreviations. That is all you need. You have done it. You became a CW operator. Have fun!

Best & 73