Comments (18):

#1 Svyatoslav March 17 2013

I have been wanting to learn Morse for a long time.

There is no Cyrillic and the Word file does not see.

#3 Mstislav June 10 2017

How to run this generator sound code Morse?

#4 root June 10 2017

The program understands the Cyrillic alphabet and reproduces it in Morse code, this can be checked by entering the Russian letter "X" (Xa) into the text box, the program will reproduce the signal indicating four points.

For loading and unloading, the program uses a simple text format. MS Word documents and others containing markup and various service information are not supported.

For the program to reproduce text from an MS Word document, the document file must first be saved as text file, then it can be loaded into "Morse Code Trainer".

To start working with the program, you need to download the archive, unpack it and run the "Morse.exe" file.

#5 Guzelia August 02 2017

The program starts with three F, is it possible to remove this function while the learning process is in progress?

#6 Alexander the Compromiser August 03 2017

Vik, the text can be saved in the .txt format of the Notepad program, I guess. From the Notepad program, text can already be inserted into Word.

#7 Anatoly January 23 2018

a stupid program starts to sing with f f f f not really that mind was not enough to write a normal prog

#8 Andrew April 10 2018

It's not a dumb program. Three ws and a space before the text is a mandatory rule. It says that the text will go now. Professionals know this. So get used to working by the rules.

#9 Andrew April 10 2018

You should start learning with a few letters at low speed. For example, V, L, S, D; then A, P, R, O. In the text field of the program, you need to write the text yourself from these first letters, dividing it strictly into groups of 5 characters (about 20-30 groups). As you master it, you will add letters and write texts with a predominance of these new letters, which will allow you to consolidate your skills in receiving new letters. As you practice, you will notice that it is easier and easier to write text. Slowly increase the transfer speed. You have to somehow reach for the speed. Yes, one more thing, you will train the ability to write text with a delay of several characters. That is, for example, the fifth letter already sounds, and you are just starting to write down the first one, and the rest are in your head. Such a lag will occur when the reception rate exceeds 25-30 groups per minute. At lower speeds there is less lag. All this will be done automatically. The text is considered accepted if it contains no more than 2 errors. Reception of 12 groups per minute - C grade, 16-good, 18-excellent. 30-35 - master of sports. But that's another song

#10 Andrew April 10 2018

Who else did not understand. You take letters by tune, and do not count how many dots sounded, but how many dashes. For example, the letter a is sung like "ay-daaa", b - "baaa-ki-te-kut", the number 9 - "paaa-paaa-maaa-muuu-tuk", and so on. On the Internet, all the tunes are

#11 Vadim September 10 2018

Great program, thanks a lot!

#12 Sailor October 25 2018

Class! Soon he served 30 years, at the end of the service he took out 34 groups easily! 3 years of round-the-clock training!
I tried it, my hands and uhi remember it. 24 group song!)))

#13 Alexander the Compromiser October 26 2018

Now, if when entering text document morse code was transmitted on the air, as with J2B, it would be better.

#14 Vladimir January 09 2019

Tried to copy text file via clipboard ( right click) but a portrait of the author appears. Is it possible to copy files to a record field?

#15 root January 09 2019

Hello Vladimir! Copy desired text to the clipboard, click the mouse in the window for entering text in the "Morse code trainer" program and press the key combination CTRL + V (paste the contents from the clipboard to the place where the cursor is now located).

#16 Seawar January 09 2019

Porada to the Pochatkivtsy - do not fill your head with the Cyrillic alphabet, start with the Latin alphabet.

#17 Sergey June 25 2019

Great program!

#18 Alexander the Compromiser June 26 2019

I downloaded the Morse_Trainer program itself. Can it be used as an automatic key?

The application "" is a very convenient way to learn Morse code in your free time, since studying on a computer is not very convenient, but a mobile device with the Android platform is in your pocket.

Purpose
Some people, for certain reasons, need knowledge of a secret language that has been used by intelligence officers and other special services since ancient times, and some people need knowledge solely for their own development.

The presented training application "" will help you quickly master such a language.

Interface and working principle
The educational free project is stylish and beautiful. Before the user appears a simple interface with a clear and concise menu. In total, the program is represented by ten main lessons, each of them contains three exercises.
1. "Memory" mode, where the user perceives the new presented sounds and new letters by ear.


2. Exercise "Reception". Here the user is invited to independently determine the sounds learned by ear.
3. "Transfer" mode. In this exercise, the artificial intelligence will suggest certain sounds that need to be transmitted.
As a convenient feature, it should be noted that the program fixes all the mistakes made and further focuses on the mistakes in order to consolidate knowledge and help remember them and not make mistakes in the future.

Additional mode
The developer also offers to study Morse code in a playful way.

There are also 10 lessons here, but they will already consist of 2 exercises: receiving and transmitting. In a game form, it is much easier for many to memorize new data.

Educational application "" is a unique project for mobile devices with operating system Android, which will be useful and interesting to many.

September 24, 2015 at 11:18 am

Program for generating Morse audio code

  • programming,
  • C++ ,

Recently, I have been studying Morse code with the help of this program. But it is designed to study the codes of Cyrillic letters, which is irrelevant in modern radio communications (everyone uses the Latin alphabet, except for our valiant army).

As a tool for implementing the idea, C ++ was chosen in conjunction with Qt.

Main idea of ​​the program

The atom (unit of time) of the Morse code is a point, relative to it the duration of all other elements is formed:
  1. A dash equals three sounding dots;
  2. A pause between elements of one symbol (sign) is one silent dot;
  3. Between the signs - three dots;
  4. There are seven dots between words.
As you can see, any code based on Morse code can be represented as a set of sounding and non-sounding dots: I started from this idea, and this solution seemed to me quite original.

The original implementation

In the first version of the program, the combination of sounding and non-sounding points was stored as a vector with boolean elements, where true corresponded to the inclusion of sound, and false- shutdown.

As you already understood, to get the final signal, I just “pulled” the sound with some delay (using a timer equal to the duration of a point in milliseconds) with an endlessly playing .wav file with a sine recording. But this approach had a significant disadvantage and it consisted in the fact that each point had to be loaded separately using an overloaded operator or a special method. Because of this approach, I had to write a separate macro for each letter (like this - #define I DOT<< false << DOT) и создать огромный жуткий switch to play the passed string. It was awful, but if you're curious, you can check out
with the first version of the program (I did not manage to fully upload the local repository to GitHub - only the latest version).

A piece of a creepy switch:

bool Morse::StringToMorse (QString &line) ( line += "\0"; for (int i = 0; i< line.size () - 1; ++i) { switch (line.at(i).unicode ()) { case "A": *this << A; if (line.at (i + 1) == " ") continue; else *this << MINI_SPACE; break; case "B": *this << B; if (line.at (i + 1) == " ") continue; else *this << MINI_SPACE; break; // И так далее


And this is how the sound turned on and off (actually, the generation of the sound code):

void Morse::PlayLinePoints () ( QTimer::singleShot (duration_point_, this, SLOT (Mute ())); sound_.play (); ) void Morse::Mute () ( if (line_points_.empty ()) ( / /Stop playback sound_.stop (); return; ) if (line_points_.at (0)) ( //Turn on the sound sound_.setMuted (false); line_points_.remove (0); QTimer::singleShot (duration_point_, this, SLOT (Mute ())); return; ) else ( sound_.setMuted (true); //Turn off the sound line_points_.remove (0); QTimer::singleShot (duration_point_, this, SLOT (Mute ())); return; ) )

final version

These macros turned out to be very cumbersome, and my perfectionism could no longer look at these monstrous constructions. After thinking a little, I came to the conclusion that I have a good idea, but storing codes in the form of macros is very inconvenient and if you solve this problem, then everything will be fine. As a result, QMap was used to store codes:

// Stores the appropriate combinations of dots and dashes of QMap characters codes_;
This approach turned out to be very convenient. Now I just used the current playing character as a key and got ready
to reproduce the code (a set of boolean values), however, the playback algorithm became a little more complicated: it was necessary to enter the counter of the current element of the character and the counter of characters in the line:

New playback implementation:

void Morse::MiniSpace () ( if (stop_) ( this->Stop (); return; ) sound_.setMuted (true); ++id_element_; //Go to another code element if (id_element_ == codes_.value ( string_to_play_.at (id_char_)).size ()) ( ++id_char_; id_element_ = 0; QTimer::singleShot (duration_dot_ * 3, this, SLOT (Mute())); //Pause between characters return; ) QTimer: :singleShot (duration_dot_, this, SLOT (Mute())); //Pause between character elements ) void Morse::Space () ( if (stop_) ( this->Stop (); return; ) sound_.setMuted (true ); //Pause lasts 7 points //But since after the character there is a pause of three points, then an additional pause must be set to a length of 4 points QTimer::singleShot (duration_dot_ * 4, this, SLOT (Mute())); ) void Morse::Mute () ( if (stop_) ( this->Stop (); return; ) if (id_char_ == string_to_play_.size ()) ( // Line ended this->Stop (; return; ) if (string_to_play_.at (id_char_) == " ") ( Space(); ++id_char_; //Go to another code element return; ) if (codes _.find (string_to_play_.at (id_char_)) == codes_.end ()) ( qDebug()<< string_to_play_.at (id_char_) << ": No code!"; sound_.stop (); return; } sound_.setMuted (false); //Включаем звук if (codes_.value (string_to_play_.at (id_char_)).at (id_element_)) { QTimer::singleShot (duration_dot_, this, SLOT (MiniSpace())); //Воспроизводим точку } else { QTimer::singleShot (duration_dot_ * 3, this, SLOT (MiniSpace())); //Воспроизводим тире } } bool Morse::Play () { if (!stop_) return false; if (string_to_play_ == "") return false; stop_ = false; id_char_ = 0; id_element_ = 0; sound_.setMuted (true); //Выключаем звук sound_.play (); Mute (); } void Morse::Stop () { if (stop_) return; sound_.stop (); id_char_ = 0; id_element_ = 0; stop_ = true; }


Flag stop_ was introduced to prevent incorrect program operation (two calls in a row to Play() and other bad things).
I see no reason to include the rest of the source codes and header files in the body of the article, since everything is quite obvious and transparent there.

You can download the full set of sources for the latest version at

The Morse Trial program generates radiograms in Morse code with variable speed, pauses and tone. It is possible to load text from your file, as well as random text generation. It is possible to add noise when listening to radiograms for greater realism.

Morse code, Morse code, "Morse code" is a way of encoding letters of the alphabet using long and short signals, the so-called "dashes" and "dots" (as well as pauses separating letters). The unit of time is the duration of one point. The length of a dash is three dots. The pause between characters in a letter is one dot, between letters in a word - 3 dots, between words - 7 dots. It was named after the American inventor Samuel Morse, who invented it in 1835. Morse code is the first digital way to transmit information. The telegraph and radio telegraph originally used Morse code; later, Baudot and ASCII code began to be used, which are more convenient for automation. However, now for Morse code there are tools for automatic generation and recognition. For the transmission of Russian letters, codes of similar Latin letters were used; this correspondence of alphabets later passed into MTK-2, and then into KOI-7 and KOI-8 (however, in Morse code, the letter Q corresponds to Щ, and in MTK and KOI-I).

The main purpose of the Morse Trial program is to improve telegraph reception skills. Download training program Morse Trial can

But if you don't already know Morse code, then you can take self-training on the LCWO website according to the Koch method

The Koch method is a simple way to directly develop reflexes. However, it requires either a computer with appropriate software or a personal trainer. It is for this reason that the Koch method has been ignored for so many years. Now that the computer has taken its usual place on the radio amateur's table, the Koch method has every chance of becoming the standard for training a telegraph radio operator.

The training goes like this:

  • You set up your program to generate CW signals at a rate of about 20 wpm for a sign, but with slightly longer pauses (the effective rate should be on the order of 15 wpm).
  • Then you take paper and pencil and start receiving. In the first lesson, the computer must transmit only two characters. That is, in the first lesson you need to recognize only two options. You accept the text for 5 minutes, then check the correctness of the received text, and calculate the percentage of correct characters.

LCWO- this Internet assistant is for independent study of the telegraph. The site after your registration will become your personal teacher. You will master the telegraph in the process of playing the "guessing game" - you will develop conditioned reflexes to the sound of signs and their recording - if you want - by hand, if you want - on the keyboard. The method was developed by the venerable Ludwig Koch specifically for individual learning. The site will offer you to take 40 lessons, go to the next lesson only after mastering the previous one. All that is required of you is the regularity of classes, the frequency and duration are not clearly regulated. You don't need to download anything to your computer. You can study from any computer with Internet access at home, at work, or in an Internet cafe.