Need some guidance on beginning plugin development

HI, newb 792 here…

Wondering where to start with building a plugin… completely new to programming (except using command line in linux before, now on windows 10).

Here’s what i’ve done so far.

-Built Rack V1 using MINGW64 powershell… with Core, Fundamental, and Template plugins.
-Installed Visual Studio Code.
-located and somewhat understood the key template plugin files
-identified that the plugin tutorial on vcvrack.com is out of date for V1.
-accepted that most of the key code i will be using will be taken from pre-existing open source modules / DSP libraries (?)

Where I am confused now is where to actually look for help making my own plugin that will work with Rack V1.

For instance I have been directed by some posts within the VCV community to some good and interesting resources that teach C++, DSP and VST development… but each of them seem to be rabbit holes that I could fall down, and may never lead back to my orignal goal of building a plugin for Rack… I would like to learn more about each of those, but Im wondering if anyone here can help explain what the parameters of those subjects are in relation to Rack plugin development.

1 Like

I m not coder, my only experience programing is python, and some game engines and cero experience about DSP

I started to use the Hora GECO and is a great way to start to build plugins.

1 Like

V1 is not released yet the website has not been updated because v1 is still in development. If you are looking for a non rabbit hole route there is none, In fact VCV rack development is probably the easier option to learn from, but it will still take you a good while to get the basic concepts of coding I’d suggest starting here:

Also TutorialsPoint is a good resource for basics. https://www.tutorialspoint.com/cplusplus/index.htm

None of the above links will teach you Rack development but they will give you the required basics for coding on any platform. You will need patience there is no shortcut!

The best way rigth now is to learn from the Fundamental modules.

1 Like

No harm in trying, but you would be banging your head off the wall not knowing the basics.

What’s your goal? Do you have a specific module you want to build? Are you trying to teach yourself to code and using VCV rack as a place to start?

Hi george, my goal primarily as a music producer / lover of modular synthesis, is to contribute to the VCV plugin library some plugins that satisfy my own and hopefully others creative desires… I’ve always wanted to learn to code but haven’t felt motivated until now…

I have some pretty cool ideas for modules that I didn’t find in the current module library, and was hoping I could get them finished as V1 is released. I have a lot of spare time over the next few weeks, and hopefully can achieve that but Im a bit lost at this stage.

Thanks looks interesting…
but how does it port into Rack?

Have you managed to build a Rack plugin using this yourself?

you mean to kind of reverse / re-engineer them?

hmm I had thought about that… but say for example I recombine some components backend in some way… how would I know if im not screwing everything up without some kind understanding about the relevant coding principles / syntax…

I guess that is what I am looking for… some kind of C++ glossary or something that will give me a limited enough palette to actually put things together, but not too limited in a way that im just reproducing someone elses module with a different panel.

Just learning how to use the tools (compilers, git, etc.) is non-trivial. Have you done any of the “get started with C++” type courses out there?

In my first drawing course, I tried to draw a statue with a Roman-style toga, you know, lots of drapery. It took me like 2 weeks to do the knee - with nothing else on the paper. I was frustrated. I moved on to simpler projects as a way to get started.

With drawing, you can do some stuff and it looks ugly, but you have a drawing at the end of it, and in between, you can see it coming together. With coding, it’s hard because the learning projects can feel pointless and the middle-phase is full of “it broke, i don’t know why it broke, I can’t parse this cryptic error message, blerg.”

So, like, start small, build, learn, take your time.

1 Like

Messing around with somebody’s panel design seems like a great way to learn to me…

Sorry I think there is no fast path to learn c++. It is a really complex languaje and any glosary that you find online will have many things that don’t matter when making modules.
Learning just the subset of C++ needed to make Rack plugins is orders of magnitudes easier. But still dificult.

Try to learn just plain C. No ++ stuff. Learn what variables and arrays are. How to call methods. What for loops do. Then look at the mute8 soruce code and try to understand it.

That you have compiled the source code is a good thing. Do you have a IDE installed? It will help you understand the code. I use VSCode. Others use Visual Studio. Just setting up one of those can take you a day.

Have you seen the tutorial videos by Leonardo (Vult)?
Maybe they might be of use for you:

Programming Modules for VCV Rack

Well if someone could tell me what tools I need first Id have a head start :smile:

At the moment I’ve got; MYSIS2 64bit powershell. I used this to build Rackv1. However I’ve also picked up Git /GitBash (VSC told me i need it), which looks identical to MYSIS. What these terminals do / what code they read I don’t currently understand. Ans I have Virtual Studio Code as mentioned (+ some extensions that I thought might be useful; python, C/C++, Vult) - I don’t know what it does besides editing txts, and im not sure if i have the right extensions. That’s it.

You just need msys and an IDE.

Lets say I understand the basics of C, and also understand the mute8 source code, is there some resource available (like a glossary?) that lists the subset of C++ needed to make Rack plugins? Also wondering if such a resource is likely to exist for DSP / VST plugins in general and whether they would be useful for building rack plugins… What is different in a Rack plugin to a general VST plugin… in terms of its code.

I have VSC with a few extensions (python, C/C++, and vult)… but not sure if it’s set up correclty or what im supposed to do with it. Define IDE?

Yea, but hes editing code for older versions of Rack, so its impossible to follow along at my level of understanding.
It helped me find VSC though.

I should note (in case anyone gets confused) that learning the Vult language is only helpful if you know C++ in and out. To use Vult in a Rack plugin, you must know C++ and Vult.

3 Likes

Thanks for clearing that up… Yes, it was pretty confusing…
very confusing actually … Is that the same for all DSP / VST languages? (faust, etc)?

1 Like

You need the basics. Crawl before you walk…

Have coding anything before?

1 Like