MIDI Setup Window
On Windows, all MIDI devices which are installed correctly on your system and appear in the Sounds and Audio Devices Properties (Start > Settings > Sounds and Audio Devices) will be available to Max/MSP for MIDI I/O.
On Macintosh, the OS X application Audio MIDI Setup, located in the Utilities folder inside the Applications folder, is used to set up and describe your MIDI setup.
In addition to the standard MIDI drivers or drivers (CoreMIDI on the Mac and midi_mme on Windows ) or drivers you may have installed on your system, there are additional MIDI drivers available for use:
Max allows you to have multiple active MIDI driver objects in operation and work with multiple input and output MIDI sources. In addition to identifying MIDI inputs and outputs by name, you can specify an input or output source by a letter (a-z), or by using MIDI channel numbers above 16.
The MIDI Setup Window provides information on the availability and status of all available MIDI inputs and outputs, and lets you perform mapping between MIDI devices and names or numbers.

Viewing the MIDI Setup Window

About the MIDI Setup Window:
On shows whether the input or output device is enable (on) or disabled (off)
Name shows the name of any MIDI devices currently available. Note that MIDI devices must be connected prior to starting the Max application in order to be available for use.
The Abbrev and Offset columns contain pop-up menus listing the current abbreviation and channel offset associated with a MIDI input or output device.
MIDI outputs and inputs
Max uses an internal DLS Synthesizer supported by your Macintosh or Windows OS as its default MIDI output device.
Mapping MIDI inputs and outputs
The MIDI Setup window lists the MIDI device names and lets you associate letter abbreviations and ranges of MIDI channels with them.

Assigning MIDI abbreviations and channel ranges

In the following example, MIDI input from any MIDI input objects with the letter b as an argument will accept input from another application (such as Ableton Live) that routes its MIDI output to the destination "to Max/MSP 1", and any input objects identified with the letter a as an argument will accept input from an external MIDI keyboard.
You can route MIDI input or output data based on the MIDI message’s channel numbers. All MIDI input or output devices mapped this way will allow input or output on 16 channels, numbered from an initial offset value.

Mapping MIDI inputs and outputs using channel offsets

In the following example Max’s MIDI output will be sent to the AU DLS Synth if the output message is sent on MIDI channels 0-15, and to a MIDI interface if the message is sent to MIDI output channels 16-31.
Default Devices for MIDI Objects
If you create a MIDI output object without specifying a device name, the object transmits MIDI to the first device (the default) in the list of output devices in the MIDI Setup window.
On the Macintosh, the default MIDI output is an AudioUnit DLS synthesizer. The AU DLS synth supports its own set of internal sounds as a General MIDI bank, and also provides support for Level 2 SoundFont files.
On Windows systems, the default MIDI output is the Microsoft DirectMusic DLS synthesizer. (Note: the Microsoft DLS synthesizer does not support SoundFont files)
If you don’t assign MIDI input or output to a specific destination or port (i.e., one that does not have a MIDI device name or abbreviation as an argument) , Max will automatically merge all input devices. This is useful if you want to treat all MIDI input identically regardless of its source, But this also means that the only way for a Max patch to determine which device is actually the source of input to these objects is to compare the incoming MIDI channel number to the MIDI channel offset specified for each device.
Note: The midiin object is an exception to this behavior — if you don’t use an argument to specify a device, it receives data only from the first device in the input device list. When multiple devices share the same letter abbreviation, Max will use the first one in the list at the time a MIDI input or output object is created with that abbreviation as an argument. Changing the abbreviations of devices has no effect on pre-existing objects, although it will have an effect on the meaning of subsequent port messages sent to MIDI output objects with abbreviations as argument.