In Praise of Chorded Input

The other week I saw a tweet by my friend & banging chiptune musician Chipzel, where she was giving a little guided tour through LSDJ, the premiere Gameboy music software.

It inspired me to download the demo rom, find a Gameboy emulator, and give it a go. I have had some experience with trackers before, so I found it pretty quick to get going with. And fun! It makes the good bleeps and bloops. I was pretty soon at the point where the main limitation on me making nice music is my actual musical ability.

But it also got me thinking about chorded input schemes. LSDJ is a workhorse of a program, able to do a lot of stuff. And it's designed to let you do that stuff quickly - to let you iterate fast, put down a tune fast, adjust things while you're standing on stage. But also... a Gameboy has 8 buttons - 4 directions, A, B, SELECT and START. So it has to make those buttons work hard. And that's where chording comes in.

Chording is a means of inputting commands to software by holding down multiple buttons at once. Ctrl-C is an example of a chorded command. Hold down Ctrl, then press C while you're doing it. Text copied. But you can also make chording work harder than that. So, in LSDJ:

press A: insert note on empty step
while pressing A, press RIGHT: increase the pitch of a note by one step
while pressing A, press LEFT: decrease the pitch of a note by one step
while pressing A, press UP: increase the pitch of a note by one octave
while pressing A, press DOWN: decrease the pitch of a note by one octave

(here's the manual, if you want to have a look at the other commands)

Chorded input is rare these days - the movement of software to touchscreen devices argues against it. It works best when there are physical buttons to press, where you develop muscle memory for where those buttons are. It's not great for discoverability, unlike context-specific controls - you don't know that holding SELECT and pressing B three times will do anything until you do it (fyi: it selects an entire screen of notes). You can design to mitigate this - the same commands working in different contexts, like Ctrl-C copying objects of many different types, across many programs, or those LSDJ commands above working for any type of sequence data, not just notes.

So: chorded input is useful in situations where there are no other viable choices, fine. So why am I writing about it? Because it's fun. It takes a little work to learn, but as game designers know, learning is fun. It uses muscle memory - but developing muscle memory is fun, and exercising it once you know it is, too. It is fast, once you know it, and developing that speed is satisfying. It's not discoverable - but that means it feels like secrets. It's a form of input that doesn't really need much feedback from the system, unlike touchscreen-like interfaces. You don't need to look at what you're pressing, but can input a whole sequence, with decent confidence that it'll be interpreted in the right way. You can input commands as fast as your thumbs can move! And your thumbs don't have to move far - the Gameboy is designed so that you can go in any direction, push any combination of A & B without lifting them. And the buttons are designed for tactile pleasure - but I've experienced similar joys with Teenage Engineering's Pocket Operators, where the buttons are hard little ciruitboard studs, optimized for value engineering.

All the examples I've given for chorded input come from music software, and I don't think that's a coincidence. It's an area where there's an expectation that users will invest time into learning the intricacies of the systems they're using, and that that investment is part of the joy of it. And they want to cram features in, and are happy restricting the inputs - that's basically what a musical instrument is, a device that can produce a wide range of [audio] output via subtle manipulations of the inputs. But it's not just music software: pretty much all the joys I've listed can be used to explain people getting so into learning Vim or Emacs. "It's so efficient", they say, "I barely have to move my fingers from the home row". They enjoy learning more and more arcane commands in order to use the software more efficiently. They enjoy the dance of their fingers as they perform increasingly more sophisticated operations at a speed only limited by thought. (I... don't. I can't be bothered to learn those arcane commands, I'm happy doing things inefficently. Especially because by the time I open up Vim or Emacs, I probably have enough problems already)

Finally, I guess I should mention that there are also methods of text entry that use chording. There's a whole alternate history of keyboard technology where this became dominant, where everyone wears weird gloves and twitches their fingers in place in order to enter text. As it is, this is really only mainstream among stenographers, whose job is literally all about typing fast & accurately, and where you have to take a course to learn to type.

01 March 2020