4ms/metamodule

Add bypass option for modules

Opened this issue · 3 comments

Add a button/toggle on the ModuleView page.

Display bypassed module differently on the PatchView (dimmed?)

At first, just mute outputs and ignore inputs. Then, we will extend module info format to include a table of bypass routes. Once that happens we use the table.

ICYMI Rack API encourages developers to set this in their modules, e.g. https://github.com/hemmer/Befaco/blob/v2/src/SpringReverb.cpp#L87

I started implementing bypass on the 4ms VCV modules by just using configBypass. The bypass routes will be in the 4ms CoreModules info structs, so they'll be available to firmware.
To cross-reference, here's the issue for that:
4ms/4ms-vcv#14

Ok, just some notes... If someone saves a patch in VCV which has some bypassed modules, then those will need to be bypassed when the patch is loaded. So "bypassed" needs to be added to the patch format, per-module

I have been trying to think of a way around changing the CoreProcessor API since changes here would bump up the Plugin SDK API version. But I haven't figured anything out. At this point the most simple idea I've come up with is to add a new member variable bool bypassed to CoreProcessor, which isn't a big change but we'll want to roll that out at the same time as other API changes.