M4L is a CPU hog?

wackazong's icon

Hi,

I experience serious performance issues with M4L:

Create a new Live Set. Delete the MIDI track. Duplicate the audio track about 10 times. CPU load: 2% or so.

Do the same, but before duplicating, put a new M4L audio effect into the track. Now, with 10 empty M4L effects, the same 10 tracks use about 10% CPU!

How is that possible?? It does not really matter whats in the device, the device itself seems to be very resource-intensive.

Thanks for clearing this up for me....

pid's icon

try doing the same experiment twice more, but first with 10 simple small vst plugins (e.g. a small delay or so), then repeat with ten vst hogs, e.g. instruments, like 10 reaktors or 10 kontakts. you'll find that cpu varies wildly. therefore, one cannot determine anything from what you have said because we have no idea what is inside your m4l device. a simple m4l midi device will use next to nothing. a m4l 32 voice poly~ device with spectral processing will take up a massive amount of cpu. such is life (and physics). m4l DOES take a little more cpu than other things because it is an entire programme embedded in another, but it is not excessive. also, a badly programmed m4l device will always be shit. what are you using?

wackazong's icon

Hi, what I meant with "new M4L audio effect" is a completely empty M4L device (only containing plugin~ and plugout~). Sorry if that was unclear. It is clear to me that the content of the device matters. The problem I am describing here though is that the simple existence of a M4L device with nothing in it is already taking a lot of CPU.

Can you maybe correct me on these assumptions:

- M4L shares memory with Ableton Live, both together cannot exceed 4GB.
- M4L runs inside Ableton and is not multiprocessor-capable, i.e. all M4L devices need to run on one CPU?

Thanks, ALEXander.

Home Surgery's icon

There was a topic about something similar regarding multiprocessor capability. That topic confirmed your assumptions.

See PLD's answer.

I personally agree with you. It is acceptable that M4L is heavy, but both M4L and live in it self uses a lot of CPU power. When comparing ableton live to logic I can see that the sequencers are very different in CPU-usage, Logic being stronger.

wackazong's icon

This sucks. Big time. Well, I will just have wait until M4L grows up then, I guess.

Ableton and Cycling74, two things on the wishlist for Christmas (see, I give you some time):

- 64 bit Ableton and M4L
- M4L with real multicore capability and leaner plugin architecture

Thank you so much.

José Andrés Medina Ochoa's icon

so... is M4L still using 1 core?

Mellon's icon

yep, everything in Ableton is 1 core per track, meaning m4l is sharing that one core w/ whatever other devices are on that track.

ecuk's icon

Live uses one core per signal path, which might be more than one core if a track has multiple chains in parallel: https://help.ableton.com/hc/en-us/articles/209067649-Multi-core-CPU-handling#h_01F748QZVVM1MCQ2T6D6J9HQQ5

José Andrés Medina Ochoa's icon

so there isn't a way for Live to use more resources... more than 4GB of RAM or more Cores???
otherwise I might need to use standalone max apps instead of M4L...

mheton's icon

maybe that is the reason why we got rnbo ...

José Andrés Medina Ochoa's icon

Yeah, I believe so... although with RNBO we can have anything we want on any DAW... but Ableton should still try to fix or optimize this...

Sonoran Music Devices's icon

so there isn't a way for Live to use more resources... more than 4GB of RAM or more Cores???

Ableton is 64 bit, so the RAM limitation is gone.

Ableton can easily use more cores for a given track as another poster above mentioned. I do it all the time by placing devices in parallel chains/separate signal paths. Obviously, that might not work for all cases, but you'd be surprised at what it can work for. And if you are building M4L devices, then you can possibly spread out the load of your use case across parallel chains.