Forums > Max For Live

MIDI effect output to ALL channels, possible?!

May 30, 2012 | 1:44 pm

Hey Guys,

I have a M4L device where I wanna send MIDI notes OUT of the device, and do feed them back to live in order to use the MIDI map function of Live.
The problem is that I need more then 128 notes, so I thought I could send the same notes on different channels (using [midiformat] midi channel), but in the MIDI channel output, its only possible to to choose a single channel out.

So I guess Live ignores any MIDI channel information in M4L.

Any solution or another option to send more then 128 MIDI triggers from a single M4L device on a single MIDI out??

Cheers!


May 30, 2012 | 2:35 pm

Hi

If things are not too time-critical, you could try this:

format your MIDI events as lists and then prefix them with your "channel number" e.g. [channel, pitch, duration, velocity]. Then use a global [send](no — in the send name)to pass the events to MIDI devices in other slots. Each of these "slave" devices could then [receive] all the event lists and [route] them according to its own index.

e.g master sends 1 sec of middle C at velocity 96 to slave 3:

[3 60 1000 96] => [send fred]

slave 3 gets:

[receive fred] => [route 3] => [60 1000 96]

hope this helps

richard


May 30, 2012 | 6:24 pm

Thanks Richard,

I had it in mind, but this means I must go out to the IAC port and back into live twice, which I guess will make the reaction slow, plus Ill have to have 17 channels open only for mapping some buttons from my controller (OSC based).

Is there maybe a way to use ableton API in M4L to send massages directly into its MIDI inputs?!? In that case I could overtake the MIDI channel out completely and also the virtual IAC feedback….


May 30, 2012 | 7:36 pm

On Mac you can use Leigh Hunt’s externals to send multichannel MIDI from M4L.

http://web.mac.com/leighhunt/iWeb/Site/downloads.html

Of course, for MIDI mapping you still need the virtual IAC feedback.

But instead you could use the Live API to control Live parameters directly from OSC input.

http://cycling74.com/docs/max5/refpages/m4l-ref/m4l_live_object_model.html


May 30, 2012 | 10:41 pm

broc I owe you one this external really saved me! exactly what I was looking for!

btw regarding the API, is there a way to map things on-the-fly? like the midi map learn? cause if not and I have to program all the mapping in advance then its no good using in a custom OSC controller mapping device. I know there is map option in the API tools for sending control audio signals, but can one do it for solo/mute/clip launching etc… ??? couldnt find it myself….

but if not… I can work it out in midi (even that i made my own controller to get rid of midi….)


May 31, 2012 | 12:07 am

AFAIK, mapping with API works basically for all parameters that can be mapped with MIDI.
Control doesn’t have to be an audio signal but works also for simple int or float messages.


May 31, 2012 | 9:27 am

you missed my point. I meant if it is possible to use the ‘MIDI LEARN’ option, where the API in my M4L device recognize the pressed parameter.

In the API tools they use [path live_set view selected_parameter] for the ‘Map’ option, which is what Im looking for, but its not working on everything like in the MIDI Map option, so no clip launching for example… anyway I looked on the API and couldn’t find an observer for clips position… which is a pity.

Anyway thanks man you helped indeed!


June 3, 2012 | 6:09 pm

Here’s how you observe which slot is currently being played.

– Pasted Max Patch, click to expand. –

If you want to know which slot a given clip is you good look at it’s path, not sure if you can observe that though.

If you want to work out what clip/track/device is selected I think you have to look at these properties in song.view (live_set view)

http://cycling74.com/docs/max5/refpages/m4l-ref/m4l_live_object_model.html#Song.View

Hope that helps


Viewing 8 posts - 1 through 8 (of 8 total)