Less CPU hungry VCV Rack alternatives?

Curious if fps limit is just not a target for v1.0 specifically, and if it could come in a potential v1.X update?

Obviously it’s not a high enough priority to block release (because it’s not a game-breaking feature/development milestone), but hopefully it’s high enough on the radar for a minor release?

1 Like

The idea is that you might not need it.

2 Likes

here’s hoping :smiley:

A nice alternative could also be having a button to disable animations. I usually find that a good portion of my audio glitches have nothing to do with the modules, but because the graphics card and cpu have to work hard to display all those multiple lights blinking and sequencing at different times, colors, etc. In many cases, minimizing the window eliminates all audio glitches not caused by too much audio processing.

Common misconception: Animations are an illusion caused by quickly rendering a sequence of frames that are different in appearance, so they don’t really exist and thus “disabling” them doesn’t make sense. What can be done instead is to render frames slower or not at all (e.g. my minimizing the window).

1 Like

Not sure why the semantics clarification was even necessary to begin with but, still goes with the thought of how much of the processing done by VCVRack to display graphics is affecting audio processing…Which is perhaps more important than displaying animations.

It’s not just semantics. There is no way to “disable animations”. There is no code that says “animate this plug LED”, so it can’t be turned off. What happens instead is that the window is redrawn many times per second, which may appear different based on the internal state of the program. If the state changes (e.g. the plug voltage is changed), the next frame will appear differently than the previous frame. This creates the animation illusion.

If you’re asking how Rack’s graphics thread can affect Rack’s engine thread, sometimes the operating system assigns two threads to the same core because another process (your browser, DAW, etc) is currently using the other one. Additionally, your CPU’s L3 cache is shared on all cores, so both threads share its bandwidth. There are many other reasons two threads might not be truly parallel.

5 Likes

Godot (game engine) ran in to a similar situation (they have a laptop mode for the editor.) What they do is

  • have a screen-wide dirty flag and if a control needs to update its external appearance, set the flag. Then if laptop mode is enabled the screen is only redrawn when the flag is set otherwise it’s always redrawn.
  • there’s a small spinner on the UI that increments with redraws, so you can watch when something is causing renders that shouldn’t be or not.

Although this flag would likely be flipped to maintain compatibility with old modules (assume a draw was dirty, unless the module asserts that its visual update is insignificant.)

Some things for people to think about.

Module panels and components are already cached in framebuffers.

I’m aware there’s no way to disable animations. That was a suggestion. If there’s no way to do it, okay. I’ll wait for whatever is implemented so whatever is necessary to create the illusion of animation doesn’t affect whatever is necessary to create the illusion of sound.

1 Like

I would be surprised if it happened in rack, but sometime if you are moving massive amounts of texture data to the GPU it can can affect the CPU? I think especially with onboard graphics where the GPU memory is really CPU memory. Have to confess this is based on some non-PC systems I’ve worked on on the past.

No textures are moved between the CPU and GPU in Rack whatsoever, except for Images, but few people use those. EDIT: And only when images are loaded from the disk.

1 Like

haha - I think I do that. But yes, I realize that being entirely vector based, this is won’t be a factor in VCV.

well it’s just uninspiring for me. why people do that? 50 dollars for the max style design modular…I mean VCV Rack is still leader for me. GUI, workflow, sound. No need to alternative)

2 Likes

Pure Data would be close if only it got some love in the GUI sense.

Audulus runs very well and efficiently on my MacBook Pro, and doesn’t seem to run out of steam very easily. As for graphics, the Mac version uses Metal for graphics, so is much more efficient than VCV Rack in that respect.

It’s very different from Rack in many ways, and for me the two can co-existing very nicely. Sometimes I prefer one…sometimes I prefer the other.

https://www.automatonism.com/

1 Like

I think my life is chaotic enough already.

2 Likes

My first impression of that screenshot was “Oh, PureData!”

Well then. :+1:

Not sure if anyone mentioned it before but there is pretty lightweight program called Sunvox. It’s modular synth with tracker interface, pretty cool actually.

Unfortunately it’s closed source and developed by single guy so bus factor is pretty high…

http://warmplace.ru/soft/sunvox/

2 Likes