Forums > Max For Live

midi channels in one midi device/instrument

July 30, 2012 | 10:21 pm

i just picked up a korg padkontrol (pardon me if this becomes a hardware specific thread but have to ask) and got excited that i can have various scene on the padkontrol on various midi channels, hoping that i could route separate channels into one midi track and thus one device/instrument. I set up one scene with the pads on midi channel 1 and the second on midi channel 2.

now, using a midi select object @ch1 with the midi track in ableton set to channel 1 i get midi data, and the same if i @ch 2 and have the midi track on channel 2, but, my hopes were that i could have ableton midi track to ‘all channels; and have two midi select objects, one @ch 1 and the other @ch 2, but i dont get separate data between scenes, and i only get data on @ch 1 even if i’m on scene 2 (midi channel 2).

so really my question is, how the f can i have multiple midi channels going into one track and device and be able to get data from all of them.

i basically want to build a device that uses different midi data on individual channels to do stuff, and cant get a result.


July 31, 2012 | 3:25 am

Prepare yourself for a huge disapointment.


It´s impossible! Ableton Live changes the channel of all midi data to 1. Why? I don´t know! It´s one of the great mysteries of Ableton. You can only hope (like me) that Live 9 (if it will ever be released) will change this.

Just to clarify: the problem has nothing to do with max4live but only with the way Live processes midi data. The very moment your midi data runs through a Live midi channel all channel information is lost and set to channel 1.

July 31, 2012 | 11:30 am

i had a feeling this would be the case. seems weird that its not mentioned in the documentation, or maybe it is and i didnt navigate to it.

i guess a work around would be to spread all midi notes across multiple scenes.

August 5, 2012 | 12:39 pm

Instruments (including Max for Live instruments) can receive on multiple MIDI channels – you have to route the MIDI in from other MIDI tracks.

May 12, 2014 | 4:08 am

Hello Old Fred,

Is this still the case? Can’t pick out midi devices by name or channel info in Max for Live?

June 4, 2014 | 9:15 am

this will get a little complicated and unpractical as for setup, but i think it’s easy to achieve as for coding.
you will need to "outsource" your midi-splitting: have a standalone (or better to say non-m4l but solely max-patch) do this stuff.
make your channel separation there and send to different "send" objects. e.g. ch 1 –> "send channel1" / channel 2 –> "send channel2".
receive your channels by making own, tiny "receive"-patches. they only need to contain midi-in to midi-out and e.g. your "receive channel1" hooked up to the same midi out. i think this should work. otherwise you can get the job done via udp.

March 9, 2015 | 9:18 pm

It’s possible to create a couple devices that can take MIDI filtered to them by channel upon entering Live and then send it where you need using send and receive. The caveat being the unpredictable latency introduced when using s/r to send information between devices.

I had the idea of using program changes to indicate pseudo-channels changes, sending all the MIDI through the ordinary Live routings. The idea was to insert a program change before every MIDI event to indicate the "channel" it should be on. Then a device on the receiving end would either listen or ignore based on the program change matching the "channel" it’s looking for.

Are the ordinary Live sends between tracks expected to have less latency or is there a comparable lag inherent there as well?

March 12, 2015 | 7:20 pm

I received an answer to my question here

In implementing my idea I ran into some issues so I modified it slightly and it now seems to be working very well. Taken directly from my work, this first bit of code

— Pasted Max Patch, click to expand. —

takes midi events in list format prepended with their intended channel, stores the event in a coll and sends only a corresponding program change directly out of the device. In the receiving device,

— Pasted Max Patch, click to expand. —

[v —id] [+ 1] represents the channel being listened for; when it gets a program change of that value it knows there is a MIDI event to extract from the coll.

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

Forums > Max For Live