MIDI effect output to ALL channels, possible?!

frostrugo's icon

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!

Richard Garrett's icon

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

frostrugo's icon

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....

broc's icon

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

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.

frostrugo's icon

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....)

broc's icon

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.

frostrugo's icon

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!

orange_glass's icon
Max Patch
Copy patch and select New From Clipboard in Max.

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

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)

Hope that helps