Around ~6 years ago I was intrigued by the idea of using a regular midi keyboard as an input device. I was having some RSI issues, and was looking for alternatives. I'm not a professional pianist, but I play both pianos and keyboards. Any regular midi keyboard doesn't have key shadowing issues, so it's very easy to implement chording mechanics. I remember I was only vaguely aware of stenotyping, and certainly didn't know about plover back then, so I just tried some random approaches.
The first issue with chording keyboards is the tradeoff you make between the amount of keys in a chord required to perform all permutations readily available in a typing keyboard. You can, optimally, pack all permutations only using ~10 keys, but you might require to perform either 6 key chords (3 keys per hand simultaneously), introduce sequences, or introduce trigger delays.
Now, while doable, doing a 6-key chord was quite hard for me. I couldn't remember all the required permutations, and it also required to setup some quantization in order to detect the chords correctly. Quantization in turns imposes an upper-bound on CPM you can attain.
Using more space with smaller chords (a larger set of 2 octaves with ~3-4 keys per chord) was easier for me, but the regularity imposed by the chords (jamming the required keys at the same time) was still unnatural.
I tried to setup some different mechanics, using a sort of tree dictionary where the keys enters the branches. An approach that worked well was to map the frequent character tuples in adjacent keys. Performing CDE, CDF, DEF, EDC combos would result the vowels, which were mapped repeatedly at other locations using the same musical intervals. Typing with this system felt much more "music style": infrequent letters were mapped sparsely on the keyboard, with vowels available in every octave. You could move left-to-right to type. It's also much easier to press keys in _fast_ sequence than trying to perform a perfect chord timing, or at least that was my impression. I didn't need any quantization this way.
Still, for anything but text (ie, programming), a regular keyboard felt so much faster. I remember attaining ~30 wpm or so before giving up entirely.
I wish I had investigated some chord/phonetic based system, but I'm not sure how much that could've helped with regular programming.
The first issue with chording keyboards is the tradeoff you make between the amount of keys in a chord required to perform all permutations readily available in a typing keyboard. You can, optimally, pack all permutations only using ~10 keys, but you might require to perform either 6 key chords (3 keys per hand simultaneously), introduce sequences, or introduce trigger delays.
Now, while doable, doing a 6-key chord was quite hard for me. I couldn't remember all the required permutations, and it also required to setup some quantization in order to detect the chords correctly. Quantization in turns imposes an upper-bound on CPM you can attain.
Using more space with smaller chords (a larger set of 2 octaves with ~3-4 keys per chord) was easier for me, but the regularity imposed by the chords (jamming the required keys at the same time) was still unnatural.
I tried to setup some different mechanics, using a sort of tree dictionary where the keys enters the branches. An approach that worked well was to map the frequent character tuples in adjacent keys. Performing CDE, CDF, DEF, EDC combos would result the vowels, which were mapped repeatedly at other locations using the same musical intervals. Typing with this system felt much more "music style": infrequent letters were mapped sparsely on the keyboard, with vowels available in every octave. You could move left-to-right to type. It's also much easier to press keys in _fast_ sequence than trying to perform a perfect chord timing, or at least that was my impression. I didn't need any quantization this way.
Still, for anything but text (ie, programming), a regular keyboard felt so much faster. I remember attaining ~30 wpm or so before giving up entirely.
I wish I had investigated some chord/phonetic based system, but I'm not sure how much that could've helped with regular programming.