option to mix output of effects units without reducing dry signal
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mixxx |
Fix Released
|
Wishlist
|
Be |
Bug Description
Currently effect chains are always mixed as inserts. There is a capability in Mixxx to change effect chains to a send mode, but this is not exposed in the GUI presently and it does not work well. Insert chains use the unit's mix knob to crossfade between the dry and wet signal, whereas send chains should use the mix knob to control the input volume to the chain and mix 100% of the wet signal with 100% of the dry signal. This web site depicts the difference in the signal flows with diagrams:
http://
We have some effects, namely Echo and Reverb, that are hardcoded to act like individual send effects within an insert chain. Their output is a mix of 100% of their wet signal with 100% of their dry signal and they have a Send parameter controlling the volume of the input. This does not have the same capability as a whole chain mixed as a send, which would allow for use cases like applying an Echo to the mid and high frequencies but not bass without taking the bass out of the dry signal. To work properly in a send mode chain, these effects would have to adjust to only output their wet signal and not copy the dry signal. In an insert chain, the effects' Send parameter allows for controlling the relative prominence of the effects within the chain, but in a send chain the Send parameters of the effects make no sense because they would only reduce the volume of the whole chain (which is the responsibility of the unit's mix knob). When these effects are loaded into a send chain, I think Mixxx should hardcode the effect's Send parameter to 1, hide the parameter, and allow for a different default metaknob linking because the Send parameters are linked to the metaknob by default. This would require implementing the capability to hide effect parameters first (Bug #1653325).
For example use cases of send effect chains, watch the videos linked in:
http://
With the Components EffectUnit, an EQ effect could be loaded first in a send chain and that effect could be focused. That would give the user control over the frequency band kill switches with the effect buttons on their controller similar to the Pioneer DJM-900NXS2, or the user could use the effect parameter knobs for more precise control.
Another use case aside from EQing the input to an effect chain would be chaining Reverb after Echo. In Mixxx 2.1 this does not have the expected effect because the Reverb is applied to both the dry signal and the echoed sound instead of adding reverb to only the echoed sound.
The capability for switching a chain between send and insert modes should be available with a toggle button in the skin section for each effect unit. The insertion type should be a property of the chain, not the effect unit, so that chains of effects in send mode could be easily reloaded without the user having to think about the insertion mode (refer to Bug #1707961).
Changed in mixxx: | |
milestone: | none → 2.2.0 |
summary: |
- SEND effect chain insert type does not work + SEND effect chains |
description: | updated |
summary: |
- SEND effect chains + option to mix effect units as sends |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
summary: |
- option to mix effect units as sends + option to mix effect chains as sends |
description: | updated |
Changed in mixxx: | |
assignee: | nobody → Be (be.ing) |
importance: | Undecided → Wishlist |
tags: | added: effects |
description: | updated |
description: | updated |
description: | updated |
Changed in mixxx: | |
status: | New → Confirmed |
summary: |
- option to mix effect chains as sends + option to mix output of effects units without reducing dry signal |
Changed in mixxx: | |
status: | In Progress → Fix Committed |
Changed in mixxx: | |
status: | Fix Committed → Fix Released |
Let's discuss the exact signal flow here, before starting to code.
I like to prevent long discussion when the work is done like in the postfader branch. I think I have not fully understand your approach. Can you draw a picture? I hope I will find some tonight to ask some details.