zynthian / zynthian-issue-tracking

Centralized Issue Tracking for Zynthian Project
https://github.com/orgs/zynthian/projects/1
11 stars 3 forks source link

Ability to adjust the level sent to another chain (send level) #1030

Open riban-bw opened 5 months ago

riban-bw commented 5 months ago

Is your feature request related to a problem? Please describe. It is possible to route each chain to other chains, e.g. as groups or common effect chains and also to directly route to physicaly outputs, e.g. monitoring feed. This can be considered similar to the send on a typical mixing desk. The routing is post fader but there is no individal send level to each chain which means you can't for example change the amount of (common) effect applied to each chain.

Describe the solution you'd like It would be advantageous to have a send level control for each chain contributing to another chain or direct output. Ideally this would be a control for each source chain / target chain combination and presented in the source chain.

Describe alternatives you've considered We can use a mixer plugin in the target chain with its inputs acting as sidechain inputs. The existing mixer plugins are overly complex and this puts the control in the target chain without suitable naming for each control (e.g. Level 1, Level 2...) which is suboptimal.

Additional context This is discussed in the forum. Some ideas include:

There is a challenge to present this in the UI. There could be extra control pages in the chain dedicated to these sends (and other mixer controls, e.g. phase reverse).

riban-bw commented 5 months ago

Considering the idea of adding extra page in UI control view, it may have these controls:

Most of these are accessed in the mixer view or a submenu of chain options. Exposing in dedicated control pages may allow simpler binding of these controls, e.g. using MIDI learn. (Some are not exposed for the purpose currently.) It would add to the quantity of control pages and I would recommend it be where the fader is, i.e. at the end of the list but before any post fader effects. This may be acceptable because most of these controls are seldom adjusted, they could be bound to MIDI CC and short or long lists of controls are common already. They wold only appear in audio chains, i.e. those feeding a mixer channel strip.

jofemodo commented 4 months ago

I like the idea of having a "controller view" for mixer strips. Current MIDI learning mechanism is really uncomfortable.

Regarding sending levels, IMHO, this is overkill. Zynthian is not (and it shouldn't be!) a "fully featured" DAW. Also, i don't think this feature is really useful while the send adds 1 period of latency. We should first fix the latency issue, then, we could consider to implement "send levels". My 2 cents ;-)

riban-bw commented 3 months ago

I agree that control pages for mixer is a good idea. (But then, it was my idea!)

The send level only adds latency if it is used in a loopback audio route which is the case anyway. So adding direct output level control does not add any further latency. We have resolved the previous latency issue.

Adding direct output level control does add some processing but this can be mitigated by only doing the calculation if the output is routed, a check that is already done in the library.

I will implement the library code and consider the UI changes discussed here.