Did I misunderstand what M4L is for?

Basvlk's icon

Hi -

I think I assumed that M4L was an extension of Max, allowing Max to interact with live. I'm now starting to think that this was a misunderstanding of mine: it seems more like M4L is to make self-contained devices within Live that don't really talk to the 'outside world' (Max): but when you edit them they just happen to be open in Max and so they can talk to other patches.

what's your view?

I'm struggling a bit here because I wanted to use Max to tie up a bunch of different functionality in Live, transport control, view control, parameter remote control so I could make a 'dashboard' into Live of everything I want to control. But now I'm not sure if M4L is really meant as a gateway into Max.

stringtapper's icon

It's not meant to be a bridge to Max and never was. It's Max *for* Live, as in Max running inside Live.

There's been plenty of promotional info on M4L for a while now to help you understand what it is.

Basvlk's icon

thanks for that! I think it's a case of projection :-) (me projecting what I was hoping for and not reading the info properly) It's just me getting to understand the possibilities and limitations. It actually explains why a lot of things I tried to do didn't work.

All that said - what is the best way to have Max communicate with devices inside live? From what I gather,
-Max send and receive objects can't communicate between Max patches and M4L devices (unless you're editing the device),
- you can set up communication between Max patches and M4L devices through udp

are there any other options?

Thanks!

pid's icon

basvlk, it seems you might have missed something rather special, and sort of the point of M4L, called the 'Live API', and the 'LOM' ('Live Object Model'), and the special Max objects that interact with them ('live.*'). all in the docs. you can also use a shitty old protocol called 'MIDI', and also interact with the outside world via udp. oh, and of course there is MSP and Jitter as a bonus. good luck.

broc's icon

Re communication: M4L enables *Live* to communicate via UDP with the outside world, in contrast to other DAWs like Logic or Cubase. On the other hand, conventional MIDI/audio communication of M4L (Max within Live) must be routed through Live and is thereby restricted. So from Max view, M4L allows utilizing the functionality of Live at the cost of restricted MIDI/audio communication.

Basvlk's icon

String tapper, paid, broc, thanks, i think I'm slowly getting it.for the last few weeks I've spent pretty much most of my spare time ( not much of it, darn day job!) on the live api and the LOM, and my IPad controller is pretty much complete. My surprise came when it all stopped working when I closed my M4L device and try to run it without being open for editing in Max 6.

I want to create some displays (both on the iPad and as floating windows on my Mac) that provide me status info and visual feedback on the state of my setup, part of that information coming from live: so I need to get some kind of interaction with the live api from outside live.

Sounds like the way forward is to have a M4L device inside live, and communicate with it through udp, tha's fine! I can work with that :-) midi... You gotta love it, still going after, what, 40 years? That was the previous version of my setup and its limitations the main reason for me buying M4L and max. I'm loving it btw, just trying to understand what I can and can't do.

Any other tips on communicating with live from outside live much appreciated!

Thanks!

protocol's icon

I would highly recommend using OSC over MiDi, personally I have had issues running TONS of midi thru ableton and it keeping its bidirectionality, but have had no issues with OSC. If you do you wont be able to go back to MiDi :)

broc's icon

+ 1

UDP/OSC works perfectly for control data, more powerful/flexible than MIDI and future-proof.

Basvlk's icon

Thanks guys!

synnack's icon

"Max send and receive objects can't communicate between Max patches and M4L devices (unless you're editing the device),"

This is not true. I use send/receive all the time in M4L devices on different tracks, between devices. Works great.

What doesn't work is send~ and receive~

Different.

broc's icon

Hi synnack,

it seems you misunderstood the statement

"Max send and receive objects can't communicate between Max patches and M4L devices (unless you're editing the device),"

Note that it refers to communication between Max and M4L devices, not between M4L devices.

synnack's icon

@broc doh! You're right. I thought you meant something different. Apologies.