VCVRack: development

a thread for discussions / questions related to hacking VCVRack and developing plugins for it

useful links:

other threads:
VCVRack virtual modular synthesizer


made the OP a wiki so that anybody can edit/add links.

first question: what’s the best practice for measurement units? the panel manual says SVG files should use mm, not pixels, and source generated with uses mm2px function:

ddOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(84.497, 110)), module, Test::OUTPUT4_OUTPUT));

what are some considerations for choosing one over the other?

1 Like

I get the impression you don’t really have a choice? Has to be mm?

yeah the post (and the plugin dev manual) talks about using mm when designing panels, but i wasn’t sure if it applies to code as well. from what i can tell it does expect mm to be used, including nvg stuff, but then why does it convert to pixels (using mm2px) when creating inputs/outputs etc? i thought maybe it’s because these functions haven’t been converted to use mm but then even vcvrack’s own set of plugins has examples of both using same functions without pixel conversion and with conversion. it could be that not everything has been updated yet but that’s why i want to find some concrete info. i’ll ask on the vcvrack forum as well.

1 Like

does anyone know why they removed the favorites section from the module selector? like if theres a post or specific reason?

i’m strongly considering readding the feature myself because its kind of mind boggling why they removed it just because they changed to a system with pictures of the modules.

Relevant GitHub issue:

thank you. i thought it would be like this :confused: guess i have to make a whole seperate fork lmao. because of the main developers personal use case lmao.

edit: i am still new to open source software uhhh diplomacy? is it worth it to make a really good case for it and submit an issue again or a pull request to try to integrate whatever i come up with into the main branch. i personally think the favorites feature is invaluable, even if your favorites are changing all the time…

It’s a conversation. You can make your case (or better yet, a pull request) and Andrew can take it or leave it. He’s a very direct communicator, so whatever happens, it won’t be vague.


added a couple of super useful links (big thanks to Jeremy Wentworth and Squinky Labs for creating these):

and some quick tips from personal experience:

  • output voltage needs to be set each time process is called, not only when a CV changes - if you don’t set it, it’ll go back to 0

  • if you use to generate code from svg file and some components are off or not shown, check if you grouped them - grouping messes with coordinates

So uhhh… crow in vcv ? Il leave that here. We are all thinking it

Continuing from VCVRack virtual modular synthesizer

I wanted to specify the location of the screws to match the original panel. Perhaps a bit OCD, but I’m relatively sure it’s possible?

you can change the location in the code easily but if you want to take advantage of the helper script just use a different component type to get coordinates generated for you and then replace the components with screw components in the code.

and helper is a python script so adding support for new component types should be very easy. i modified it so that it generates code using my own custom components, this way i don’t have to update each time i update the panel.

1 Like

Hey @zebra, what are your thoughts on having a Softcut module in VCV? I’m thinking that @andrew’s work on porting it to Max should be helpful.


sure. i would do some work to factor the core functionality into a separate repo (static lib target.) there are a number of improvements coming into the upstream (norns) version and i don’t want to have to manually sync them.

fwiw i’ve also run the thing on teensy3.


Has anyone run through the plugin dev tutorial lately? I just did on Mac w/ 1.1.6, using the Rack-SDK method instead of compiling Rack.

There’s a step about adding the module to plugin.cpp & plugin.hpp that’s in the output from the script, but otherwise the tutorial seems solid. That said, I’ve compiled and installed the tutorial module but it’s not showing up in the Rack module browser.

Is there an issue with the tutorial? Do I need to do something to Rack to trigger a re-scan of the available modules?

EDIT: Fixed. I had installed a bad build (before I found that extra bit in the output) and it was creating a namespace collision. NOTE: Logs are helpful. ~/Documents/Rack/log.txt if you’re looking.

EDIT2: I’ll submit a doc PR to add that bit.

1 Like

Great, thanks! I think I want to tackle that then after I get farther along with the Nonlinear Circuits port.

This might be worth starting a separate thread, but I’m thinking that it might be fun to start a Lines Community VCV Plugin, with VCV module ports of a lot of the tools created here that would work well with “hardware” interfaces. Some ideas (and tagging for opinions):

  • Softcut
  • @andrew’s dirge, enueg, etc.
  • @rodrigo’s TPV saturators
  • @dan_derks Less Concepts. Maybe Cranes would work as a module? (Side note: I’m already porting Let’s Splosh as part of the NLC bundle)
  • Some type of opcode sequencer, like @Olivier’s Dunes or @tehn’s Spacetime.
  • Mini Meadowphysics. Skip the whole Grids interface and instead have countdown triggers with individual clock inputs normalled to a master clock input.

This would be an open repo to encourage collaboration on features, graphic design, etc. Thoughts?


well in the realm of digital modular stuff I’m vaguely planning on focusing efforts on BEAP-style modules in max (as an extension of the prosody ideas)

don’t think I’ll personally be interested in VCV Dev as I’m not a huge fan of the format (max, if far from perfect, feels like it has a lot more potential for this community in particular)

maybe I’m getting off-track tho

I was recommended this thread for the first time today, and I wanted to add that WW, MP, and ES are in the pipelines, just not in the official library. There are interfaces for grids from what I can tell too. :slight_smile:

I’ve also ported Less Concepts with input from Dan and one of these days may port some other scripts!


Hello. Just dropping by to say thank you for this thread. I’ll be making regular use of these collected resources. I have idly entertained a module idea for a year or two and am now motivated enough to put to the test the claim on VCV’s website that ‘creating Rack plugins is a great way to learn programming and C++’. Cause at present I know nowt about it. I have nothing to lose, some knowledge and a module to gain.


interesting if somewhat concerning discussion here: