Rack v1 development blog

Will be changed to double-click anyway. Just needs a modification to the event engine.

1 Like

Added double-click to event engine with onDoubleClick(const event::DoubleClick &e), and changed param reset to double-click. This gesture mapping is virtually perfect because resetting doesn’t require the keyboard, right-click does what right-click should do (opens a context menu), and existing users will learn of the new gesture when they see the “Initialize” item in the context menu.


Might be cool down the line to have extra control where a mouse has more than 2 buttons. Have mine mapped to shortcuts at the minute though (X-Mouse Button Control), middle click initializes.

Plugins can take advantage of extra buttons using the int event::Button::button field, but at the moment there are no ParamWidget actions that need to be assigned extra mouse buttons.

1 Like

Cool must look into that. Nudge a param to next value perhaps!

Added "frameRateLimit" and "frameRateSync" to settings.json. To save power, you can set the limit to ~25. I’m going to leave this out of the GUI, but you can change it in settings.json with a text editor.


Setting the frameRateLimit to 25 means it caps the framerate at 25 fps ? what does the frameRateSync setting do?

It determines whether vsync is enabled.

Sorry if out of bounds Andrew, but will some form of nudge/push/shove… feature be implemented in 1.0? Basically, moving a whole row of modules to the right or left. It would be immensely useful during patching, and I know it’s been talked about before but I lost track. Thanks!


It’s on the list. I usually keep my list private though, to avoid unnecessary debates that waste development time.


Big YAY!


Yes, afaik all DAWS run elevated. I would prefer not to have to make a multi-threaded version of Thread Booster, but I will if VCV doesn’t do it.

You might not find this valid, but when I was making Thread Booster I make a plugin called “CPU Hog” that spun up a bunch of thread at normal priority. Seemed like a reasonable bad case to me - like if you had a bunch of tabs open in a browser and they were all doing thing. Or if windows spun up some background process.

Of course using this “load test” raising the thread priority made an enormous difference.

Ardour will fail to run if it doesn’t have permission to get real-time thread priority. I don’t know of any other DAW that does (presumably REAPER and FL either were allowed by default on Windows, or they handle denial more gracefully.)

[Ignorance ahead] Doesn’t the elevation have more to do with the code directly dealing with the interface? Code I’ve seen so far wants RT to shuttle audio to the device, but otherwise doesn’t care how it gets generated.

What OS for Ardor? Squinky Labs thread booster requires that you give it one time permissions on linux, documented in the manual. On mac and win we use the highest priority that doesn’t require special permissions.

Okay, untested since I don’t have all my computers with me. Tell me if this is stupid: https://github.com/VCVRack/Rack/blob/v1/src/system.cpp#L100-L111

That does not look stupid at all. It look like a more coherently written version of what ThreadBooster does. The caveat on linux from my manual will (I think) apply here:

"You can always set the real time priority of Rack if run as root, but we do not recommend that. Instead you may use setcap to give VCV Rack permission to use real-time priority.

sudo setcap cap_sys_nice=ep <path to Rack>

After giving Rack this ability, it will stay set until the Rack executable file is changed, either by downloading a new one, or building a new one on top of it."

(of course if you feel like being extra cautious, this could be some settable option. I think Reaper takes that approach, although that program gives one too many choices!)

Didn’t build on Mac: #1190

I notice that the Undo and Redo menu items don’t tell you what they will undo or redo. Many applications will say undo insert module or undo remove wires. Any though of putting that into 1.0? (I realize it’s a pretty minor feature, it’s just that I’m doing some undo stuff now and want to do it correctly).


That would be trivial, good idea.