VCV Rack 2 module bypass conventions: fine points

(Moving this over from the Rack 2 announcement thread).

Quick intro: With Rack 2 coming, modules will be able to route inputs to outputs when they are bypassed (or, in probably rare cases, do more complicated things when they are bypassed). I for one am VERY happy about this feature, as I think it’s much more useful behavior in some cases than simply blocking all output, but for this feature to be widely adopted and work predictably and usefully, the right conventions will need to evolve pretty quickly.

Quick history: @Eurikon made an initial feature request and posted here, and @Vortico put forth a modified proposal here which, although nominally open, has happily made it into VCV Rack 2:

@Vega raised an interesting question over in the V2 announcement thread:

And @Vortico confirmed that it could, but he wouldn’t do it that way for a mixer:

I asked:

And @Vortico responded:

I schlepped this over here in case anyone was interested in following up, since I didn’t want to further extend a side discussion in an announcement thread.

Preface over, next post below:

1 Like

So I think this is a really interesting design question. Mixing aside, if Quad VCA doesn’t pass its individual ins to its individual outs, but instead mutes its outputs because it’s not an “effect”, would a single VCA like VCV VCA also be expected to mute its output, rather than just becoming unity? What’s the line between effect and signal chain? A VCA with a LFO over amplitude is a tremolo and I might well want to bypass the tremolo the same way I’d want to bypass a reverb. And with fancier VCA configurations like Quad VCA, or even VCA Mixer, have both individual VCA and signal chain capability.

I think where I get tripped up is that if I think of bypassing as “removing from the signal chain” it’s not automatically clear that it means “mute” versus “remove, to the extent possible, the particular processing being done by this module so that I can hear something less processed in my output.” I was interested to note that @Eurikon’s post linked above notes that Reason offers separate Bypass and Off modes, which reflects this distinction.

Happily, the API will let module developers try different things, including implementing what I would probably do in my own modules if there were an ambiguity–a right-click configuration that let users pick a more Off-like or a more Remove-Processing-like consequence of bypass. The first would almost always mute outputs, and the second would almost always apply a “neutral” process (bypass for reverbs, unity for VCAs, unity sum for mixers, etc.)

Since bypass status will (I presume) continue to be saved in V2, there is a little bit of a patch-compatibility point here in that changing how a module handles bypassing by default may change some previously saved patches.

Thank you all for putting an effort in to this :pray:t4: :+1:t4: :vulcan_salute:t4:

1 Like