Effect ordering

synnack's icon

Not finding much in the archive on this so hoping to start a new thread for guidance.

I'm looking for a strategy on building logic to change the order of effects. In my use case this is for jitter video effects but really it would apply all the same to MSP audio effects.

I want to be able to say that brightness comes before contrast which comes before blur (for example) and then change that order as needed with presets.

As far as an interface goes I would imagine a single column of unmenus where the first unmenu is the first effect and you just change what's in the list boxes to change the effect routing (see attached maxpat example)

The interface part is simple. Presets are simple. But my brain is breaking on what backend is needed to support such flexible routing of effects that can be changed like that.

This seems like this would be a really common problem to solve, as ability to change effects ordering has a radical impact on the output.

Can anyone point me to an example patch that does something like this? or advise on a set of objects or strategies to pull that off?

2928.helpeffectsorder.maxpat
Max Patch
Roman Thilenius's icon

basically send/receive - or gates.
limit yourself to a small 3x3 matrix and experiment with different methods.

Chris Muir's icon

It still sort of hurts your brain (or at least did mine), but matrix~ will get you there, I think.

synnack's icon

Yep. Breaking my head big time. matrix~ does not seem to understand jitter/video signals. Just MSP audio ones. ugh.

Andrew Benson's icon

You can use router for Jitter stuff. Since Jitter doesn't sum inputs like MSP does, you'll probably want to set matrixctrl to not allow multiple ins to the same out.

synnack's icon

Somewhat answering my own question, I went with the send/receive and gate/switch option. Took me a while to unbreak my head. For the archives I've attached the maxpat plus the js file I use to detect infinite loops.

2942.ChangeEffectOrder.zip
zip