Articles

Audio Routes: A new system for multi-channel routing in Ableton Live

Multichannel routing in Live with Max - the Audio Routes Max For Live system

With the release of Live 10, an important (and previously unavailable) feature was added to the Live API: the opportunity for a programmer to access audio anywhere within a Live session through a Max for Live device. This opens the door for many new M4L options, including audio spatialization, side-chaining and massive multi-channel audio routings.

In order to make this new functionality more easily accessible, we’ve created a free set of Max for Live-based tools called Audio Routes, provided as a set of devices, example Live Sets and detailed documentation.


This package is targeted to both Live users and Max for Live programmers, and can be seen as either ready-to-use devices or as examples for creating your own multichannel devices. It comes with more than ten pre-built devices and a series of Live sets that show these devices in action:

Example: 01 Audio Routing Example.als

This Live set embeds a device named Audio Routing Example that serves as a base for the main principles that need to be well-understood in order to use (and program) multichannel devices in Live:

The device resides in a central channel location in the Live set, and shows a number of possibilities using the Live API for audio routing from within any M4L device. With this device, you can:

  • grab audio from Live tracks into the device,

  • alter or re-route grabbed audio,

  • send the re-routed audio to other tracks in Live.

You’ll notice that the inputs and outputs have to either be Live tracks or hardware I/O connections: that’s a required constraint in the Live API. In this device, you can see that the routings are processed through dedicated popups - which resemble the routings popups in regular Live tracks.

There is a second constraint of routing in Live - and, by extension: routings have to be set as stereo pairs. That’s why you will find that the routing options are all labeled in pairs.

Example: 02 Audio Send Receive.als

To illustrate the possibilities offered by the routing features within a M4L device, two devices are provided named Audio Sender and Audio Receiver:

These are very simple devices that each have the same popup as we saw in the Audio Routing Example device, used as audio output routing in Audio Sender and input routing in Audio Receiver. You may ask: “Why use stereo routing in a device rather than using the regular Live track routing.”

The answer resides in the question itself: Live’s track routing does not allow you to choose the routing location from within a Live track.

If you look closely in the picture above, you’ll see that, in this case, the audio is grabbed (with the Audio Sender) and sent before the Echo device - thus before processing the delay effect.

The un-processed audio is then sent to the “2 Audio” track, to be used for any other purpose, free from the delay effect:

Similarly, in the “3 Audio” track, audio is grabbed at the output of the “1 Audio” track (our delayed effect) using the Audio Receiver device, and inserted into the local signal chain.

Notice that the remote signal is inserted after the Resonators effect, so it is not affected by that process. And since the device has a “Thru” option, both signals are mixed together at the output of the track.

These handy devices can be very useful in some situations where you need to grab or insert a part of an existing audio chain without having to deal with the sole routing of a Live track, and without having to break an existing work.

Example: 03 Side Chaining.als

Now that we know how useful it might be to freely route audio, let’s use our devices for a classic production effect: side-chaining. Often used for compression or gating purposes (like in the native Compressor or Gate devices) side-chaining may be used in the context of a M4L device - thanks to the routing features that we’ve seen.

We’ve created two devices that are spectral effects, and use side-chaining principles to process a local audio signal using a remote audio signal:

The Source Filter device filters the local sound - in this case named “Harmony” - using a remote sound - named “Rhythm”. The spectral process decomposes both signals into frequency bands, detects the amplitude of each band, then multiplies the amplitudes of the “Harmony” signal with those of the “Rhythm” signal. This results in having the Harmony signal “rhythm-isized” by the Rhythm signal.

Since Harmony and Rhythm are meaningful names (for our example), it is up to the user to provide a harmonic signal for the Harmony path, and a rhythmic - or noise - signal for the Rhythmic path.

When we insert the remote Rhythm signal into our device, we use the same input routing popup as before. In the example shown here, the audio being grabbed as rhythm resides in the Rhythm track of the Source Filter group.

The Cross Synthesis device works in a similar way, except that instead of filtering a sound with another sound, both sounds may have their spectral content (frequencies and amplitudes) exchanged and tuned:

This device has a two-dimensional slider that performs a spectral mix between both sounds (A & B). The X dimension represents the mix of spectral amplitudes between sound A and sound B, and the Y dimension represents the mix of spectral frequencies between A and B. Adjustments to the Convolution control allows you to tune the mix between sound A and B in both amplitudes and frequency dimensions simultaneously, resulting in spectrally-morphed sounds.

Example: 04 Audio Sends.als

Have you ever wanted more Sends and Returns in your Live set? Return tracks are special tracks in which you typically place audio effects. You then send some amount of each regular track’s signal (using the send controls) into one or more of the different Return tracks - and the effects they contain. Effects in Return tracks are often “common” effects, such as delay or reverb, and are shared among the sending channels

Live only offers twelve of these Return tracks, which is normally sufficient for standard audio production. But you may find this to be a problem if you use the Sends/Returns as audio outputs for multi-speakers setups - such as theater productions - in which you need to adjust several speaker volumes for a given track.

The Audio Sends device lets you create additional audio busses. In the example set, each of the tracks (named FX1, FX2 … FX8) has a particular effect in its audio chain. By inserting the Audio Sends in any other track, each of these FX tracks become available as a target. You’re free to define up to eight targets, using the routing popups, and adjust the amount of a tracks’s signal using a gain slider.

This device can be very useful if all available Send/Return chains are being already used and you would like to add a couple of additional “sends” to your Live set.

Example: 05 Audio Matrix.als

The Audio Matrix device is an extended version of the very first Audio Routing Example device described earlier in this article.

The Audio Matrix device lets you capture 16 stereo signals from Live tracks, and freely route each of these stereo signals to any other Live tracks, using a matrix to connect the inputs to various outputs. In order to make it easier to control, the editing window is separate from the core device, and can be set as floating or non-floating:

The routing popup let you select the source and destination for each stereo channel, and each of the inputs and outputs has its own gain scaler.

In the example set, 8 stereo tracks (“1 Audio”, “2 Audio”, …, “8 Audio”) play some audio, but the track output is set to “Sends Only”. This means that no signal is output to the master Live mixer. The Audio Matrix device captures the audio of these tracks, and the 8 first outputs of the device are set to target 8 “output” tracks (“10 Audio”, “11 Audio”, …, “17 Audio”). With the current settings, there are no input-to-output connection, so no audio is heard.

Clicking inside the matrix display will connect inputs to specific outputs, and provides a completely flexible audio routing system for the selected audio tracks.It is possible to create presets for the routing of the matrix by clicking in the slots at the bottom of the matrix. By default, presets slots are empty. Click on a preset number and continue editing parameters. All values are then saved into that slot. Click on another slot to start a variation of the current state of the device.

This allows you to change complex routings for different situations with a single click. By adjusting the Ramp slider, it is also possible to create smooth transitions between one preset and another, providing for more musical changes even in the most challenging routing situations.

Example: 06 Panner.als

When you start thinking about multichannel audio, notions such as sound spatialization or “surround sound” come to mind. Using the routing tools we’ve used in the previous devices, we’ve created a device that provides solutions to those who would like to mix audio in Live using more than two speakers.

The Panner device allows for multichannel panning of a stereo source from a Live track to a planar (2D) sound system with up to 32 speakers.

The position of the sound source is represented by a cursor in a plane, and speakers are represented by “nodes”.

The panning technique used here is a distance-based algorithm that calculates the amplitude of the source for one given speaker (node) relatively to the distance between the cursor and the center of the node, and to the size of the speaker. If two or more speaker’s nodes overlap, or if the cursor is placed at an intermediate position, the amplitude of each speaker will be weighted accordingly, producing a balance between speakers. This is how we create a sensation of sound localization within the sound field.

The 06 Panner.als Live set embeds three audio tracks that each contains a panner device. Each panner device will send its (panned) multichannel audio - in pairs, remember - to the different Return tracks. Each Return track has its output sent to a pair of 16 possible speakers (in our example), and one additional Return track is used for a LFE (subwoofer) channel.

The Panner device has a floating window where you manipulate the virtual position of the sound source using your mouse:

In the example, spatialization is performed for a 5.1 speakers system. Note that, for this kind of setup (with a central speaker), we’ve adjusted the order of channels in respect of Live’s stereo design (L-R-Ls-Rs-C-LFE) rather than trying to match the typical industrial formats (typically L-C-R-Ls-Rs-LFE). So channels 1-2 output the L-R signals, channels 3-4 output the Ls-Rs signals, and channel 5 outputs C signal (with channel 6 going unused). The LFE channel has its own (17) channel number.

Note: VU-meters in the panner may differ form the VU-meters in the Return tracks, as we’re playing 3 panned sources together. The Panner’s meters reflect the panning in the track it is processing, and Return meters reflect the global mix of each panned track.

You get to choose or modify the routing that you want. To facilitate the construction of a sound field in a given format (5.0, 7.0…), you can load some typical speakers configurations using the Presets menu:

Controlling the position of the sound source

The orange source cursor initially responds to polar localization controls such as Azimuth (Az - which is measured clockwise in degrees toward the vertical axis, with 0° in front of the listener) and relative Distance (Dist - which is measured from the center of the sound field that represents the position of the listener).

Polar coordinates are more convenient when controlling the position of the source using automation. Cartesian (XY) coordinates may be more appropriate for MIDI-mapping of a 2D controller, or using a pair of simple MIDI faders. By switching the Mode from AD (Az/Dist) to XY, it is possible to control the position of the source using cartesian coordinates.

The Width parameter controls the width, in degrees, of the stereo image of the input sound, around the position of the cursor. Since Live tracks are stereo, the panning needs to be applied to both left and right channels of a track. The left and right channels of the input sound are represented by two additional cursors, which you may decide to display or hide. Setting a width of 0° will “mix” the two input channels - i.e. the same panning will be applied on both channels. A width of 180° will apply a mirrored image, spacing the left and right channels +/-90° from the position of the cursor.

Panner LFO

Instead of having to control the position of a sound source using either automation or MIDI controllers, you may want to use an automator such as a LFO, which would play for you some basic shapes of movements. The Panner LFO device lets you control the Azimuth and Distance remotely using the Live API mapping features.

Movements are based on a full rotation of the source around the listener, and cyclic or random variations such as 8-figures (crossing), acceleration, deviation, etc. You may link the rate of the rotation to Live’s tempo for synced applications.

Example: 07 Rand and Step Panner.als

Following the idea of automated spatialization tools, we’ve provided a couple of related devices. The Rand Panner and Step Panner devices let you apply rhythmic amplitude envelopes on the incoming sound. Each of the enveloped signal can then be sent to a different output channel, resulting in “rhythmicized” sound spatialization.

Rand Panner

When the Run parameter is engaged, an internal metronome (running either in sync with Live's transport or in a free fashion) triggers a random choice of one or more output channels. When an output channel is selected, the system produces an amplitude envelope, which is used to control the volume of the incoming audio into that output channel.

The shape of the envelope can be tweaked using simple parameters such as Time and Slope, and may also be slightly - and randomly - modified on each metronome tick.

The rate of the metronome may also vary, as well as the gain of the amplitude envelope. Several in/out connections may be selected together using the Voices parameter, and each output can have its gain adjusted separately.

All together, the system creates a randomized rhythmic panner, one that lets the incoming audio either 'float' or directly jump from speaker to speaker.

Audio output routing is set in an additional pane that you may display using the Routing tool icon:

Step Panner

The Step Panner device is similar to the Rand Panner device, except that provides a more precise sequence of specific routing steps.

The device behaves like a step sequencer whose steps each represent a routing of the incoming sound to a specific channel, with a specific gain, duration and shape of amplitude envelope:

As with the Rand Panner, output routing is set in an additional pane:

For both Rand and Step Panners, we've added a way to switch from one configuration to another: patterns. Patterns each contain a snapshot of a given configuration and may be automated or MIDI-controlled. Patterns can also be freely copied from one device to another device.

Example: 08 Creative Routings.als

Now that we’ve seen all these spatialization tools, you may say: “What if I have only two speakers in my home studio? Is there any way I could use these devices?”.

Actually, everything we’ve discussed is related to audio routing. Could we use the Panner and the Panner LFO, Rand and Step Panners for something like managing sound treatment in a more organic fashion - without having to worry about speakers, surround or multichannel audio rendering?

In this example Live set, we’re using the Return tracks in a classical sense, i.e. the Return tracks contain audio effects and are routed to the Master track.

By controlling the routing of a sound source using the Panner, Rand Panner and Step Panner spatialization devices, we can feed each effect in a very versatile way:

  • XY panning with or without overlap, controlled with MIDI gesture, or looped automation

  • Random or sequenced patterns, with rhythmic or smooth transitions

There are many ways to use this routing to your advantage - no matter how many speakers/outputs you use. Try them out (download now from maxforlive.com!), and make sure you share your results with us!

by Darwin Grosse on November 12, 2019

Creative Commons License
Valiumdupeuple's icon

BOOOOM!! Awesome!

Valiumdupeuple's icon

Too bad that the Panner device's "Open" button isn't a toggle that closes the window too (and that could be key/midi mappable). Not a complicated change, except for those who don't know Max/M4L programming.

Valiumdupeuple's icon

The "Audio Sends" device has a parameters setting issue.
If you go to the "Sends2" bank on Push, you'll see that the "Gain-7" and "Gain-8" are incorrectly available twice. So they're missing their "Enable-xx" parameter.

nickbrown's icon

Fantastic! Exactly the one major thing Live has been missing to date.

kamal.h's icon

Really great tools thank you. Yes, that was missing in Ableton product.
Any idea why Audio Matrix plugin takes so much CPU ( quite 10% each plugin on my computer ) ?
Controlling Audio Matrix presets (with map8 for example) can make until 80% peaks on CPU.

Manuel74's icon

Hi,

there's a new version of the devices available at maxforlive.com that should, at least partly, fix the following issues:

@Valiumdupeuple: the Push names are now fixed in Audio Sends, thanks for noticing

@Kamal.h: the CPU issue with the Audio Matrix should be less prominent, since the automation for the Presets parameter is now deferred to low priority

Additionally, each slider in all devices now respond to clip modulation.

Thanks all for your feedback, and I hope you're having fun with the devices.

Manuel

Manuel74's icon

Hi Audio Routers,

A new 1.0.4 version of Audio Routes is available @ https://maxforlive.com/library/device/5830/audio-routes. In this version devices sending remote audio (Panner, Rand Panner, Step Panner…) now have a solo feature, and respond to solos from other tracks before sending their multichannel audio.

Happy multichanneling,

_M

Valiumdupeuple's icon

This is great news Manuel, thanks!

Martin Martin's icon

Great! Already using these tools.

I tried quick to add a mira.frame to the panner but i didn't work.
It would be absolut fantastic (!) to have e mira version of the panner with each frame named after the track the panner sits on.

Thanks a lot

//and am I the only one having this bug with the 1.0.4 version?

Manuel74's icon

Hi Lee,
the nodes object used in Panner is not supported by the mira.frame object, afaics. However you could perhaps try a combination of mira.multitouch and mira.mt.fingers, and control the X and Y dials from there?
As for the "bug", you'll need to update to Max 8.1.1, as all routing devices now use live.comments objects (synced to Live's colors) instead of Max comment objects in previous versions.
I hope this helps,
Manuel

Olivier Valcarcel's icon

Hi and thanks for this great tools !!!

I just wanted to report a recall bug for panner device.
Here is my explanation :
1) I load a panner device and I set up my speaker configuration and save it with its own preseter
2) I save my live set and quit Ableton
3) I load my live set again
4) My speaker configuration is not recalled well.

Thanks for your help !!!

Best
Olivier

Les Stuck's icon

Thanks, Darwin, for a clear presentation of Manuel's fantastic new work!

I should probably caution people against using the Subwoofer section of the Panner to render out LFE stems for surround mixes.

The LFE channel (the .1) often causes confusion. This channel is for Low Frequency Effects, like earthquakes and explosions. The subwoofer speaker usually serves two purposes. The subwoofer does receive the LFE signal, but it also serves as a common subwoofer for the low frequencies of all the other speakers. This is because–although the other five channels (in a 5.1 mix) are full-range–for practical reasons most sound systems have only one subwoofer, and a system called bass management mixes the low-frequency content of the five speakers together with the LFE signal. Although Manuel's panner makes it possible to do bass management in Live, it is best to do that in the sound hardware (audio pre-amp or subwoofer electronics), to avoid the risk of doing it twice and since it is, after all, hardware-dependent.

Check out how a typical subwoofer has connections so that it can be inserted between the multichannel outputs of your interface and your speakers. That way, it can do bass management that is matched to the crossover frequencies of the specific sound system.

NEW:

After posting this I realized that many people don't understand why it's not a good idea to do bass management in the DAW, so I'm adding a couple of references:

https://www.dolby.com/uploadedFiles/Assets/US/Doc/Professional/38_LFE.pdf

"Bass management is part of a playback system; it is not part of the mixing process."
https://www.kenrockwell.com/audio/bass-management.htm

Multicanal Du Midi's icon

Hello.
Same thing as Olivier Valcarcel, 2 posts above.
When i reload a track with the Panner device the good configuration of the speakers is not recalled well, it's just a mess of nodes. To avoid that i close my track (without saving) and open it again. Now the panner device load the configuration i had already done. It's not a long term way to work with so, help please.
I have Windows 10 and Live 10.
Pierre.

Manuel74's icon

Hi Multicanal du Midi & Olivier Valcarcel, I can't reproduce the issue here on my Mac with Mojave OS - and don't own any Windows machine: if I follow Multicanal du Midi's steps, everything is reloaded correctly. I'm using Live 10.1.9 and Max 8.1.3 (latest versions). Could you try first to upgrade Live and Max to their latest versions? Then could you create some simple example using the Audio Routing Example.amxd (included in the Audio Routes pack) instead of the Panner, reproduce Multicanal du Midi's steps, and see if the issue also occurs? If not, proceed with Rand Panner.amxd and/or Step Panner.amxd? Thanks for your patience.

Valiumdupeuple's icon

Haha, "Multicanal du Midi", I love it! ;-)

Olivier Valcarcel's icon

Hey Manuel74,
thanks for your answer. I just upgrade the latest release of both Ableton and Max and it's seems to work like a charm. I'm really glad to know that. I'm involved in many live surround projects and it will be my go to devices for sure!!!
Thanks a lot for this amazing job.

All the best
Olivier

Manuel74's icon

Thanks Olivier, that's a good step forward!
@Multicanal du Midi (best spatial franco-French pseudo ever), could you give it a go?

Jane Arnison's icon

These tools are great! I'm loving the opportunities for more complex spatial mixing & routing inside Ableton. When I am working away thfrom my studio though is there a binaural encoder that i can use to get the virtual multichannel experience in my headphones? How does that routing into the binaural encoder work?

zzzeddartha's icon

Another bug here.

Audio Senders do not work inside of chains without first initializing them outside a chain.

To reproduce:
Initialize or save an Audio Sender in a Chain.
When you load that rack fresh and select outputs, nothing will happen.
Move the device out of a Chain, outside of any Rack. Output will start sending. If you move it back in to a Chain at that point it will work, however it will not work again if you reload the Set.

Live 10.1.15 using bundled Max 8.

Manuel74's icon

Thanks for the report. Well, not really a bug, rather a missing feature - the devices were not initially designed to work within racks. The "bug" has to do with the way the devices interact with the Live mixer device, which differs wether the device is loaded inside a track or inside a rack. This feature should be added in a future version, though.

zzzeddartha's icon

@Manuel74 Really appreciate your response!
Is this something that could work now? Or is it a limitation of the API / Live?

For example if I knew what I am doing in M4L and just edited the device, could I conceivably fix this?

Manuel74's icon

For a quick fix, here are some steps to follow for all devices that use Live's mixer device:
Load the device in Max and find a subpatcher called Gain&Pan:

In that subpatch, replace the join object with a pak object:

Then save the device. That should fix the issue.

The issue is that the amplitude of the incoming signal is set by a combination of parameters from the Live mixer device (volume, activator, etc). In the case of a Live track, the device is notified of those settings. In the case of a Live rack, it is not (or partially). As the above join object has no initial value set, the amplitude is always 0 in the case of a Live rack. Using a pak object with init. values set to 1 (partially) solves the problem.

For a longer-term fix, if we want to be consistent, we'll need to make the devices sensitive to mixers in both contexts and to determine wether a device lives in a track or in a rack - or even worse, in a rack inside a rack (inside a rack...). Therefore we'll need to update the way the devices interact with the Live API - which might take a little while before finding the right mechanism.

zzzeddartha's icon

@Manuel74
You are the absolute best! Thank you so much, that worked!!! I can see why that would be difficult, since you need to observe the muted/volume/panning states of all the chains above the one that the device exists in.

I'm fairly confident I could do it in JS if you guys would want help with that. Feel free to message me directly.

The other problem I'm having is that when I loop-back and record audio to the same track, there are weird artifacts when I start recording. When monitoring there are no artifacts, only when the recording starts.

I think can work around it using a different track for the input, but just FYI.

In this image, "Bass" is the track to which I am looping back audio from LOOPER RACK, which is also on the "Bass" track. The goal with this is to be able to overdub audio from the previously-playing clip into Live clips via a custom M4L looper I have made.

Thanks again @Manuel74 you are a godsend!

Joe Wignell's icon

Hi there. I am having trouble using the BrowseRouting bpatcher. I made a device with it which worked fine but when I loaded live the next time all the menus were gone. I saved the bpatcher from the example file and linked to that file in the bpatcher in my device. Am I doing something really stupid? Probably!

thanks

Robert Koster's icon

Ive implemented the browse routing patcher into a couple devices and its worked fine but im trying to see if I can run the browserouting sub patch as a bpatcher within another bpatcher... what are the exact requirements for the patcher? its says it makes the inputs available to the plugin object in the parent patcher, is that the absolute parent or relative parent patcher? can I have plugin 1 2 and plugin 3 4 as seperate objects? If i was to define the patcher myself (without using bpatcher arguments audio_inputs 2 for example) how would I go about that?

Also, very keen to see an update for the patcher to work within racks.

PS is it possible to have something similar to this for midi within m4l devices?

KamranV ||'s icon

I love these tools. I love them so much that I made a basic video about setting up a basic session for using these for quadraphonic sound. With dublab and the NEA I also made a plugin that allows you to make quad vinyl (and a lot more) as well as a grant opportunity to #MakeMusicInSpace. I'm sure a lot of you will do some mind-blowing stuff.

andreas hilburg's icon

It's an amazing tool. I am very impressed and inspiring.
When trying to create a drum kit with 4-channel setting via the panner, I fail if I put the panner directly behind a simple sampler:
1. You first have to put the panner behind the group for it to work. If you don't do that and place it directly behind the sample, it remains mute.
2. If you save the whole set and call it up again, the set routes will be forgotten. This makes the panner unusable because with a drum kit, 20 samples might have to be manually routed each time.

andreas hilburg's icon

Oh I see seems to be the same issue, which is some mails before. Excuse me.

Lorenzo Demagistris's icon

Ableton 11 version?

Max Gardener's icon

The current version works perfectly well with Live 11 here. Is that not the case for you?

Lorenzo Lamasse's icon

Hey, been using this for a while in my devices, I'm wondering if there is any latency in the routing, like one vector (as with send and receive), or is it supposed to be sample accurate ? Thanks !

andreas hilburg's icon

Hi ,I did the tests with the drum rack again in Ableton 11.0.5. Its the same issue...

Manuel74's icon

If a track has a clip playing, and another track is receiving that audio with a Audio Receiver device inserted, and if you invert the phase of the received audio, the Master outputs a 0. signal, which means both tracks are perfectly in phase:

With non-inverted phase (Utility device off - watch Master out):



With inverted phase (Utility device on - watch Master out):

I hope this answers your question regarding routing in Live via M4L devices.

M.

Lorenzo Lamasse's icon

Perfect answer thank you Manuel74, it's useful when you want to have pitched feedback using Karplus Strong effect, you need to make sure the delay value is not screwed up by any latency ;-)

Nik Rawlings's icon

Hey,
Having repeated issues with a lack of output from the step panner device, either using audio receiver devices in the send tracks I'm sending audio to or direct to their track inputs. Seems to happen whenever I reopen the project.

Also - the matrix object seems to use a lot of CPU when I'm trying to use it with automation for routing rhythmically.

Any advice would be really helpful!

Nik

Nik Rawlings's icon

It seems that copy and pasting new iterations of both the step panner and audio receiver devices resolves this. Not ideal though as I'm using a LOT of these for a multichannel performance soon!

Otherwise these are really fantastic devices. Having a lot of fun with them

Manuel74's icon

Hi Nik,

I'm not sure I fully understand all of your issues. But I'll try to answer, if it can be of any help:

Having repeated issues with a lack of output from the step panner device

What do you mean by "lack of output"? All 3 panner devices have 32 audio output channels. If you need more channels, you'll need to modify the patches, up to 64. Or did you mean "loss of output"?

either using audio receiver devices in the send tracks I'm sending audio to or direct to their track inputs. Seems to happen whenever I reopen the project.

I can't reproduce the issue of Live "losing" inputs or outputs (all M4L device's routings are saved in the Live set). Please try the following Live set (copy it to the same place as the Audio Routes examples sets - it's using the same soundfiles) - you'll need Live11 to open the set:

Test Step Panner.als.zip
application/zip 29.19 KB

There are two Step Panners, one directly routed to Live Receives, and one passing through Audio Receiver devices in Live tracks - with no routings set in the corresponding Step Panner device:

To me at least it's working as expected, also upon reload.

the matrix object seems to use a lot of CPU when I'm trying to use it with automation for routing rhythmically

I can't reproduce this either. Please try the following Live set, where matrix presets are automated "rhythmically" - i.e. random presets change 4 times per beat at 120 BPM, with long ramp times (1s). CPU seems to remain OK to me - just as expected - from 4% (transport stopped) to 8/9% (transport running):

Audio Matrix Test.als.zip
application/zip 17.54 KB

I've noticed that copy and pasting the device seems to reboot the connections. I've not delved into Max's console to check for failures but will do and will feed back here.

That would however help if you could provide more information - like the content of Max's console, your versions of Live/Max/OS, etc.

It seems that copy and pasting new iterations of both the step panner and audio receiver devices resolves this.

I'm not sure I'm following you here. Maybe that's because I can't repro your above issues. I would recommend downloading the last available version of Max 8, tell Live to use that version instead of the embedded one in the Files Preferences, and see if that solves the issue.

If the issues persist, I'm not sure that they're specifically related to Audio Routes devices, but to a more global one, which would then need to be a little more isolated - in case of which I recommend writing to C74's or Ableton's support.

All tests/sets were made using a 2020 16' MBP running Big Sur 11.4, with Live 11.0.2 and Max 8.1.1.

Cheers,

Manuel

Glen Ben's icon

I am having some trouble with my panner setup maybe someone can help me. My setup is 8 mono speakers, so in panner i created 1/2, 3/4,... etc and deactivated B routed them to the outputs. Now I am moving the speaker positions to their right relative place, but when i move the sound source i get strange behaviour. For some speaker it works fine, i move the sound source to their circle and only the speaker and it neighbours play, fore some speakers they are only woking when i move the sound source to the opposite realm of their circle. So even if the sound source is nowhere near den speaker circle it play, but if ein move closer it disapears. Am i missing something?

Pierre Dozin's icon

Hello,

I'm using Ableton Suite 11.0.6 , Max 8.1.1. Windows10

I have the same issue as Multicanal du Midi & Olivier Valcarcel with panner device
When I changed the the speaker preset, it's not recalling when I save, close the project, and reopen.

I have tried on another computer with Live Suite 10.1.25, Max 8.0.2, windows 10. It's working perfectly.

On my new computer, when I try to uninstall Ableton 11 and Max 8.1, and reinstall Live 10.1.25 + Max 8.02, it's still not working .

Can you please help me?
really love that plugin...

all the best,

benj3737's icon

I also have issues copying the BrowseRouteing bpatcher into another patch. Anyone figured out how to do this?

Manuel74's icon

@BENJ3737,

copying dependancies from a device to a patcher or to another device isn't so obvious. As far as I can tell the reason is that a frozen device is a Max project that creates its own search path when being unfrozen, and that that dynamic search path isn't part of Max's global search path. So when you copy a dependancy from the unfrozen device then paste into another blank device , Max simply can't find it. What you need to do is to open the Project window of the source device, locate the dependancies that you want to copy, and reveal them in the Finder. Then drag the dependancies from the Finder into the Project window of the target device, and then freeze the target device, so the dependancies get copied into its project folder. Or, more simply, if you need the dependancies for a more global use, copy them into Max's User library folder. I hope this makes sense and can help you.

Manuel74's icon

@PIERRE DOZIN

I'm on Mac and obviously can't reproduce your issue. It's just working fine here with Live 11.0.2/Max 8.2.0 under OS 11.4. You may need to contact C'74 support.

benj3737's icon

Thanks Manuel you’re right. I got it

Manuel74's icon

@GLEN BEN

I'm afraid I didn't understand at all the issue you've described :). Could you reformulate and add information with pictures, perhaps?

Robert Koster's icon

Any news on getting these to work inside drums racks without any issues?
Works fine on my computer but I have a customer using a side-chain utility I made, that is crashing consistently when nested inside a drum rack.

felipe vaz's icon

This might sound silly, but is it a good option to route some audio channels from standalone Max into Ableton for effects, mixing etc? I would rather avoid the Soundflower/Blackhole/Jack path.

Diemo Schwarz's icon

Hmm, audio sender doesn't seem to work within an effect rack (it tries to read the wrong "track active" value, leaving the send volume at 0).
Otherwise this looks very promising, for building 8 channel effects!

[Update: just saw the fix from 2 years ago, it works! Would be good to have this workaround in a new release...]

Denim's icon

First of all, thank you a lot for your great patches.

I used your panner patch in some projects now, and often I come across an annoying limitation. It always has to work in stereo tracks, which is very limiting regarding the output routing. So I thought I will write here for a feature request. It would be amazing if the panner would support separate mono outputs for every speaker. So I can route for example L and R to separate Audio Tracks with different external output channels. It would be amazing if this could be implemented in an update.

Any chances for this to happen? This would be a game changer for me :)

best regards

Manuel74's icon

Hello Denim,
thanks for your interest in Audio Routes. I understand your frustration, but unfortunately, as far as I know, the Live API won't let us route single channels at once. It has to always be a pair of adjacent inputs or outputs.I guess that this is by design, as Live doesn't - really - handle mono tracks. However you may route pairs to single (external) outputs, but in that case the two channels will be mixed. So you would have to implement a mechanism that doubles the outputs, and with some internal matrixing you could leave one empty channel for each pair. But that's not something that we want to do in the context of Audio Routes, because it would make the devices way too twisted for a generic use. However the devices are opened to free Max editing, so perhaps you could give it a go?

Callum Taylor's icon

Has anyone had any issues with volume using Audio Sender?

Im using one on each track to route to Reaper via ReaRoute and it seems like the audio being sent via the m4l device is 3db quieter than if I send direct using the track out param within live itself

track with Audio Sender to ext out

track routing to master (-4.9db peak)

cue track from Audio Sender (-8db) and master send direct from Ableton using track ext out (-5db)

John Brom Brömmel's icon

Hello, i have the problem that when i open my File, all the multichannel addons listed here and talked about are not working, and no audio is going through. They are also greyed out kind of, as if they were inactive.
Anyone knows what this is ?
J

Manuel74's icon

@Callum Taylor,

Yes, there's a -3dB panning law inside the device. The panning reflects the track's panning (which doesn't apply to the sent audio otherwise).

Manuel74's icon

@John: please send us images of the Live set and of the Max console, and info about versions of Max, Live and OS that you're using.

Callum Taylor's icon

@manuel74 you learn something new every day :) thanks for the info

Jolon Dixon's icon

How does the plugin and plugout objects "know" which inputs and outputs to listen to? In other words, how does the information from the browseRouting bpatcher get to the plugin or plugout objects?

tyler mazaika's icon

Routing is done via DeviceIO api objects from the LOM. That logic is handled by those browseRouting subpatchers.

Andrey Martynov's icon

Hello and thank you for this great collection of devices, but is there hope for an update? Currently all the lfo modulations do not export, the only way to record them is to record return tracks outs right in the project, realtime, which is a real pain!

Manuel74's icon

@Andrey, hi, sorry to hear that you're having issues with Audio Routes. I don't quite understand what you do mean by "lfo modulations". Do you mean the Panner device together with the Panner LFO device? If so, I can't reproduce the issue. If you want to render the spatialization from Audio Routes (or any other multichannel M4L device), you need to route the outputs of the panners to some tracks and render the output of those tracks. I personally often use the Return tracks as master multichannel outputs to speakers. That way I can monitor the signals visually, use Sends directly for routing direct-to-speakers sounds in other tracks AND render the Return tracks as stereo pairs. But if you route the panners's outputs directly to dacs (i.e. Ext Out), there's actually nothing to render. So the right way to export the mc audio is to:
- route the outputs of your panners to some tracks (any)
- select those tracks
- select a portion of sound
- export "Selected Tracks" from the Render window
This just works fine here and has always been so. I hope this can help you and others.

Manuel74's icon

@all btw, stay tuned, Audio Routes got a little love these last weeks.

Iain Duncan's icon

That is wonderful news. Improving routing and interdevice communication and latency would be a really noticeable thing for my work!

Sebastián Ce's icon

Hello,

Am I the only one having trouble with audio matrix, all panners and source filter devices?
They just won't let audio pass through, input is working but that's it, no output signal.
I've tried modifying and refreshing many parameters, as well as using the audio receiver, but nothing seems to work.
What could be the issue? I'm using Live 11 suite 11.0.10 with MacOs Catalina 10.15.7

Regards,

Sebastián

Manuel74's icon

@Audio Routers:
there's a 1.5 version available on maxforlive.com, which finally enables multichannel audio routing from within Live racks (within Live racks within Live racks...). You can now also copy, paste or share routings between different instances of Rand Panner and Step Panner devices. Input panning (i.e. track balance) algorithm also has been reworked: it now imitates the panning of Live tracks. This corrects the -3dB panning law that used to be there. Note that only track panning is reflected in the devices - panning within racks aren't ready (yet). Here is a link to a video presenting the new features: https://www.youtube.com/watch?v=tHBD50BWE0k

Happy routing!

felipe vaz's icon

Hi @Manuel74, thanks for this!

I always wondered if this could be a sensible way of routing multiple channels from standalone Max into Live (for effects, mixing, mastering, multitrack recording etc.) in the future. I know there's Soundflower/Blackhole, but they always feel like an unstable hack to me, and it would be incredibly useful for people that use Max in performance settings.

Manuel74's icon

@Felipe, could you elaborate a bit? I'm not sure that I fully understand what you meant.

felipe vaz's icon

Hi Manuel, just as this allows us to route Live tracks > Live tracks in complex ways, I'd want to route multiple audio tracks from Standalone Max > Live tracks for further processing. Is this somehow possible in a stable way?

Manuel74's icon

@Felipe, afaik the most robust way for cross-application multichannel audio is to loop back audio using the Totalmix software of any multichannel RME hardware. Rock solid. Audio loopback is one of the features of Totalmix.

Manuel74's icon

This made me think of the use of Audio Routes in pure Max. Please find attached some slightly modified versions of the devices to test in Max:

We'll update the link on maxforlive.com soonish. The Panner LFO in this .zip is "Max special", since it outputs coordinates via audio (don't plug it to your speakers!) and won't be part of the Live package. Obviously Live routings are useless in this use case.

Audio Routes In Max.zip
application/zip 491.11 KB

felipe vaz's icon

@Manuel thanks for the suggestion, I'll check it!

Jerome Lesueur's icon

Merci Manuel !

Iain Duncan's icon

Oh this is great news! :-)

Das Scott's icon

hi Manuel, many thanks for these plugins.
I am trying to use your LFO Panner on the SPAT Spatial MC plugin (https://www.ableton.com/en/packs/spat-multichannel/), it works on Azimuth, but the Distance control gets locked and stuck in the lowest value.. Is there a way I can get this to work?

Manuel74's icon

@Das Scott, you will need to modify the Panner LFO and scale its normalized [0. 1.] distance to distance in Spat which is in meters. Inside the [Mapping] subpatcher, you could do something simple like this:

Then dynamically scale the maximum distance in Live using a [live.numbox] object connected to the [* 20.] object above. That should work, imo.

Das Scott's icon

Thank you very much Manuel, this works!!

tyler mazaika's icon

This is the real article with Max for Live Audio Routes information. Audio Routes. Audio Routing. AudioRoutes. AudioRouting. Routing in Live. Audio Routing in Max for Live. Max for Live Audio Routes Devices.

What will it take to make this Article show up anywhere when searching the website for "Audio Routes"? Right now using other search engines seems to be the only way to find this.

Robert Koster's icon

Hey peeps, BrowseRouting and RoutingObjects patchers appear to be the same in this package is that correct? where has it changed that we can now nest side-chain devices within racks? Also, do these umenu's for side-chain selection show up on Push 3? as no side-chain selection shows up on Push 2 from a quick look (including native devices).

Manuel74's icon

Hello Robert, the mechanism for nesting devices within racks has nothing to do with routing. It is part of the "Gain&Pan" sub patcher that you find in most of the A.R. devices. BrowseRouting and RoutingObjects just connect inputs and outputs to other adcs, dacs or tracks in a Live set. Regarding Push (2 or 3), only live.* objects or "parameterized" objects with automation enabled will appear in there. The (u)menus in BrowseRouting are not parameterized, they just set/display the routing connections, which are saved inside the Live set.

Robert Koster's icon

Ok cool. As expected then. Does that mean that if we enable parameter mode for the umenu’s we can add them to live.banks and have them changeable via the push?

Manuel74's icon

I guess yes. Please try it out and tell us if that worked!

Robert White's icon

Hi @manuel74. I have not tried to do this yet but wanted to ask first. Say I use Live to record a session (bass, sax, snare). Can I use audio routes to send the 3 audio channels to Max Standalone to drive audio reactive visuals? Or is it better to have an audio interface with loop back?

I could create M4L device for the visuals but I'm concerned that the M4L device wouldn't be running in the high priority thread. thanks,

Manuel74's icon

Hi Robert, you will either need a software solution such as Blackhole, or a hardware solution such as RME loopback system to send Live's audio to Max - the latter is generally better suited for more "pro" (i.e. robust) applications.