Entering Chordons on a GKOS Keyboard

Detecting Chord Chains

After learning the GKOS system well, it is still possible to improve your typing skills with it by adopting a slightly modified, and faster, way of pressing the keys: not releasing all keys between chords. A single GKOS keyboard can support both methods at the same time.

Typing syllables instead of single letters

It is possible to type chords as a sequence without a complete release of keys inbetween. If there are keys that belong to two (or more) consecutive chords, they are kept depressed also while the chord changes. It is this fact that makes the GKOS chord sequence a ’chordon’ (chord-on-chord, or a chord chain consisting of a series of chords). Between chordons, all keys are released.

Chordon technique is specifically useful with GKOS for at least three reasons: 1) The 6 nimblest fingers are used to enter chords, enabling the regular forming of chordons which is necessary; 2) The fact that chords for letters and numbers include only 3 keys maximum makes the detection essentially easier; 3) The 6 fingers never have to leave the GKOS 'home row' which is necessary for being able to type chords in a row without gaps.

Typing a string of letters as a chordon is faster than typing the same letters as separate chords because typing becomes partly parallel (next chord can be depressed before the previous one is released). The practical limit of 300 characters/min (60 WPM), typical for chording keyboards while using separate chords and fully serial tapping can then be exceeded by skilful typists. The typing speed upper limit then only depends on the skill of the user and on the chord detection algorithm.
Typing syllables (typically 2 to 4 letters) as chordons can be learned quite easily after getting otherwise familiar with the GKOS system. First, short common words like ’is’ and ’why’ can be typed as chordons. And then, after being able to type syllables
fluently as chordons, even whole longer words can be learned to enter this way. However, the syllables are the key in learning the method and getting the higher text entry speed.

There are letter sequencies that cannot be completely tied together, e.g. ’no’ (C+E+F > A+B), because there are no common keys. Overlapping of chords normally takes place, and must be allowed, if chordon technique is applied by the user. By definition, a chordon may also include chord transitions that just overlap but do not have common keys.

One question still: how to type e.g. ’oo’? Answer 1: a repeat character is used (A+B > A+C) if the national character set can provide it as a national character. Answer 2: If there is no spare GKOS symbol (including 1 to 3 keys) in the national character set, any 2-key punctuation character (.,-’?!) within a chordon can serve as such. As a consequence, real punctuation characters must always be separate chords. Answer 3 (recommended): for a compatible approach, cut the chordon between double letters (go <keys up> od).

If punctuation characters are not allowed within a chordon (to minimise errors), they can serve as symbols to start word shortcuts instead. For example, typing -a or 'i as a chordon can provide a whole word like answer or interesting. See the Table of GKOS Shortcut Words.

The Polling Procedure

The GKOS keyboard polling can be implemented so that both conventional text entry with single chords as well as the chordon technique are possible at the same time.

How to detect individual chords within a chordon? For every single key release a procedure is started to check back in order to detect the chord just typed and also one or two earlier chords that did not end in a key release.

If we assume that only letters can be combined to form a syllable (combined chords), the detection becomes simpler. As there are never more than 3 keys in a GKOS character (letters and numbers at least), it is required to look back only 3 steps maximum to find the previous key release or ’all keys up’ condition. For example ’bop’ is one such rare case (B > B+A > B+A+D > at least one key is released next).

The check-back procedure must be clever enough to ignore a key release that is too close after the one that started the procedure because these two (and sometimes even more) key releases may belong to the tail of a single character.


For each chordon, a chord length C must be estimated first. The value must be available when the first key release takes place. This parameter will be the basis for the analysis of the whole chord sequence. It should be noted that practically no fixed timing values can be used because typing speeds will vary a lot. The overall form and structure of the chordon will tell what chords are included, not the absolute lengths of key depressions.

When a key release occurs, the latest chord is checked first. Those key depressions that have been valid (before the release) for at least period P (relative to C, range > ca. 30...100 ms) are taken as parts of the chord and C is subtracted from each key depression duration of that chord. The remaining key depression durations of the same chord are then checked.
A second (previous) chord is then determined by the combination of key depression periods of at least R (relative to C, range ca. 75...95% of C). The latter procedure may be repeated if 2 chords check-back is used (one chord check-back is enough for most cases). There is a guard time G (relative to C, range ca. 30...200 ms) after the key release, when new key releases are completely disregarded.

The characters accepted within a chordon are limited to those within the GKOS reference number range 1 to 30 (from A to the last national character or the corresponding symbols 1, 2, 3  to }) and space. Consequently, characters like PageUp Enter or SHIFT are discarded unless preceded by 'all keys up' condition.

Seppo Tiainen, 21 August 2003

Correcions 22 September 2003. GKOS reference number range limitation and guard time added also here 26.10.2003. Clarification to parameters, word shorcuts, 13 November 2003. First chapter (introduction under 'Detecting Chord Chains) added 4 Feb 2004. Link to shortcut table added 7 February 2005.