Change routing order of FX modules
This has probably already been covered but I’m hoping for a simple solution. I have a series of video processing sub-patches (IE, saturate, brightness, contrast). For now they are hardwired in a certain order. How would I go about creating a fancy routing system that would allow for any order of processing? So maybe I want the signal flow to go 1) saturate 2) brightness 3)contrast . . . and then later I might want it to go 1)brightness 2) contrast 3)saturate . . . etc . . I was thinking maybe some sort of scripting system although I haven’t done scripting in max. The other option I was thinking about is to create a generic fx module (container) and selecting which fx is loaded via .jxs files but that seems a little complicated due to the different number of params for each particular .jxs file. I’ve attached an example using basic color fx mods which share the same number of params but other .jxs files have more params. anyway . . any ideas are appreciated. thanks
You could try controlling the routing of the FX using matrixctrl hooked up to a router object, but I only have experience using this with audio objects and the matrix~ object.
Make sure you include a bypass toggle on each FX module to remove one effect from the chain without having to do any repatching.
matrixctrl is a good way to go indeed. here is a quick mockup of what it could look like… keep in mind that if you mindlessly make connections you are going to get a stack overflow!!
----------begin_max5_patcher---------- 1260.3oc2ZsrjahCEcs8WAEq83RO4QVkY4rZ9.RkpKvViaRgAO.Nsyjp+2Gj DxF2gGxpcKCoptsvBY3dN593fD+b4B237SrRWmO47EmEK94xEKDcw6XQy2W3 tO5zlznRwvbOTvJYUtqjmJ9XbbJqL4+X7SBQMceHpZyyIY6dpfsoRd0odn0f UNHeQCDFvavdqANes4GkrUbCxi+1ePIpaP4gnM0WH9YHMckcbeRVJqRXOvKc lerR0qZnxtp9wAlzHNa8NtIYhlq63rsH69osQUQJx4LeHuawrhV2+59tLV5J IJ73W1p7c6RYWtivUNTTy.f.d+6ipJRNsopHk+szjR9v.h+fs9jSdpCvW2Or 0HQpCvW+SPpwfTchTiA25xBUGfTGvOqyWkn70kq5kIPenLwa.ZmLAbhvDX6v DuAM2pOAzBLAwxLQaS99Fc.emLA8gGc7qLA7g3S3MKXhA7If2KeB+YQdh6GS HO50kKUzhN5MxXuTCWkbfJ1IgdB2Bmm4ZL96imkhzglCBRnx.Jan9huDzRxw +jmUkEsWnNv8OKRhRc6PLBzsKkGfVWiyBf.qAcJHA1mfD26KoTik3ngIELAK IEOdiG1PRAMeHkmKSGlRPTnjRB4MDOCoD7bgRJkAO+U1PtITgmAAHzq2PP2L mPBbGR0tVbB3dBbQ.xf.G4CZCbCSZPBmX.uNHXPXCC7aAabngw.fIEr0qJAV DvikMFOg6+6UUBY3eCoXZUBh2uSUIjIFZnDSqRPnyrpDiE7PkKqingZXZCBY Jl1Xv7kJfikUKLE33YVViQzLHWiOnPs.0zHDz7IBQqLoRRIPjC0iZHo.mZQH inm.4Aa4KfCLD1fYT1xQKfzPIxrjDCEZfCmXdB4EI6FF3gRokxLlllpDGLeb EFmRf.hTmc364wqv9SPeAcdLCkHJjg3d5oq7aIUqO7RR117WzXEonBUCAhO8 .cuIXXjq963EpWzr5iEQpkSR5BOBhvyADoVMHsPDYNfnl7uM6.qDWHTePh9X gzfIUGN2RypVffxxMFlaYZozhOCKdZDMdVDoRShgRLQ2g0pqW+gZX7jbyJt6 dFbFRnC24ymbH.mO+i5vU0nRSxXaxOlU0ZiYGRkNFe44XId2LEdCZyfqogz5 xgSJdrXWLpVGqFhXwB8KTCCxf9ySesh5aFqvg3PzPambUyvlJtC1chH5svQz AyO29eiXo1a+X+dLMNLAWJmF.6t1CDXPsmM4oG2mM768SyNiJa+H02ImqAZH cH7wVlcOqrLZG6W8vYQachiiRSWuO+6i6k6I9zWtVO2bBytK4fdf53U649XS wBXi.pO6ZF16Flg6EExWKs6WFr8rphbmKJw6EgDA1jOnhAKbyG3DabD+EB7N W46eq396IiOyKUQSMbAsvOn5dBqTnF5MusmBbx6+ZZqL+XwF0EV8BobAqaYk UIYQUI4YsFC4pw7bx1srr1OW99jsGxqcnaLgdlB00hHZXQXqZQASNKBqgEEZ UKR7dKMlIwk9LwXIrkMIOcoIn8l5f5vS91kmzJliZWWbecrI6F1QzJrytycn PcpoX23N9lONpMgr7bmN4mPA1ctSm3NhkEDP0MmIxd1j14ww1yl700lH1s1B bDahBrad7qcU5wGOz91DdLaxt4BnZoext4Bn5jGGaWw3TszOgdG1T8Wdc4+i 86SXw -----------end_max5_patcher-----------
put the jit.qt.movie into a named matrix first, then you can update it in each of your FX subpatches without the stack overflow problem (if done right). It would definitely be good to have a gate on each FX bit which bypasses the processing, regardless of whether you’re using the matrixctrl to route things (which works very well).
Hey thanks a lot!! Your responses are all really helpful. I’m on my way!