A idea for functions that uses German psychologist Ludwig Koch's method to learn how to receive and send morse code. #github #morserino


Platform Compatibility: Linux Ubuntu and variants,Windows and Mac OS.
Inputs: iambic,paddles, straight key and bug. Standard inputs like a keyboard and mouse 
The Koch method:
What is the koch method? The Koch method, named after German psychologist Ludwig Koch, which uses the full target speed from the outset but begins with just two characters. Once strings containing those two characters can be copied with 90% accuracy, an additional character is added, and so on until the full character set is mastered. It's based on learned reflexes, and is arguably the best and fastest method available! 
Learning at speeds below 15 WPM is strongly discouraged because building reflexes does not work at slow speeds. 
More info about Koch's method here: https://www.qsl.net/n1irz/finley.morse.html
A graphical representation of what is possible at different speeds. These speed "limits" are approximated, it's easy for someone who handles 30 wpm to go slower. 
Something interesting happens when one can handle speeds above 30 wpm, you will start to hear the complete word!
But, there is a thing..
It should work for both as it will teach muscle memory.
There are NO software that can teach both, only receive!
Koch himself, with hand-picked students, got a group to master receiving 12 wpm code in a mere 13.5 hours!
That's much faster than any other method in the psychological literature.
How the software should work,and it's modes:
It should keep track of the users progress,time used and other statistics. Some of it may be posted to https://lcwo.net/ if an API is available.
Training mode: First the program sends a series of K's in CW for 30 seconds while the character K is displayed. Then it repeats the procedure with the character M. When that is complete it sends a four characters group using K and M in random places without displaying the signs. It then waits for a four characters input using the keyboard or the morse device, shows the characters you have gotten correct in green, the wrong ones in red. 
That continues until the user has gotten 90 % correct of a number of groups, then a new letter is introduced ( for example X ), it is sent for 30 seconds while the character is displayed. Then the lesson continues using the new character until 90% of groups is correct, a new character or prosign is introduced and the lessons continues until all characters are learned. 
It may also be possible to display the character K and send the character in morse 5 times and wait for 4~10 around seconds for the answer using the morse key or keyboard. 
There should be not to harsh timing requirements on receiving, some normal slack should be permitted as long as the CW decoder can decode perhaps 70% of the transmitted CW it should be good. Signals are not 100% perfect from a straight Morse key,this may "confuse" the software. 
It should also support multiple users on the same software instance.
It should also display statistics of a users progress and time used. The slowest permitted speed should be 12~13WPM. Any speed below this is wasted time and energy.
It should also be possible to adjust the mininum and maximum number of characters in the groups and if they are of random size. It should support Farnsworth timing, characters are sent at the same speed as at higher speeds, while extra spacing is inserted between characters and words to slow the transmission down.
The advantage of this is that you get used to recognising characters at a higher speed,the characters does not "blend together" as easily and thus it will be easier to increase the speed later on.
Realistic mode: Available during Realistic mode: signal fading and white noise to imitate more "realistic conditions", as Hannes Matuschek Kochmorse has it. It is available at: https://github.com/hmatuschek/kochmorse . 
Kochmorse does have a CW detector, but it can't be used to input characters during learning how to receive Morse.
Morse alphabets that should be used : Primarly International, but the possibility to add regional extras like the Norwegian Æ Ø and Å. Those extras should be possible to add to the characters learned with a option in settings.
Also varying speed,-randomisation of the received speed at around +- 2WPM to simulate a operator that transmits at somewhat inconsistent speed.
Compatibility with a Murmur client that can connect to a murmur server, that enables chatting in morse code with other users. The client is available at: https://www.mumble.info/ 
Similar low latency open source free VOIP software solutions could also be used.
A existing mumble server already exists: http://internetcw.weebly.com/
Suggestion for a plugin for mumble: https://forums.mumble.info/topic/2542-fading-and-white-noise-plugin/ This may be done by the software itself if a plugin is to cumbersome.
Compatible with Hamsphere: http://hamsphere.com/ That is a paid service, but it takes care of the fading,white noise and QRM/QRN.
Link to my idea at GitHub:
So, any opinions?