agwells / dotdash-keyboard-android

The world's most popular open source Morse code keyboard for Android! (probably)
GNU General Public License v3.0
32 stars 4 forks source link

Change my extended Morse code to avoid conflicts with existing code groups #16

Open agwells opened 9 years ago

agwells commented 9 years ago

Wikipedia has a big list of code groups for letters with diacriticals. Some of these conflict with my own newly-invented symbols for right-square bracket, and backslash.

I don't know that I'll ever add support for these particular diacritical letter code groups (since I've got my own ideas about a universal diacritical system), but I should probably try to avoid conflicting with them.

See http://en.wikipedia.org/wiki/Morse_code#Letters.2C_numbers.2C_punctuation.2C_prosigns_and_non-English_variants

The MN digraph for exclamation mark also conflicts with one of them, which is perhaps why Wikipedia favors the KW digraph.

agwells commented 9 years ago

Okay, expanding my list to include all the diacriticalized symbols on Wikipedia, I find these conflicts:

  1. "Open bracket" [ ..-.. is shared with "E with accute accent", "D with a stroke", and "E with an ogonek"
  2. "Backslash" \ .-..- is shared with "E with grave accent" and "L with a stroke".
  3. "Open brace" { .--.- is shared with "A with umlaut" and "A with ring".
  4. "Asterisk" * -.-.- is shared with the ITU "Start signal", and with a prosign that means "Attention"
  5. "Open pointy bracket" < --.-- is shared with "N with tilde" and "N with circumflex".

Lol, seems like the 5-pulse space is pretty crowded...

agwells commented 9 years ago

It's notable that all my open-bracket symbols conflicted. I ran an automated analysis to see if I could find any available pairs of 5,6 character code groups. And no, I could not. I checked for matched pairs of three-pulse signals, and symmetrical pairs of three-pulse symbols, but they all conflict in either the 6-pulse code or the 5-pulse code (or both).

So, I'll have to go to a 6,7 pair for the brackets, if I want to avoid conflicting. There are several suitable pairs of those available. I could also 7,8, but I think that's getting a bit long.

agwells commented 9 years ago

Okay, so here's option 1. I continue using the parentheses pattern, but the matching code groups are 6 pulses (for the opener) and 7 pulses (for the closer). In which case the non-conflicting trigraphs (for closers) are: SES, UEU, RER, WEW, WTW, DED, DTD, GTG, OEO, OTO

Option 2, is I ditch the parentheses system, and instead I use symmetrical code groups. This kind of appeals to me more, actually. And surprisingly, there are about a dozen acceptable code groups available. The best ones are made of two palindromic letters, so that their digraphs are simply reversed, but there are only two such: RS/SR, KO/OK. I guess another, slightly different way to go, would be to look for reversed digraphs (like LM/ML). ... it'll take me a slightly more complicated script to search for those.