QWERTY MIDI

Using the computer keyboard as a MIDI controller

Author profile picture
Pedro Tacla Yamada
18 Jul 20263 min read

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.

piano

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.

forths layout

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.

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.

synth

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.