Module's appearance changes when zooming in the module browser

To make my module BASICally look more interesting in the module browser, I started paying more attention to the behavior of the BasicallyWidget (direct descendant of ModuleWidget) when ‘module’ is null. This allows it to look like this in the browser:


which I think is more inviting.

However, I notice that, while in the module browser, I change the Zoom to some other value (here, from 100->71), the image changes quite a bit:


Hey, that’s not as nice.

If Rack is restarted, then the preview will again render correctly at the new Zoom level, but then the ugly blankness reappears if you zoom back to, in this case, 100%.

Now some parts of the design (the code screen) are dynamic by necessity (because the module can be resized horizontally). So I suspect that’s part of what’s causing this. But does someone have a more concrete knowledge of what happens when the Zoom is changed?

Also, you may have noticed that the preview image in the web-based VCV Rack Library is also in ugly-form. Does anyone know how those are created, and how I can verify (before release) that it looks my preferred way? I know there’s some reference to “Screenshots successfully generated with ./Rack -t 2” in the release process, but I don’t know enough to say what that command looks like in full in my case.

Thanks in advance,


See VCV Manual - Installing & Running for command line startup to do screenshots.

why, oh why, did you call our modules “VCVRack”? unless you override on the command line, git clone will make a folder by that name.

1 Like

That is a weird bug. Of course a lot of modules “draw stuff” when module pointer is null, for the same reason - so they look decent in the browser and in the library. Don’t know what’s up with yours. My old ones don’t seem to have the same bug. But of course your variable sized module is more complex than anything I’ve made.

Figured it out! Bug in my conditional logic (found other ones while hunting for it) that was calling hide() on the “screen” when module was NULL. This fixed both the screenshot and the zoom issue. Not clear why it didn’t fail otherwise.