Polyphonic Send FX expressions

There’s been discussions about how it would be great to have option to include nested FX chains into polyphony of native Bitwig instruments, so polyphonic modulations could be applied to them to differentiate FX processing. Naturally the downside would be that entire FX chain would have to multiply by voices, which could lead to severe CPU impact.

But I think I have come up with alternative solution that could resolve this issue, while allowing polyphonic FX processing. The idea is to include Send expressions beside normal note expressions, which will populate with available sends for the given track.

Much like with pre/post fader behavior, Sends would have 2 modes:

  • Pre-Gain: voice is sent to FX before Gain expression applied
  • Post-Gain: voice is sent to FX after applied Gain expression (so if Gain is 0%, then neither instrument output nor FX track receives signal)

Those could be accessed via pianoroll, and then special NoteFX device which would have variety of ways to allocate incoming notes to available Sends (FX tracks). Such ways could include mapping MPE expressions to Send selection/levels, although ways of mapping could be simplified if NoteFX would be given polyphonic modulators capability.

What problem(s) would this feature resolve?

Ability to have different FX processing for individual voices of native instrument. Meaning ability to take out and process only signal from specific note(s), instead of processing mixed output from the instrument. Described way shouldn’t come with extra burden on CPU, it’s easy to scale as needs grow.

How does this feature fit in Bitwig as a product?

I think it fits perfectly fine and could be one of the unique killer features of Bitwig.

Is there already an alternative way to achieve this on Bitwig?

There’s a workaround using ‘Mod out’ and 'DC offset’s, that allow extracting some or specific voices to their own chain(s) in Grid, instead of general mixed output, then it can be processed in place. But it seems for some reason FX layers device doesn’t allow sends when it’s in nested chain, so current approach is less CPU-friendly and this whole idea could be streamlined for ease of use for everyone.

Could it be implemented using Bitwig components or APIs, without Bitwig team’s support?

As mentioned above, it can be done if you’re using Grid, just not pretty.

Could it be provided by a VST or something else reasonably integrated with Bitwig?

As mentioned above.

Are there other products that offer this feature?

Haven’t heard of any examples in software, but some hardware grooveboxes have ability to apply FX to specific trig/note.

Relevant links (optional)

to be added later