Create your own VCV Rack module with Pd


VCV Prototype is originally a scripting language host for VCV Rack from which you can now create your own VCV Rack module. After a successful fundraiser, support to Pd and Vult DSP language were just added. And that’s great news so, I’m going to show you what this is about and how you can create your own module using Pd.
Since I just talked about ring modulation, I’m going to adapt the patch we used on the last tutorial for our example here.
The carrier is going to be a VCO module from Bogaudio, so we need to tell Pd that we’re receiving audio from Prototype and you do that by adding an [adc~]. I’m amplifying the signal by multiplying it by 1. For the modulating signal, we need to receive control data from VCV to change the osc frequency, so we use [r fromRack] and [route K1] to map the control - prototype has 6 knobs (K1, K2, K3.. and so on) - in this case I’m just using one. If you’re starting to get lost here and you need the reference to keep up, you can find it in the github repository (see references): there is a file named template.pd in examples. My attempt here is to make a simple guide for your first steps into this.
pd-prototype Fig.1 - Pd patch and VCV prototype
Now that we’re done with our patch, let’s fire up VCV and add Prototype.
drop-down-vcv Fig.2 - Setting up VCV Prototype
After adding prototype, you need to “Set Pure Data application” , locate your installed Pure Data application and then ”Load script”. Your patch name and Pd version will show up on the display.
version-patch Fig.3 - Prototype displays information
Then you can add an input and test. The flashing yellow lights indicate that we have signal.
module-flashing Fig.4 - Checking for signal

Another interesting thing is that we have a nice RGB for the L indicators, so we can also add lights. I’m just using one of them, but I added other 3 to show you how you can use different colors. The first variable is for red, second for green and the last is blue. In the L4 message you can see that by adding green and blue I got a nice cyan (is it cyan?) color. This also works for the switches as well but instead of L1, L2, you have to use S1, S2.
add-rgb Fig.5 - Adding colors
colors-module Fig.6 - RGB indicators on Prototype.
One last thing I must point out is that multiple instancing is not supported yet, that means for the time being we can only have one module, nevertheless this is still exciting news and I’m still learning and exploring too so I hope this is helpful to anyone out there doing the same!

================================================================================ References:

VCV Prototype https://library.vcvrack.com/VCV-Prototype/Prototype


VCV Prototype source https://github.com/VCVRack/VCV-Prototype


VCV Community Announcement https://community.vcvrack.com/t/pure-data-added-to-vcv-prototype/10583


Bogaudio modules https://library.vcvrack.com/?brand=Bogaudio