Max 4 Live (Live 10) DeviceIO get available_routing_channels Invalid Id

Motimer Pavlitski's icon

Hello,

I am trying to create multichannel m4l devices but am struggling to send audio between devices in live 10.

My method:

First I load a few instances of my M4L patch in Live 10 with 10 channels on the pulgout and plugin. I then get the device path, then a pair of audio_outputs, then set the routing_type to it's own channel, then ask it for the available_routing_channels, then when I go to use the id's it gives back the live.object says "invalid id".

I'm really stuck as this seems like a bug in m4l. I have tried numerous patches with various strange results, one time it even passed back an m4l device id in the list of available_routing_channels. I have reinstalled a clean Live 10 (problem continues). Any help would be greatly appreciated, I have been working on this nearly daily for over a month (Masters Project).

I know it’s possible in Live 10 as the Envelop patches (http://www.envelop.us/software) mange to pass multi-channel audio between them, but they are using the “RoutingObjects” and “BrowseRouting” patches taken from Ableton’s Surround Panner M4L device. I am trying to cook my own as these objects are so heavily connected with the umenu object.

Here’s a patch with some basic stuff to get you started if you want to have a play.
(you will need to click around, change id numbers and copy over the routing_type dict)

My version of Live: Ableton Live 10 Suite (10.0.6 Build: 2019-01-09_5d8b434734

M4L_multi-channel_patching_test.amxd
amxd 13.88 KB

Max Gardener's icon

Have you looked at Manuel Poletti's Audio Mix package (accessible via the Package Manager)? There may be some valuable insights there....

Motimer Pavlitski's icon

Ooo no, thanks I will have a look.

Unfortunately it only lets you embed a M4L device in max it doesn't let you connect to other M4L devices in the live environment as far as I can see, but they are interesting patches thanks.

Motimer Pavlitski's icon

Well, long story short.
The id and identification number have no relation to each other. I ended up building a patch that requests the available_routing_channels form other devices and correlate the missing information so a device can get its own output. I used this bridge in the MT4L Suite and its abstracted away if anyone wants to use it feel free :)

https://github.com/Mortimyrrh/MTools-for-Live