I wrote a couple of python scripts for manipulating .vcv patch files. The idea is that a patchlet is a one-row patch that does something specific. A collection of patchlets can form a toolbox for quickly creating new patches.
Examples include:
a chain of modules that creates a specific effect (similar to an audio effect chain in Ableton)
a multi-oscillator synth voice that you might want to duplicate multiple times in a patch
(assuming you can’t use polyphony)
a whole percussion section
a complex multi-module melody generator
I’ve found this approach useful for my own Rack workflow. Hopefully someone else may also find this helpful.
extractPatchlets takes an existing patch and extracts patchlets, one for each row in the original patch. Cables between modules on the same row are preserved.
combinePatchlets takes a set of patchlets and combines them into one patch.
Executable binaries are available for MacOS.
There are plans to make improvements to this project: Windows binaries, a GUI, a script for appending patchlets, improvements in code efficiency.
You can have a look at my GitHub repository. I‘m preparing STRIP, a module that allows saving and loading groups of modules.
It does something very similar but from within Rack.
That’s very cool! While I think STRIP will be super-useful, it wasn’t clear to me from the description how it could be used to repurpose a collection of connected modules into another patch.
Yeah, the description it not up-to-date yet, here is a bit more text. The module is also not yet ready for release.
The same convention is used for loading and saving of modules as described for enabling and disabling.
Terrific, I’ve really missed the ability to load patches into the current one - i.é., I have a few combinations that I always use for a given purpose, and it’s tedious doing it manually every time, as opposed to loading in these “snippets”. Thank you!
We are not working together. I’m not a developer and Ben is clearly a superb one (his v1 modules are outstanding). So if he can successfully add a load/save option to STRIP, I think that will be a much cooler implementation than something outside of Rack, like python scripts or executables.
I’ll still release an appendPatchlets python script and executables for Mac and Windows this week, but it may not be worthwhile to put much more work into my implementation, given Ben’s work-in-progress.
For me, the important thing is the idea of Patchlets, or specialized collections of connected modules that can be loaded and saved into other patches. I’ve always felt that having an optional middle layer between a patches and individual modules would be a very powerful tool for Rack workflows
This sounds a bit like a feature of the Submarine Utilities Module Browser. It let you import a patch file into your current patch. But it hasn’t yet been upgraded to Rack 1.
“Loading a patch file will cause all the modules in the patch to be imported into your current patch. Everything already in your patch will remain.”
It will be amazing being able to save just a few modules and add them later to a patch, and by that create sorts of “presets” for later use. I will be more than happy to help out, if there is anything I can do let me know
Just updated PackOne and the new Strip module discussed above. It works awesome! Great job, Ben. Congratulations!
As I’ve said, I expect this will be a real game-changer for many Rack users. Having the ability to load and save a specialized collection of modules will be incredibly useful.
Please consider adding Linux support to the list of future improvements, I think it’d be appreciated by the main Rack developer and some very active users on this forum.