Forums > MaxMSP

How do I port MAX out to Logic Pro 7.2?

March 22, 2008 | 3:43 am

I’d like to be able to control some transport bar buttons, such as:

- Play
- Record
- Stop

I’d also like to control (a standard logic plugin such as ES1):

- Previous Patch
- Next Patch
- Various parameters

The plugin I choose needs to understand data going to it via the Keyboard in MAX, as I have built an arpeggio in MAX.

I’m lead to believe that MAX shows up as an "Input Device" on an Instrument track within Logic, is this correct?

Thanks to anyone that has helped me this far,
James.


March 22, 2008 | 2:35 pm

I’m not sure if this will solve your problem but I had a similar problem with Max and Logic 8 and fixed as follows.

Open the environment window in logic (cmd8) then select click and ports in the drop down menu in the upper left hand corner of the screen set. A view of logics midi inputs will be shown.

If your sending midi using noteout from Max you should see fromMax1 and fromMax2 as input devices in logic.

Make sure you’ve also selected selected them in Maxs ‘midi devices’ option in the File menu. When your patcher is locked click on noteout and selected your fromMax1 or fromMax2.

In logic patch one of them to the sequencer icon. Un-patch the sum option. This will ensure that your midi isn’t sent to Max and logic from your controller. It allows you to send midi to Max and then to logic but do what you want to the midi info in Max. After this you’ll need to learn how to assign midi to different parameters in logic but this will get the info there at least. The rest shouldn’t be too difficult.

Hope this helps a bit.

By the by sflogicninja does great video tutorials on youtube about everything Logic.


March 22, 2008 | 6:24 pm

Nice post, thanks very much :o) I’ll give it a spin in a little while and report back.


March 31, 2008 | 2:15 pm

Hi all,

Okay I have midi data being sent to logic now and my patch is working with Ultrabeat. Now i need to send Midi control change messages to Logic (using the [ctlout] object?) so that I can do the transport buttons and affect parameters on effects plugins.

Does anybody know of a list of the control change messages in logic? ie, what numbers are assigned to what parameters? I’m kinda stuck now.

I’ve created a [ctlin] object to try and pick up these control change messgaes but I think i need to set logic up with it, nothing new appears in the environment window after i’ve created the [ctlin] object.


March 31, 2008 | 9:32 pm

Quote: jl8080 wrote on Mon, 31 March 2008 08:15
—————————————————-
> … Now i need to send Midi control change messages to Logic (using the [ctlout] object?) so that I can do the transport buttons and affect parameters on effects plugins.

Either [ctlout] or construct your messages before the output and use [midiout]. Maybe it is a good idea to send your Arpeggiator messages through one port and the control stuff via the other one. That way you don’t have to separate them in the Logic environment but get them rather from the respective ports.


Now comes Logic specific stuff, I try to keep it short …

I don’t know a good way to handle transport messages. You can assign MIDI to Logic KeyCommands but Logic 7 tends to go crazy with that. Don’t know what Logic 8 does but you have to try it anyway. Btw, if you assign KeyCommands you don’t see the messages in Logic. They get grabbed before you see them anywhere and Logic just reacts.

To control plugins, the easiest way is to use Logic’s Controller Assignments. You can send 0-127 and the assignment will automatically map and scale to the target parameter.

If you don’t want to work with Controller Assignments, you have to talk directly to the plugins via cables to the channelstrips. First make sure that your MIDI prefs are NOT set to "old behavior" but to standard MIDI messages. Otherwise you will severely limit the usable range of MIDI messages. Then insert the plugin of your choice and cable the channelstrip to a monitor object. Move the plugin controls and look what the monitor shows. Controller type is always "Fader" (!) which is Logic’s internal message type. Channel number depends on the position of the slot and wether it is an Instrument- or a non-instrument channel. Number specifies the parameter, the value ranges depends on the specific plugin and parameter. No, Logic plugins don’t go always 0-127. Now – you have to transform your sent controllers to "Fader" messages, your numbers to the parameters and you have to scale the number ranges. Tedious. That’s why I suggested Controller Assignments in the first place.

> Does anybody know of a list of the control change messages in logic? ie, what numbers are assigned to what parameters? I’m kinda stuck now.

As I wrote above, find them out by using a monitor object. If a plugin does not spit them out you have to create a series of faders, cable them to the channelstrip and start the Trial&Error game. Message type must be "Fader", Channel depends on the slot position and strip type. Number and values are what you have to find out.

> I’ve created a [ctlin] object to try and pick up these control change messgaes but I think i need to set logic up with it, nothing new appears in the environment window after i’ve created the [ctlin] object.

I think you didn’t see them in Max because they are of type "Fader", Logics proprietary format which has no meaning to the outside. You should see them if you take a transformer object and convert all "Fader" to "Control" before you send them out.

Note: get the freeware "MidiMonitor". Makes it much easier to see what is going on, MIDI-wise, than dealing with [ctlin] in Max.


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