Whats the easiest way to create a dynamic FX chain?

Noisey Parker's icon
Max Patch
Copy patch and select New From Clipboard in Max.

I need a simple FX chain that will allow me to change the order of the FX. I have had a look at 'Mr Matrix~', which is amazing, but it is far too complex for what I need. My basic patch is below, but you'll notice that you can have the same effect occurring multiple times which is also not ideal, and I don't have a bypass. I have looked at the tutorials and for threads here but It's not quite clicking, any help much appreciated.

Jean-Francois Charles's icon

Why are you using so many matrix~ objects? The good old way is to use just one matrix, with the FXs connected (ins on columns, outs from rows, for instance). Basically, what Mr Matrix does, without the graphics.

Noisey Parker's icon

Yeah, I find it hard to see what's going on within Mr Matrix, because there's so many subpatches and sends and receives. I'm really looking for something super simple. I don't think I've got my head around how it works, how the outputs change? Everything that I can find is on a much bigger scale than I need and not conducive to teaching myself how it works.

hz37's icon

In a similar situation I make an image that I put behind the matrix to remind myself what the hell I was thinking. An example image attached.

Screen-Shot-2015-06-29-at-21.01.29.png
png
Roman Thilenius's icon

what about using max patchcords. or a matrix consisting of a line of menus.

Noisey Parker's icon

Hi Roman,

The matrix consisting of a line of menus is the way I have been trying to go, it sort of operates like a normal DAW plug in chain does. The issues is working out the messages to send to the matrix. If I have 20 plug-ins, the possible combinations (if you want to change the orders) is huge. Do you know if someone has written a patch for matrix / menus?

Thanks for your help

Roman Thilenius's icon

you should not forget that you (mostly) will not create loops in such a system. (where you want to allow that, this will be by far the most complicated task to program)

myslef i dont use matrix style GUIs (as you can tell, i was kind of argueing against it), simply because i think 1. it is hard to read and 2. it is not a good represantation for a system where the user can patch sub chains freely.

if you allow the user to send dum dideldum first through effect A, and then from A to B and C, and then from C to F and from B to G, and then send the left channel of G together with the right channel of A into Z, how do you want to display that using a 2D matrix?

plus, if you dont want to allow loops, how do want to control that using a 2d matrix GUI? ;)

in my opinion thze most straigt forward way would be to just connect stuff on the max runtime layer, with message or signal connections. if it is not for live situation and you own max (or your target is max 7!) you should be fine with that.

-110

Jean-Francois Charles's icon

I completely agree with Roman. Although matrix~ gives you "flexibility", it might not the best thing, depending on your needs. Or at least, if you know roughly the number of possibilities you want (for instance, if you know you won't be putting a reverb before a delay in your chain), you could make a semi-flexible system with gate~, etc. Or you use matrix~ (coll because it embeds fade in/out) but your GUI is 1D / linear path with options, which will be more intuitive than a 2D matrix.

leafcutter's icon

You probably want a poly~ based solution, it's simple and really easy to manage.

Simple-FX-Chain.zip
zip
Noisey Parker's icon

Someone else suggested a poly~ solution but I can't quite imagine how to put it together? Is each instance of the poly a different combination?

Rodrigo's icon

The example leafcutter posted shows how to do it quite simply/elegantly.

Each effect is a poly, and then you have a chain of 'empty' polys which you load those effect ones in to. Pretty much the idea/model of a DAW/plugin structure.

It gets trickier with GUI for each effect, but this gets the ball rolling.

Noisey Parker's icon

Sorry!!! I didn't see the patch attached.

Noisey Parker's icon

It's a great solution, is there a way to have a GUI or to change parameters?

Rodrigo's icon

You can but the audio path has to be separate from the GUI as dynamically loading bpatchers momentarily kills all audio (unfortunately).

So you have the poly setup as is in that example but then you either use sends/receives or a separate inlet into the poly for all the parameter controls.

jcordeiro's icon

@LEAFCUTTER +1