QWERTY MIDI
Using the computer keyboard as a MIDI controller
TRY IT OUT HERE
Every now and then, when I was a child, I remember going to an electronics store and opening ‘GarageBand’ on a mac computer.
One of GarageBand’s features is something called “musical typing” and involves turning the computer’s QWERTY keyboard into a piano-like input device for typing in notes into the software.
Many current DAWs include a similar UI and allow for basic realtime musical input without external controllers.
Isomorphic Layout
I found myself wishing for a few extra features on the ‘computer MIDI’ implementation on the DAW I’ll mostly use. After thinking about it for a bit, I realized there might be a different approach to using the computer keyboard as an input device, more similar to that of instruments like the Ableton Push or Linnstrument.
The idea is to implement a layout similar to a string instrument, where each row of keys moves up chromatically and the adjacent rows are separated by a certain interval.
I used ChatGPT 5.6 to implement a prototype of this idea, which only took me a couple of hours on a Thursday morning.
Basic design
Notes are laid out on the keyboard as if it was a string instrument with 4
strings tuned in 4ths, like a bass guitar. When you initially open the app,
the C key plays a “C” note, and therefore, the key mostly above it plays an
“F” (the D key), and the key diagonally across but up 2 rows plays an octave
(the T key).
- space bar presses the sustain pedal
- up/down arrows trigger pitch bend
- left/right arrows switch octaves
The center key can be changed.
Latching
There’s also a “latching sustain” option, where pressing either Shift keys
will cause pressed keys to be latched as they are pressed, but other keys after
the latch operation aren’t latched.
This allows you to latch synth pad on the lower range and then play a melody on top. It also gets a bit around some issues pressing many keys on a membrane keyboard
MIDI channels
Pressing keys F1 through F4 will switch the MIDI channel. The monitoring
synth will also switch patches.
Other related work
Later I found that this has been previously experimented with, although I didn’t find equivalent software implementations (“Don’t Forget the Laptop: Using Native Input Capabilities for Expressive Musical Control”).
There are several ideas mentioned in this article I want to play around with, like using the trackpad, motion sensors or the lid sensor.
Wavetable synth
I also had a few chat sessions with Codex to build a wavetable synth which can be used for monitoring.
The synth is a 2 oscillator wavetable synth and includes some modulation capabilities and enough functionality to have a bit of fun without firing-up a DAW.
