Dynamically scalable effect chains within M4L patcher

Micah Hillman's icon

Hello everyone,

My goal is to create a flexible M4L device that allows for dynamic swapping of effect chains within a structured signal routing setup (handled by Max). The audio signal enters the device from mc.plugin~ and is split into two paths. One path remains unprocessed, while the other is routed through an effect chain. The specific signal routing beyond that becomes nontrivial and hacky in Live (but is simple in Max), which is why I want to implement it in Max rather than in a Live effect rack.

Ideally, I would like to structure the device such that I can load Live's native effects and third-party plugins to create arbitrarily customizable effect chains, much like a Live-native effect rack. I am considering options such as using bpatcher for loading effect chains dynamically or employing live.menu for user selection. Still, I'm curious if some other approaches or objects might be better suited for this task.

Has anyone here worked on something similar or have any recommendations on how to implement this kind of dynamic effect chain swapping efficiently in Max for Live? Any tips on maintaining performance and usability would also be greatly appreciated!

Thank you :)

Roman Thilenius's icon

two directions to look into are ->poly~ and ->scripting.

but first you should consider if the concept as such works as intented, for example it is not so much fun for the user (and for the programmer) to get preset i/o and/or parameter automation done with such a box.

tyler mazaika's icon

"…I can load Live's native effects"

This part cannot be done. Your choices are [amxd~] object to load M4L devices and [vst~] for plug-ins, but not Live's native effects.