What's the best place to learn how to programme a module

Hi guys,

I’ve been lurking here for a while and have been consistently amazed at all the modules people contribute. I’d like to get my hands dirty and start looking at building my own module. I’ve got zero coding experience. Can anyone suggest a way to learn how to get started building a module?

1 Like

I tought myself coding on a TI 99 when I was 13 years old. From my perspective 40 years later, I would not choose this way again. I think, the best way to learn coding for audio DSP is by taking a local course in C++ with a real teacher on side to learn the basics.

2 Likes

Here’s a list of C++ resources and tips.

2 Likes

Thanks for this guys. I feel like I’ve just opened a massive can of worms. Wish me luck!

2 Likes

This tutorial serie from Leonardo Laguna Ruiz, the creator of the Vult modules, might be of help.

2 Likes

There’s a VCVrack specific book too

https://www.leonardo-gabrielli.info/vcv-book

And a free book on computational music synthesis - not related to VCVRack in particular, but an interresting read i think:

Sean Luke, 2019, Computational Music Synthesis, zeroth edition, available for free at http://cs.gmu.edu/~sean/book/synthesis/

1 Like

Hi Benji,

Here is the official plugin development tutorial: https://vcvrack.com/manual/PluginDevelopmentTutorial

I would suggest starting by reading through this tutorial. You mentioned that you don’t have any coding experience. You will probably have a lot of questions. People here on this forum are pretty helpful and friendly, but it’s best if you have a specific question to ask.

Something else to consider: do you have an idea for a VCV Rack module that you would like to create? I find it really helps me to have a goal to work towards. Depending on what type of module you want to create you will have to learn more or less about Rack, C++ (the programming language that Rack modules are written in) and DSP (Digital Signal Processing, which is a general term for computer programs that work with audio). For example, making a blank panel module requires very little C++ and zero DSP knowledge. A sequencer is more involved on the C++ and Rack side, and requires some knowledge of DSP. Making a high quality audio source (like an oscillator or an effects processor) usually requires competence in all 3 categories.

3 Likes

The might have some useful information: https://github.com/squinkylabs/Demo

2 Likes

Thanks for the link. I have a vague idea of the concept. Inspired by, or heavily plagerising, Aria Salvatrice’s Signature Series Acarne (such a great module!) I want to create a set of modules that are based on the 8 (or 9) planets in the solar system, taking characteristics of the Roman gods to define each modules purpose and using where the planets are in the night sky at any given time to create evolving parameters that cannot be changed by the user.

As I type this out I realise how far-fetched this is for a person without any coding knowledge (except a touch of Python) to try to create as a first attempt, but the idea has settled in and I’m going to have to pursue it. Even if it comes to nothing.

5 Likes

Sounds awesome, I wish you luck! If you can get through that tutorial and successfully build the development version of Rack and build the Fundamental plugin I think you’ll be in a good place. The Fundamental plugin has an example of every type of module (VCO, sequencer, quantizer, random, etc) and the code is very easy to understand in my opinion. It’s a great reference for creating modules.

For what it’s worth, I’d like to vote for Pluto being included in your Planets plugin. The poor thing hasn’t even made it around the sun once since being discovered in 1930! (orbital period 248 years)

1 Like

Funnily enough, Arcane was my first serious C++ project ever. Before that, most of my programming experience was with a variety of higher level, dynamically typed, interpreted languages, like Javascript or Ruby. I pretended the scene wasn’t full of veteran C++ programmers and had a healthy dose of “eh whatever, it seems to work, I can fix it later, if it crashes people will tell me” attitude - couldn’t get anything done without it.

Good luck! I hope to get to see your modules eventually.

2 Likes

An ambitious take on “Hello World” :slight_smile:

3 Likes

Well, I guess there are plenty of people here with all kinds of different backgrounds, which is nice. Also, as far as I can tell, most of us old timers aren’t super mean or pedantic, as I’ve seen in other places.

3 Likes

More like Hello WorldS

4 Likes

Sometimes you have to just dig your heels in and ignore those pesky scientists. Pluto is a planet and could make an interesting glacial speed chaos generator.

5 Likes

Thanks for the encouragement. I’m going to start slow, putting half an hour or so a day into learning C++. I find it easier to train a good habit with small steps.

3 Likes

Yeah, but then what about Charon?

and don’t forget eris.

It’d just be mean to leave out Haumea, Makemake and Gonggong.