mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.41k stars 1.26k forks source link

composable effects chains (macro effects) #8753

Closed mixxxbot closed 2 years ago

mixxxbot commented 2 years ago

Reported by: Be-ing Date: 2017-01-13T06:50:25Z Status: Won't Fix Importance: Wishlist Launchpad Issue: lp1656189 Tags: effects


Being able to chain 3 effects creates a lot of interesting possibilities and it would be fun to be able to make longer chains. To make this practical to use, it must be able to be intuitively controlled by the typical setup of 3 effect knobs on controllers. To implement chains of arbitrary length and keep it usable, I propose that the current effect chains exposed to skins and controllers remain with 3 fixed effect slots. What could change is that those effect slots would be able to load a chain of arbitrary length instead of a single effect. A tentative name for these arbitrarily complex chains could be "macro effects" (please suggest alternate name possibilities if you can think of them). These would work a bit like the macro effects in Traktor, but they would be composed of chained ordinary Mixxx effects with whatever superknob linking the user desires. Skins would not need to show the details of the macro effect; they would only expose the macro effect's superknob as the metaknob of the outer chain's effect slot.

As an example use case for this feature, I like to have a low pass filter after a bitcrusher in a chain. The low pass filter is used in a set-and-forget manner whereas the bitcrusher is what I am interested in manipulating while mixing. It would be great if I could combine the bitcrusher and filter effect into a macro effect, so I could free one of my 3 effect slots and its metaknob for a different effect that I am interested in changing while mixing. In the macro effect, I would set the filter effect's LPF parameter to my liking then unlink all the filter effect's parameters from the macro effect's superknob, so turning that knob only manipulates the bitcrusher.

Designing an intuitive GUI for this will be tricky.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2017-01-13T08:32:35Z


We have this already in the engine. You just need to shift you mind one point up.

You propose to rename "effects" to "macro effects", which can consist of more than one lets say "atomic effects".

So we will finally have

EffectRack is unused and the Effect Unit N channel capacity is also not used.

This means we have to get back to the LateNight effect usage where we switch effect chains instead of single effects and introduce 3 Effect Units per Deck.

We have to also rethink your latest meta knob changes. From this point of view we need a meta knob at the EffectRack level.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2017-01-13T09:02:26Z


An other alternative target you use case is a super to meta mapping enables witch + some more effect slots.

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2017-01-13T19:37:18Z


EffectRack doesn't really do anything in the engine, so no, we don't already have this. I am not proposing to make use of the "EffectRack" naming. IMO it should be deprecated and EffectRack1_X should be aliased to just X.

Macro effects would not have the same mix and dry/wet controls that EffectUnits have, they'd just have their superknob exposed as the metaknob of the effect slot. Perhaps we could allow the macro effect to choose specific parameters of effects within it to expose, but that wouldn't really be necessary.

the Effect Unit N channel capacity is also not used.

I don't understand this.

This means we have to get back to the LateNight effect usage where we switch effect chains instead of single effects and introduce 3 Effect Units per Deck.

Kind of, but instead of switching the whole EffectUnit, effect chains would be able to be switched out within an EffectUnit's chain.

An other alternative target you use case is a super to meta mapping enables witch + some more effect slots.

My initial idea was to make EffectUnit chains arbitrarily expandable and let the user hide specific effects so only 3 were showing. (That would not require a new super-meta enable switch; users would just have to unlink hidden effects' parameters if they wanted to set and forget them.) However, this would not make it as easy to reuse and rearrange specific sequences of effect chains.
mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2017-12-28T02:39:53Z


I think after saving and loading effect chains is implemented (Bug #⁠1707961), I may not care about implementing this really complicated idea anymore. We can already extend effect chains by assigning a channel to multiple effect units.

mixxxbot commented 2 years ago

Issue closed with status Won't Fix.