Scripting Live
Posted: Mon Nov 16, 2015 8:51 pm
I've been experimenting with M4L, on a friend's computer. I love the way I can access the Live internal object model in M4L, to query and observe tracks, clips, instruments, and so on.
But I really despise the graphical programming style of Max. It's so slow and messy. Any programming language, from C to Scala, would be better than this mess. Or this. Or any other moderately complex "patch". On top of that, I used old versions of Max years ago, and Max 7 has managed to make it even harder to see the pretty boxes and lines.
Is there any scripting language that can access Live's object model and process MIDI events? Any programming language would do.
I know Live supports some plugin APIs, such as VST and AU, which are used by all the professional plugins, but as far as I can tell they don't expose Live's object model, so one cannot work directly with tracks, clips, and control surfaces.
I read somewhere that you can embed Javascript code inside a M4L patch and access the object model from there. But that code would run on a low-priority, single-threaded engine, so every part of it that touches real time data would still need to be assembled with boxes and lines.
Another option is to write a Max "external" in C and just put all the logic there. But if there was a way to avoid M4L altogether, that would be the best.
What do you say?
But I really despise the graphical programming style of Max. It's so slow and messy. Any programming language, from C to Scala, would be better than this mess. Or this. Or any other moderately complex "patch". On top of that, I used old versions of Max years ago, and Max 7 has managed to make it even harder to see the pretty boxes and lines.
Is there any scripting language that can access Live's object model and process MIDI events? Any programming language would do.
I know Live supports some plugin APIs, such as VST and AU, which are used by all the professional plugins, but as far as I can tell they don't expose Live's object model, so one cannot work directly with tracks, clips, and control surfaces.
I read somewhere that you can embed Javascript code inside a M4L patch and access the object model from there. But that code would run on a low-priority, single-threaded engine, so every part of it that touches real time data would still need to be assembled with boxes and lines.
Another option is to write a Max "external" in C and just put all the logic there. But if there was a way to avoid M4L altogether, that would be the best.
What do you say?