I am using VCV Rack in my Laptop Orchestra class, and my final project is to create my own piece and build patches in Rack to perform it. I also recently participated in a hackathon which inspired me to keep writing C++ code! From these two experiences, I came up with a vision to make my own Rack module which would allow the audience to visualize the performance of the piece I create.
I am fairly new to creating Rack plugins/modules, and I know some DSP in C++. What resources are available for me to start developing my own module, besides the tutorial which goes over how to setup the SDK?
I already created OpenGl widget for my module called “Modular Forecast.”
T.V. Image from: https://commons.wikimedia.org/wiki/File:TV-T%26PC.svg
I most likely won’t use this image in the release because although the website says it’s public domain, I am still skeptical about running into copyright issues. I just am using it as my own placeholder for now to visualize what this module might look like.
My idea for this is to be able to take the audio input of a patch wired to one of the weather labels and generate weather related graphics on the black screen (OpenGlWidget) inside the T.V. For example, whatever patch is plugged into the ‘Snow’ input would generate snowflakes falling on the screen when audio is generated. To make the module more interactive, the density of the snowflake precipitation would be determined by characteristics of the audio going through the ‘Snow’ input, such as amplitude and frequency. I want to challenge myself to use a third-party library to measure these characteristics, and I am familiar with Soundpipe, so I thought it would be a good idea to try using that.
However, I am stuck on the concept of rendering the particle simulation of snow/rain inside the module itself. Currently, the particle simulation algorithm hasn’t been implemented yet, but I’m just trying to render some basic shapes. I have tried looking at source code for other modules, but most of them use nanovg which I am not familiar with (for particle rendering purposes). Would I still be able to use OpenGL inside the OpenGlWidget? If so, what is the command I would use to make changes to the FrameBuffer and draw shapes? I tried calling the drawFramebuffer() function after setting the coordinates and glEnd(), but I couldn’t get a simple triangle to show up. I’m not sure if I am using the API properly.
Please let me know what I should do. Any advice helps!