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?
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.
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.
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.
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)
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.
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.
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.
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.