Modality - a vim inspired sequencer
Why I made a modal sequencer with JUCE
Modality is a project that was born out of my time at Recurse Center, a programming retreat for software engineers looking to seriously up their technical skills. I completed a six week ‘half-batch’, remotely, in January 2026. Discussions about the horrible time-differences between Sydney and NY aside, this is what came out of that inspiring experience, at least after returning to the project sporadically every few months between then and April 2026.
I won’t discuss the features and details specifically here, for that check out the project page, but I’d like to focus more on why I built this. With that said, a brief explanation is essential: Modality is a vim-inspired modal sequencer application - a MIDI sequencer that is primarily controlled by the computer keyboard, as opposed to the mouse.
Computer keyboard as an instrument
Despite heavy use of Kewala’s Typing Adventure in my formative years, I didn’t really feel as if I could touch-type properly until I took the plunge into ergonomic-split keyboards. Perhaps it was the blank keycaps that finally forced me to use the correct finger for a given key, or maybe it was discovering the text editor vim and being captivated by the sculptor-like manipulation of text.
After heavily committing to both touch typing and vim, I finally felt in the flow while using the computer keyboard, and the overall experience felt akin to practicing and mastering a musical instrument - there is no ceiling of virtuosity, it relies heavily on muscle memory and there are many ways to phrase or express an idea 1. This feeling completely took me by surprise - I was in no way expecting to have this experience from programming or touch typing, but it was a feeling that I was familiar with from days spent adopting Digital Audio Workstation shortcuts in order to stay in the flow while writing, recording and mixing. While DAWs of course have shortcuts, some even customisable, I still found them limiting or inherently unergonomic in someway.
So when looking at a computer keyboard, I started seeing more than just a qwertrty text input device, and started seeing a kind of control surface. Even modern audio hardware companies are even choosing to put mechanical computer key-switches that you would find in a computer keyboard into their instruments, controllers or eurorack modules. Despite the fact that they are incredibly limited on-off switches with no velocity, pressure-sensitivity or after-touch and certainly no 3D multidimensional sensors, they are still a satisfying and flexible control for the right task.
Existing instrument influences
Inspired by standalone sequencer devices such as the Sequentix Circlon and Elektron hardware, I wanted to implement the same kind of highly specialised experience while taking the opportunity to learn JUCE in the process. While I was vaguely aware of Laurie Spiegel’s Music Mouse going into this, its modern update and comeback announced after I was well into this project only enforced my feeling that a lot of software instrument developers might still be leaving options on the table when it comes to creative use of the computer keyboard. While many of these ideas have also existed for many years in software sequencers, drawing specific attention to trackers, I was interested to make use of my existing vim muscle memory and follow that style or philosophy of keyboard control.
Other software influences
In a way, I also found this to feel very similar to a live coding environment, sans coding, due to the speed of experimentation and getting ideas out of your head onto the computer. Modality can feel very terse, quick and fun, like live coding in tidalcycles - as I discovered this similarity I put more effort into adopting some ideas from algorithmic composition into Modality - these are still very basic and are in no way as flexible or creative as a live coding language however.
Another influence worth mentioning is the terminal based file manager, such as ranger or yazi. These applications, themselves inspired by vim, take these ideas further in terms of contextual menus and controls. The menu is structured as a tree with branches, where pressing one key reveals the next set of available options. They are usually organised systematically underneath an appropriate letter - e.g. ‘d’ for actions around deleting files.
What it could be next
So, this is a project that explores the incredibly niche crossover, not only between musicians and programmers, but between musicians and vim users. While knowing vim is not a prerequisite to using Modality (in fact I am sure I diverged from vim-isms in certain places), it would no doubt click for those with some exposure. I feel like I have just scratched the surface of what Modality could be in terms of the types of modal editing workflows and ‘object’ manipulations that could be applied to music, but this is likely where I will leave it for now. Being a simple MIDI sequencer, it is intentionally limited, but applying vim concepts to DSP graph development or audio editing is also an exciting possibility, perhaps one for another day.
Footnotes
-
For example, the many ways of navigating or manipulating text, or the countless strategies for simply quitting vim. ↩