Max 4 Live send midi to different controller ?
Hi there,
I'm new to max msp. Usually i'm coding my controllers script in python. I'm actually working on a launchpad script but the lack of fonctions in the API made me think I should probably go with max4Live. My script interact with multiple controller not only a launchpad (also a BCF). Is it possible in Max 4 live to send and receive midi data from multiple controllers (launchpad and bcf) in the same patch ? I'm totally new to max and I would love to know if I should learn more about it. Actually, if I create a midi track in ableton with my launchpad in input and output and a max 4 live patch with midiin and midiout box connected, It allows me to get the midi from the launchpad and send it back to it. However, how should I do if I want to receive the midi from le launchpad and the BCF in the same Patch ?
Best Regards, Louis.
Hi Louis,
you should first decouple your Max 4 Live device from the midi receive and send tracks.
Add 5 Midi Tracks.
1st track: "receive from Launchpad" input: Launchpad, output: we connect it later
2nd track: "receive from BCF" input: BCF output: we connect it later
3rd track: "send to Launchpad" input: we connect it later, output: Launchpad
4th track: "send to BCF" input: we connect it later, output: BCF
5th track: "calculations" holds your Max 4 Live Midi device. input: no input, output: no output
Now choose "calculations" as destination of 1st and 2nd track. Then choose "calculations" as input to 3rd and 4th track.
Everything is connected then. The only disadvantage is, that all data is coming in and going out your M4L device on Midi channel 1. This is a limitation of Live. But hopefully Launchpad and BCF don't use the same controller numbers, so that you are able to route them correctly.
A second possibility would be to code 2 different Max 4 Live devices. A Midi receiver and a Midi sender. You then would use the receiver on track 1/2 and the sender on track 3/4. The receiver would then mark/flag all data and send it per Max send/receive to the receiver. The sender would understand your different marks (launchpad / BCF), filter them and send them to the outside world. This includes a short delay of 64 samples (signal vectorsize in M4L).
Good Luck!
I'm not sure of your end goal, or how important the data being explicitly MIDI is, but you can get data from a Remote script in a M4L device, using observers/objects etc. If you have a control script that maps input from the LP/BCF onto components/controls in the Live API you can just grab all that data in a single audio/midi device, and send it back to the script to control the devices as well. Button Matrix(s), faders/rotaries, etc.
You wouldn't need to do all the crazy tracks/routing stuff. Again this depends on your particular implementation/goals, but thats what I would investigate.