If you want to do some MIDI processing during your music performance, there are a couple of ways to achieve this. Most DAW software does support some kind of MIDI processing capability. For Logic you have the Logic Environment, for Ableton Live you have Max for Live. If you have developed a Max MIDI effect (like the MIDI real-time Harmonizer that I did, with MIDI going in and only MIDI going out) and you use Logic, I found a nice way to combine them in a similar way that Ableton Live has done by integrating Max into Live (called Max for Live).
One way of integrating Max into Logic is to use the Logic Environment to do this. I'll show you how you can achieve this. I use the MIDI real-time Harmonizer as an example, but any Max application could work in this way.
What you should do is the following:
1: create virtual MIDI ports
2: set the ports in MIDI Harmonizer
3: create a cable switcher in Logic Environment
4: create an instrument in Logic Environment
5: wire all objects in Logic Environment
1: Create virtual MIDI ports
In Finder, click on Go | Utilities and select the Audio MIDI Setup application.
Make sure the MIDI Devices tab on top of the Audio MIDI Setup window is selected.
Double click on the IAC Driver icon, the IAC Driver Properties window will open.
Now create two ports by clicking on the + button, and add a new port called "MH-in". Click again op the + button, and add a port called "MH-out".
2: Set the ports in MIDI Harmonizer
Launch MIDI Harmonizer, or your Max MIDI effect. Set the MIDI input port to "IAC Driver MH-in" and set the MIDI output port to "IAC Driver MH-out".
3: Create a cable switcher in Logic Environment
In order to be able to bypass the MIDI Harmonizer, or any Max MIDI effect, a Cable Switcher object is used. First we have to insert the Cable Switcher object in the Environment window and set its parameters.
In Logic Pro click on Window | Environment and select Click & Ports from the drop-down list in the upper left corner. Now, in this particular Environment window, you should insert the Cable Switcher object here. Click above the dark grey part of the window on 'New', move your mouse down over the list on 'Fader', go to the next list on the right and go to the bottom, and move your mouse over 'specials', move to the right and click on 'Cable Switcher'. Now the Cable Switcher object is inserted. You can move it to a good location by click-hold on the name of the object, and drag it to a good location. You can then fill in the parameters for this Cable Switcher object as shown in the left part of the window below.
4: Create an instrument in Logic Environment
Next thing is to add an Instrument object in the Environment. This object represents the MIDI Harmonizer, or any Max MIDI effect. For Logic it is treated as an external instrument to which you can send MIDI data.
Again, click above the dark grey part of the window on 'New', and then on the first entry 'Instrument'. Now an instrument object is being inserted. You can move it to a good location by click-hold on the name of the object, and drag it to a good location. You can then fill in the parameters for this Instrument object as shown in the left part of the window below. Important is that 'Port' should be set to 'IAC Driver MH-in'. You can also change the name of the object to MIDI Harmonizer by clicking on Instrument in the left upper part of the window and type 'MIDI Harmonizer' as a new name for the object.
5: Wire all objects in Logic Environment
The last thing you should do is to wire everything up for the right MIDI signal flow. See the picture above too.
Probably you have an external MIDI controller that is physically hooked up to your computer on which you run Logic. You have to connect that particular MIDI port to the Cable Switcher object first. In the picture the physical input port is Port A. Drag a connection from the Physical Input object Port A to the Cable Switcher (red line in picture).
From the Cable Switcher drag a connection to the Input Notes object (blue line in picture).
Drag a connection from the Input Notes object to the Input View object (green line in picture).
Drag a connection from the Input View object to the Sequencer Input object (yellow line in picture).
This represents the main MIDI stream and by playing a keyboard or another controller hooked up to Port A, MIDI information should start coming in into Logic.
Now we want to create the additional MIDI routing for the MIDI Harmonizer or any Max MIDI effect.
This is done by dragging another connection from the Cable Switcher object to the Instrument object (which was renamed to MIDI Harmonizer in step 4, see above). The connection is shown as a black line in the picture above. So alternatively, the Cable Switcher can send MIDI information to the MIDI Harmonizer as well.
The only thing we need to do is to make sure that the output of the MIDI Harmonizer is now also fed back into Logic. You can do this by dragging a connection from the Physical Input port MH-out to the Input Notes object (red line in picture).
Now the routing is complete. By clicking the Cable Switcher object multiple times you can alternatively switch from normal MIDI routing to routing via the MIDI Harmonizer. The switching can also be done by MIDI which is interpreted by the Cable Switcher object. In this example the switching can be done with MIDI continuous controller 69 (see picture in step 3, left part with parameters). This happens to be one of the switches on the Akai EWI controller. So with this switch on the EWI you can actually switch on/off the MIDI Harmonizer.