Correct, this is because that’s how context menus work on VCV Rack.
In order to create the menu, the module widget has to be instantiated. Opening a patch without playing it doesn’t instantiate the modules, it just lets you view the modules and their connections and mappings.
The reason it’s this way is because that’s how the VCV Rack framework was written. And you see the same behavior on VCV Rack, it’s just not so obvious since you can’t open a patch without playing it on the computer. But the same thing happens: you can only view the Options(right-click) menu for a patch that’s playing (though you never get a chance to see a patch without playing it).
3 Likes
Ideally someday there will be a menu API for the Meta Module so we can adjust the options before pressing play. But that sounds like a lot of work and obviously it’s not a priority.
Yeah, we could make a new menu API, and I considered that initially. But all modules ported from VCV would need to opt-in to it (rewrite their code to use the new menu API). Which is possible but lots of VCV-ported modules have tons of options, so it would mean lots of re-writing by plugin maintainers.
We could make it so that if you pause the currently playing patch, then open a new patch it will load all the modules, replacing the patch you just stopped. Then you would be able to see the options before the audio starts (essentially, the previous patch would be unloaded, the new patch would be loaded, and the audio will be paused). But you would need to pause the previous patch’s audio first.
I’m guessing this is coming up because some modules aren’t properly saving their state into the patch file. So when you go to load the patch, you have to manually select certain menu items? In that case, the best solution would be to change the module’s code so that they save their state in the patch file.
Yeah, obviously you’ve thought about this a lot. Thanks for spelling it out.
And yeah, this was prompted by the sampler modules that don’t save sample paths, as discussed on another thread; that use case is probably moot given the discussion there.