Headless Mode in Rack v2

According to this thread

@Vortico, is there any more information you can provide about how you plan to implement headless mode?


It will be very simple. Run ./Rack -h to launch in headless mode. No window will be opened, and the autosave.vcv patch will be loaded, or run ./Rack <patch file> to load a patch. You’ll hear sound if the audio interface is set correctly, and you’ll be able to use MIDI-Map and other MIDI modules to control parameters.


That solves the module browser caching problem too! :joy:

(Sorry, I’ll get my coat…)


You won’t be able to add modules in headless mode.

Sounds excellent. Thanks for the info and good luck developing this and all the other new features and modules!


Is there a rough timeline when the v2-branch will be made public?

Around January.

Will Rack v2’s headless mode work on a machine without a (decent) graphics card?

Yes. No OS windowing or OpenGL functions are called. Should work on embedded systems with no video card at all, although libGL is required to be installed on Linux because the Rack binary links to it.


You are my hero! :smiley:

Hello, and thanks for this great soft! Sorry i’m newbie. I’m on mac and looking for this headless mode for less ressources.
i just opened my terminal and copy ./Rack -h it doesn’t run, do i have to put that somewhere else?

Headless mode will only be available from Rack v2, it’s not implemented yet

Ok thanks :slight_smile: happy to try it soon

Any chance you’re planning to include any way to do non-realtime rendering as part of Rack v2’s headless mode? I’d imagine it’s not high on your list of priorities but thought I’d ask.

What I mean is something like this:

./Rack -h <patch file> <number of seconds to render> <output filename>

For example, this would generate a 10 second .wav file:

./Rack -h example-patch.vcv 10 output.wav

I suppose that an outputModuleId and outputId would have to be provided so that headless mode know’s what signals to render to the audio file channels.

non-realtime rendering is kind of the opposite of VCV, isn’t it? Is the idea you “press play” and then it renders away on its own?

Yes. Supercollider has this functionality: https://doc.sccode.org/Guides/Non-Realtime-Synthesis.html

VCV Rack doesn’t know what a “patch output” is.

Instead, use VCV Recorder in your patch.

1 Like

Non-realtime rendering has already been announced:

  • Modules like VCV Recorder that can run much faster than real-time can render minutes of audio in only seconds, if they are chosen as the “Primary audio module”.
1 Like

And when the GPU is idle … perhaps acceleration - 30x larger patches perhaps …

On the other hand … that road has been traveled by others, not much gain.