VCV Rack gets physical - A DIY project 19" Hardware Controler

Hello, Rackers,
I am working on a DIY project for a hardware control to provide a haptic experience for VCV Rack. I’ve been thinking about this for quite some time, actually since I started using VCV Rack at the end of 2017. However, it is only now possible with version 1.0, thanks to the great new MIDI mapping module, to assign practically all control elements in VCV Rack to corresponding physical potentiometers, sliders, switches or buttons. So I decided to implement this in a DIY project. I use a USB-MIDI module with 64 analog inputs which I install in a 19" rack. First I build two racks, that should be enough to try out. The plan is to gradually build plugins of the developers I like or just need for a particular patch as a hardware module and thus build a “pool” of modules. I use the graphics of the plugins as a template. I glue them on thin plywood boards and equip them with the corresponding control elements. Of course only the control elements have a function, the LEDs, displays etc. logically not. My focus is to make this as variable, simple and inexpensive as possible. I am still in an slightly advanced stage as you can see on the photos. I will report on the progress in regular intervals. If someone has any questions or suggestions please contact me.


Very interesting!

Have you considered customizing the graphics of the plugins first? By resizing and moving around their components, you may be able to reuse the same hardware module with multiple plugins. (hope I’m clear)

Looks really nice. The only problem I see is that some modules (including some of mine) are not very ergonomic or do not have enough space in the back for the knobs making almost impossible to replicate them. The ones based on real modules have no such problem. For the modules that I’m turning into hardware are being redesigned.

I always thought we were supposed to be doing the skeunomorphic thing the whole time :sweat_smile:

If @Vortico gave us the possibility to create connections between modules (shared memory or a socket connection it would be enough), through external commands, it could be a real fun to make this type of controls: call a function with an external software via usb serial commands, for obtain the list of ID modules with their own ports, and send a command with a json string with the links to be executed (like the same thing that is now done as a serialization system), in this way you could also make virtual connections of signals however using cables that close or open a digital port on your hardware.

Ok I will stop here, otherwise I will be scolded.

1 Like

I would prefer to leave the modules unchanged. But if I can use other plugins with the same hardware by small displacements of the control elements or exchange of the front panel sticker I would do that of course. For some modules of “Fundamental”, “Vult”, Bogaudio etc. this would be possible by simply exchanging the panel expression.

Yes, you are right. I will have to concentrate on plugins that match real modules, or are designed that way. There are lots of them. With many small nysthi plugins for example, but also many others it is impossible. I’m looking forward to your redesigned modules. By the way, where can I find your V1.0 plugins?

Here you can find the free modules

It’s about one week old but I will release a new one on Monday.

Thank you very much, I’ll try it today.

I’ve been admiring the Be Book and its spiritual successor, the Haiku OS lately. It has a relevant bit in there: they built the system around a messaging system, such that the entire OS works this way except for a handful of high performance events. And then the scripting system is just stacked on top of the messaging system. So the cost of supporting commands (ex. a shell script that says hey rack set samplerate to 0) is not sigificantly higher than doing anything else in the system. In theory one could even set up bridges that translated the message format to MIDI/OSC/whatever. Interesting stuff.

More to the point, how would the usability for this work? Does the command to add a new oscillator just stuff it at some random unoccupied position?

You might have better luck asking for a module which works kind of like an FPGA, which is to say it just has a number of input and output plugs that never leave Rack itself. The plugs could be re-routed over a dedicated OSC port (like Trowasoft), with simple packets like /port/1,st open 3 to say whatever is entering input 1 should now be routed to output 3. Would work on every platform (shared memory varies) including some mobile apps that send OSC (not sure if any hardware does this.)

I find this


In a headless mode, the position would be irrelevant. No?

Thank you for pointing that out. I looked at this and it would work, but I think it’s more complicated. If I understand that correctly, you need an Arduino?? and you have to assign all inputs in a separate software. Also you can’t use the outputs the board offers.

The first rack is now finished (o.k., I could make the side parts even prettier), tested and works fine. The designs of some plugins are more difficult than expected because they are not built in a standard grid. With some plugins the knobs etc. have to be moved a bit. This is no problem, but takes time.


This looks really nice!
I’m in the middle of building my own MIDI-controller for Rack 1.0, and my first idea was also to use a rack and add individual modules, although I would keep them generic and not model specific modules (make one with 5 knobs, a small one with 3, another with 4…). I decided against it for now and took a ready made case and stuffed 64 knobs into it - but I figured out a nice layout where I can visually discern individual modules with various configurations easily. I’ll post a picture when it’s ready.

1 Like

That’s an interesting idea. I’m very curious about that.

Hello, Leonardo,
I think that on some modules (tangents, lateralus i.e.) the switches at the bottom are missing. This is also the case in the current version. I don’t think that’s what it’s supposed to be?

The free versions don’t have the switches that are there in the paid versions.

The first modules are ready and work fine. There was still a lot to try with the mechanical construction and the type of potentiometers used. At the end I found a version with which very cheap potentiometers can be used (you can see it at the Vult module) and which are built fast. Now I can start with the “mass production” of the modules to build up my “pool”… and the main thing… to make music with VCV-Rack.