Max for Live 6 - Audio Input Limitations?

geddy's icon

Hello all,

I am trying to route multiple audio sources into my Max patch to no avail. I am using Max6 through Live and the inputs appear to be greyed out above input 1 & 2. I am tying to route a full drum synth into Max. It appears to have no correlation to my hardware inputs, as both Max audio input 1 & 2, play a mono signal on both channels.

Does Max for Live have limitations when compared to the full Max6 package?

Thanks!
Ged

geddy's icon

Just a quick bump! :)

Jan M's icon

You can have as many Inputs as you want, but with M4L Live is taking care of the input routing. Check the selected input devices and configuration in the Live preferences? M4l device though will always only have 2 In and 2 Out as Live only provides stereo tracks.

geddy's icon

Hello Jan,

So how would I route an 8 channel drum synth into Max. I want to treat each separate mono signal independently (8 of them). Live allows me to select each input signal independently but Max only accepts 1 audio input. How can I bypass this?

Thanks,
Ged

Jan M's icon

is your drum synth a vst/au plugin or are the signals coming from an external device? if external you'll need a seperate live track for each channel. if it is a multi channel plugin i believe there is no way getting more than a stereo signal in Live. the limitation of not having anything else than mono/stereo tracks in Live is annoying - well it started as a dj tool and it still mainly is.... multichannel work is possible but hacky...

geddy's icon

Hello Jan,

Is is a physical hardware drum synth (Vermona DRM1 MKIII). All 8 signals are directed into my audio interface (Focusrite Scarlett 18i20) and into Live. I have attached a screenshot of my problem within Max.

How do I allow the audio to be directed into Max for Live as separate signals without being summed to input 1 & 2.

Screen-Shot-2015-11-21-at-12.46.39.png
png
Jan M's icon

You can't route them directly into one patch as the M4L device only receives stereo input via plugin~. You'll need to route them ( in Live not Max) to dedicated tracks and process each channel in a separate M4L device.
Oficially there is no supported way to send audio from one device directly to another.
The old pluggo objects plugsend/receive~ still seem to work, but they might introduce unpredictable latency.
Another approach is to fill a rolling buffer in one device and read it from another one (buffers are global within a Live set). This way you'll at least have some control over the latency.

geddy's icon

Hello Jan,

Thank you for your continued responses, it is greatly appreciated!

I am looking to use all 8 audio inputs to separately modify vector images that will be drawn in Jitter. Your above explanation seems like a last resort workaround. I will need to avoid unpredictable latency.

To solve the above problem, if I were to purchase Max6/7, will that then allow me to directly route audio into Max, without restricting me to only 2 audio inputs?

Thanks again,
Ged

Jan M's icon

Hi Ged,
the 2 channel restriction is not due to Max/Max4Live but a limitation from Live (yea, it s**s but that's how it is... ), thus a full Max license won't be of any benefit. But in your case there is another possibility:
Named [jit.matix] objects (and othe named max/msp and jitter objects) are globally accessible across devices and tracks. you could do you fill your matrices in separate devices in separate tracks but poll the data from them in a central device that will do all the image processing.

Cheers

geddy's icon

Hello Jan,

Thank you so much for your response. So to summarise:

I will need to create a M4L device on each channel and do my analysis of the audio there. Send~ that number data from the device in the Live channel to a master M4L device which does all of the Jitter drawing on a separate Live channel?

Thanks,
Ged

Jan M's icon

That's how i would approach it. Maybe also a good thing to consider would be to send the control data via [udpsend/receive ] to an external Max patch (Max not MaxForLive) in case you are hitting performance limits. This way the image rendering is far less likely to create audio dropouts as the rendering part will in run a separate process outside from Live.

If you stay inside Live/MaxForLive you can use [send/receive] (without the ~ ;) ) [jit.matrix] or named [buffer~] to communicate between devices. To exchange other data like config parameters you can use i.e. named [dict], named [coll] or the pattr system (via [pattrmarker])

But those will not connect to from live to a Max patch outside.

Jan

geddy's icon

Hello Jan,

Would this mean that my final 'product' would require a separate .maxpat (or .amxd) file to analyse the audio and then one single .maxpat or .amxd to create the visuals. Is there no way to package these into a nice singular file/download?

If I were to use an external object such as [analzer~], how would other peoples computer react to this? Would they need to download the [analyzer~] object separately to make sure that my patch works, or would it be included in my patch when I package it?

Thanks again,
Ged

Jan M's icon

If you want to render outside Live, yes you'll need an extra Max content (best project or a standalone) For including externals check the docs for M4L devices ("freezing"), respectively projects/standalones.

geddy's icon

Hello Jan,

Thank you for your responses!

Ged

Andro's icon

When i use m4l for audio anslysis i just place them on returns and send the audio to each one. Then via udp to my main jitter patch.