Is there a simple audio send point M4L device somewhere?

Questions and discussion about building and using Max for Live devices
Nokatus
Posts: 1064
Joined: Fri Jul 01, 2005 7:06 am

Is there a simple audio send point M4L device somewhere?

Post by Nokatus » Thu Feb 22, 2018 8:43 pm

Hey, just wondering... Trying to search to no avail, is there a simple routing utility for M4L that you can place on a Live channel, and you can send its input signal into some other channel in the project? Like, stuff comes in ---> select an audio channel anywhere in the project where to send the signal ---> stuff goes there :)

S4racen
Posts: 5120
Joined: Fri Aug 24, 2007 4:08 pm
Location: Dunstable
Contact:

Re: Is there a simple audio send point M4L device somewhere?

Post by S4racen » Fri Feb 23, 2018 1:06 pm

Not in Live 9, but that is possible in Live 10...

Cheers
D

n9
Posts: 32
Joined: Wed Oct 06, 2004 8:12 pm
Location: NYC
Contact:

Re: Is there a simple audio send point M4L device somewhere?

Post by n9 » Fri Feb 23, 2018 8:21 pm

possible sounds great -- is there a reference implementation somewhere?

S4racen
Posts: 5120
Joined: Fri Aug 24, 2007 4:08 pm
Location: Dunstable
Contact:

Re: Is there a simple audio send point M4L device somewhere?

Post by S4racen » Fri Feb 23, 2018 9:13 pm

Not that i've seen, there's generally not that kind of thing available, you'll see devices start to appear shortly i guess...

https://isotonikstudios.com/product/mul ... udio-tool/

Cheers
D

Nokatus
Posts: 1064
Joined: Fri Jul 01, 2005 7:06 am

Re: Is there a simple audio send point M4L device somewhere?

Post by Nokatus » Fri Feb 23, 2018 9:20 pm

Yeah; specifically, the thing that made me ponder this is... The new Surround Panner! It actually contains this functionality. You can select the destination channels in your project, out of any channels you wish, for the speaker pairs. And you can place the panner M4L device anywhere where you can place a plugin. It's even possible to use it exactly in this manner, that is, you can just choose a four speaker configuration, for example, and adjust the panner control in the GUI so that it sits between one speaker pair. Just select a relevant destination channel for those speakers, out of anything in your project (even the return channels) :), and boom, you can send from any point in the signal chain you wish to drop the panner device into, to any such channel in your project. It's rather great.

In other words, it's very possible, and can be confirmed just by trying the Surround Panner.

However, it's been at least six years since I even opened the Max editor. I'm not comfortable editing M4L devices, but I guess it would be trivial for someone more experienced to check out the structure of Surround Panner and reduce it to the core items that make the send point action possible. Remove everything else, just have a selector "where you wish to send", ta-dah.

I was kind of wishing there was such a device already somewhere, but I guess there necessarily isn't? Would be very very cool! Using the Surround Panner as a hack of sorts for this, in the mean time, hehe.

n9
Posts: 32
Joined: Wed Oct 06, 2004 8:12 pm
Location: NYC
Contact:

Re: Is there a simple audio send point M4L device somewhere?

Post by n9 » Mon Feb 26, 2018 8:40 pm

it's pretty easy to get the audio in and out now... I'm sure there are more elegant ways, but this works:

open the default m4l audio effect device.

you'll see a plugin~ and a plugout~

change the plugin~ to:

plugin~ 1 2 3 4 5 6 7 8

and the plugout~ to

plugout~ 1 2 3 4 5 6 8

then you will see 8 discrete inputs and outputs.

save and close and when you get out to Ableton check the input and output menus: look for your track and then in the subselector you will see (plugin name) 1/2 *and* 3/4 5/6 7/8 are selectable.

I've already used this to make an audio looper (using the karma external) that has a feedback insert (like the Live looper) and it works.

I'm trying to wrap my head around all the new stuff this enables.

Anyway -- hope this answers your question.

Nokatus
Posts: 1064
Joined: Fri Jul 01, 2005 7:06 am

Re: Is there a simple audio send point M4L device somewhere?

Post by Nokatus » Mon Feb 26, 2018 9:47 pm

Heyy, thank you, I will try this.

Nokatus
Posts: 1064
Joined: Fri Jul 01, 2005 7:06 am

Re: Is there a simple audio send point M4L device somewhere?

Post by Nokatus » Mon Feb 26, 2018 10:00 pm

Ah, yes, this is very useful too, and simple and elegant, thanks. It isn't quite what I was wondering about, though :). Try the Surround Panner example ^ above and see what I mean. You can just place that M4L device at any point in a chain, and then use its GUI to select a channel in your project, and the signal is injected into that channel, from that point. There's no need to set anything in the actual Live i/o menus, and you can use multiple instances of the device anywhere in your project to send stuff into the same arbitrary channel this way, even into return channels.

rinkybink
Posts: 34
Joined: Fri Oct 26, 2012 2:44 am
Location: Manitou Springs, CO

Re: Is there a simple audio send point M4L device somewhere?

Post by rinkybink » Tue Feb 27, 2018 5:09 am

Not Max, but you can place a compressor or gate anywhere you want and monitor the sidechain and select any audio stream that you want to show up there.

Nokatus
Posts: 1064
Joined: Fri Jul 01, 2005 7:06 am

Re: Is there a simple audio send point M4L device somewhere?

Post by Nokatus » Tue Feb 27, 2018 10:28 am

rinkybink wrote:Not Max, but you can place a compressor or gate anywhere you want and monitor the sidechain and select any audio stream that you want to show up there.
Yeah, that one is a classic :) from the early days. Still works like a charm. It's very useful, but not quite the same. In a way it's like the opposite routing of this one. It's very workable when you need a routing like this, however.

What you can currently do with the Surround Panner is, you can target an arbitrary channel in your project, sending that channel audio from any point you can place the Surround Panner instance in, and you can use multiple instances in any such places in your project, all sending to that same target channel if you wish. On the fly, without touching the target channel or needing any other setting up. If you do it with the compressor trick, the compressor instance(s) need to be stacked at the receiving end, for example in parallel rack chains on the target channel (if you're sending from multiple sources). Then, you need to place an audio effect rack on the source channel(s), at the insert points you wish to send the audio from, and select each such rack chain, per taget channel compressor instance sidechain "audio from", in order to get that "place send points anywhere you want on the source channel" functionality.

Basically, I was wondering how to do this in a very clean way, using just one M4L device :) where you could simply select the target channel, boom, stuff gets sent there. Like with the Surround Panner, but with no unnecessary bits (for this task).

rinkybink
Posts: 34
Joined: Fri Oct 26, 2012 2:44 am
Location: Manitou Springs, CO

Re: Is there a simple audio send point M4L device somewhere?

Post by rinkybink » Wed Feb 28, 2018 3:37 am

Ah! This makes sense. I didn't understand until I just loaded up the M4L Surround Panner and checked it out. Your idea is a great one!

BTW, I actually did used to do the whole racked up chains and send audio to the same reverb and use separate pre-delays on different instruments to try and place them in a virtual room with one reverb. That was a mess!

I would use this device you are seeking.

stringtapper
Posts: 6266
Joined: Sat Aug 28, 2004 6:21 pm

Re: Is there a simple audio send point M4L device somewhere?

Post by stringtapper » Wed Feb 28, 2018 7:50 am

Nokatus wrote:Ah, yes, this is very useful too, and simple and elegant, thanks. It isn't quite what I was wondering about, though :). Try the Surround Panner example ^ above and see what I mean. You can just place that M4L device at any point in a chain, and then use its GUI to select a channel in your project, and the signal is injected into that channel, from that point. There's no need to set anything in the actual Live i/o menus, and you can use multiple instances of the device anywhere in your project to send stuff into the same arbitrary channel this way, even into return channels.
I haven’t had a chance to dig into it yet, but the reason the Surround Panner device doesn’t require choosing the sends on the destination channel’s drop down menu is almost certainly due to new API features that allow dynamic routing, so that would be the next step to pursue once you’ve used an example like n9’s as a starting point.

Although starting with the panner itself—copying its contents and pasting into a new device—and then using the bits that you need might be a better way. Some assembly required, of course.
Unsound Designer

n9
Posts: 32
Joined: Wed Oct 06, 2004 8:12 pm
Location: NYC
Contact:

Re: Is there a simple audio send point M4L device somewhere?

Post by n9 » Wed Feb 28, 2018 8:09 am

I see what you are saying now.

The menu's in the Surround Panner are really great -- they perform better on my 80+ track session than the ones in Live's GUI.

I dug in and it is some PhD looking Max voodoo to me. I can't even figure out where the data is coming from much less steal it. But I really want those patchers for my own needs. Who can help?

Nokatus
Posts: 1064
Joined: Fri Jul 01, 2005 7:06 am

Re: Is there a simple audio send point M4L device somewhere?

Post by Nokatus » Wed Feb 28, 2018 10:09 am

stringtapper wrote:I haven’t had a chance to dig into it yet, but the reason the Surround Panner device doesn’t require choosing the sends on the destination channel’s drop down menu is almost certainly due to new API features that allow dynamic routing, so that would be the next step to pursue once you’ve used an example like n9’s as a starting point.

Although starting with the panner itself—copying its contents and pasting into a new device—and then using the bits that you need might be a better way. Some assembly required, of course.
n9 wrote:The menu's in the Surround Panner are really great -- they perform better on my 80+ track session than the ones in Live's GUI.

I dug in and it is some PhD looking Max voodoo to me. I can't even figure out where the data is coming from much less steal it. But I really want those patchers for my own needs. Who can help?
Now we are on the same page, hehe, yes this is exactly the point where I'm stuck in, with my (very) limited M4L skills and experience. Creating an instance with a suitable plugin~ and plugout~ configuration is still tremendously more trivial than trying to decrypt those routing workings of the Surround Panner, for me that is :P

Where the routing selectors are, the panner loads this as a bpatcher subpatch:

Image

It's BrowseRouting2.maxpat, and in the library it seems to reside only in the Surround Panner's "patchers" folder.

Anyway, the structure of Surround Panner is such that I cannot make heads or tails of what is being done with the data this allows to read, and how, in order to get the simple "select a destination, signal gets sent there" functionality we see on the finished device.

jonbenderr
Posts: 121
Joined: Sat Feb 27, 2010 11:20 pm

Re: Is there a simple audio send point M4L device somewhere?

Post by jonbenderr » Wed Feb 28, 2018 10:44 am

I actually managed to extract the bpatcher for use elsewhere. You also have to include the attached send and receive objects outside of the bpatcher and you'll still need the extra outputs on the plugout~ object.

I'll see if I can get some patch code posted later with the stripped down routing basics of the surround panner if anyone is interested and if someone doesn't beat me to it.

If you think that screenshot is confusing, you should have a look inside those RoutingObjects patches if you have not already. Yikes!

I'm assuming/hoping those patches will be documented abstractions sooner or later.

I'm sure there was a really good reason for it but the fact that these API elements output in dict format seems more complicated than need be. Although I have very little experience with dict so it might be easier than I think.

Anyways, the basic gist is you still have to have all possible routings available through plugout~. So not only do you have to set the receiving channel through the API, but then you have to make sure whatever you want routed out is set to the appropriate channels on the plugout~ object through use of matrix~ or something similar. Each of the bpatchers in the surround panner is only for controlling the receiving channels for each of the outputs in the plugout~ device.

.
Last edited by jonbenderr on Wed Feb 28, 2018 11:11 am, edited 3 times in total.

Post Reply