Latest project: chorded keyboard

Here’s a video of my latest project. I ought to play it at double speed to make it look impressive but I’m still learning where all the keys are (plus I haven’t finished the keyboard - it only does little letters and spaces at the moment). In actual fact, the text rendering was the most complicated: it’s a system built out of “boxes” to make it possible to have flowable text that can change colour and font mid-stream.

A virtual BAT, great! However, I like the microwriter alphabet better for its visual style:

Nevertheless a very interesting non-game program I’d like to use myself for a while.

The problem with visual systems is that it’s very hard to remember the logic unless you thought it up yourself. My layout was based on letter frequencies and what I thought were the easiest chords. Even so, I need the key key! Incidentally, it adjusts to the position of your hand and can distinguish left and right hands.

Is there supposed to be audio with the video? If so I am not hearing any.

What kind of audio do you expect? Key clicking? Some radio music so the video will be block in Germany? Andrew humming in concentration?


Ouch @Codeslinger! Not a daft question when the phrase “chorded keyboard” has very strong musical connotations…

Hi @Keebo unfortunately due to some device limitations we cannot easily record the audio produced by Codea apps. I really want to add this feature, but right now it’s not feasible.

.@Andrew_Stacey, I could be wrong, but it appears as if you’re limiting the keyboard to three simultaneous touches. I presume it’s because four touches would interfere with iOS multitouch gestures. Something to consider might be to not worry about the multitouch gestures. Just warn users to turn it off before using the keyboard. That way, you could expand your input options. It might even allow you to detect touches from both hands at once.

Good point, West. Since I knew what to expect I had a blind spot for the fact that a chord also has a musical connotation. Yes, it could be playing key-code sounds like in Moonraker, that would be fun.

Andrew, you argument with letter frequencies is reasonable and probably better than the visual style.

Letter frequencies … I start to realize how we managed to confuse (if I didn’t miss a joke on his part) Keebo.

It would be quite fun to associate each pad with a note and play back the music as well as record the text.

@Ric_Esrey: No, no such restriction. I suspect that I have multitouch gestures turned off so I wasn’t aware of the potential confusion. At the moment, the <RETURN> key is invoked by pressing all four fingers simultaneously (complements the <SPACE> bound to the thumb). v is a four-finger chord: LRMT (Little, Ring, Middle, Thumb), as is z (LRIT, I=Index) and k (RMIT). The “banned” combination is all five digits because a five-touch repositions the keys at the touch points (the idea being that where you naturally hold your hand will vary so the keyboard should adjust accordingly). So there are 30 combinations available with 5 keys (2^5 - 2, since “no touches” can’t be recognised), throw in three keys for the thumb and you get 58 slots (the thumb keys can’t be used simultaneously).

I’ll post the full keyboard shortly. You can have fun telling me which keys are in the wrong places. I need to add support for shift/lock and symbols. Not sure how best to implement these, one option is to basically switch the keyboard according to what is wanted. Maybe the inner-thumb together with each of the four fingers could select between lower case, upper case, and symbols.

.@Andrew_Stacey, can you detect a slid finger(s) to represent a shifted character?

@Ric_Esrey Yes, but I’d rather not unless it’s the thumb. The whole idea of this keyboard is that the fingers do almost nothing and, in particular, no lateral motion as this is what causes problems: potentially a cause of RSI, and certainly a cause of lack of accuracy on touch keyboards. Thumbs are okay with lateral movement, but I’d like to keep the fingers as tap-only.

Okay… I see what you’re trying to do. I was actually thinking of vertical movement though, not side-to-side. For instance, “v” is LRMT. If you tap using LRMT and then slide the LRM fingers up before you lift off, it shouldn’t cause RSI (I wouldn’t think). Moving your fingers together should be a natural movement. Sliding upward would also make sense as a shifted character.

@Ric_Esrey Yes, that might work. I’ll throw it in.

I think I should release this code for folks to try out. There’s a few aspects that need a bit of experimenting to figure out what the best solution should be.

No inside joke, @Codeslinger :slight_smile: . I sometimes only see things I want to see and music implementation is something I am very interested in.

Regardless, nice work @Andrew_Stacey.