2025-10-11
I made a simple MIDI gadget to explore a musical instrument interface concept. I have previously demonstrated the gadget in this video.
The inspiration for this project came from the Yamaha RX5 drum machine from 1986. Like many similar instruments it has pads that let you play drum sounds with your fingers (a bit like a computer keyboard) but these pads do not contain sensors to read how hard you strike them. You can only play at a fixed volume or "velocity" in MIDI speak.
The RX5 has a workaound for this limitation. The pads are arranged in two rows of 12. You can enter a special mode "Multi Voice Mode" where you pick one sound (e.g. a snare drum) and have the top row of 12 pads all play that same sound, but at different volume levels. Now if you want to play snare drum hits with different levels, instead of pressing the same pad with different strengths, you press different pads.
Of course now you can't play the other sounds on the top row anymore but if you are recording a drum pattern instrument by instrument that is not a problem: you drop in and out of Multi Voice mode as needed.
I don't know if the RX5 was the first instrument to use this user interface idea but it's the instrument I know it from. Newer drum machines tend to have "velocity sensitivity" pads so you don't need this trick anymore, but even an instrument like the 1988 Akai MPC 60 with its velocity sensitive drum pads still had a "16 Levels" mode where you map the same sound across the pads at different velocity levels.
So while using the RX5 I was reminded that this velocity mapping feature is fun. But on the RX5 it is only usable with the internal sequencer. Wouldn't it be nice to use this technique with other machines as well?
My first thought was, if this was an MPC 60 feature then maybe it made its way into modern MIDI pad controllers (the MPC 60 was very influential) and I should get myself one of those. However, buying more gear costs money, and then where do I put this pad controller in the studio?
Thinking about it a bit longer, I realized that I could also get what I want if I could put a MIDI "transformation box" between my regular MIDI keyboard and the sound source. Normal notes, with variable pitch and velocity, go in, and a fixed note that varies its velocity with input pitch comes out.
The next question is how do you select the fixed note? It has to be easy or else I won't bother when in the middle of writing music. A bad example is my Roland R-8M drum sound module which has a function to do exactly what I want (called "Performance Sections"), but it takes a dozen button presses to set it up, you need to dedicate a MIDI channel to each fixed sound, and you can only do this with 4 sounds. Because of all this friction I never use this feature.
After a while I remembered my MIDI mangler box which I previously demonstrated here. It's an 8-bit AVR microcontroller with MIDI in and out ports, a rotary encoder and a reset switch.
The rotary encoder could be used to select the fixed note. And the reset switch solves another problem, namely how to go back and forth between normal keyboard playing and "velocity mapping mode": when the box starts up it pass through all MIDI data unaltered. The moment you turn the encoder it goes into velocity mapping mode. If you're done with that, reset the box and you're back to normal!
You can read the source code here, and I put a demonstration video on Youtube here. The video uses the Roland R-8M as the sound source but thanks to the velocity mapper gadget, I don't have to press any buttons on the R-8M.
Because I still had my MIDI mangler box lying around, this was a very quick project from idea to execution. It also helped that it is a very simple idea.
This idea is so old that there must be other ways to achieve the same effect, that are probably easier. But for me this was the best way to do it: no new gear needed!