I’m interested in understanding a little more how the VCV Rack code (not the modules but the core engine) works. I’ve been browsing the code a bit, but I was wondering if anyone has any advice for which files to concentrate on, and/or if there is a discussion of the VCV architecture somewhere?
The rtaudio callback processes blocks (e.g., 64, 128, …) of samples, but it looks like modules process a single sample with each call to their
process function (is that correct?). If so, I would need to internally buffer the incoming samples if I wanted to write a module that used the FFT, for example. But then chaining several such modules would make their latencies add. I guess the same thing would happen in a real eurorack system…
Is the DSP graph organized so that module outputs are computed in a certain order (I couldn’t ascertain this)? This would seem to be important for block based process (but maybe not if modules process one sample at a time)?
Anyway, I’m just trying to get to grips with how things are done VCV-style, so any comments/insight are most welcome.