Mac OS X Patch Names & MIDI Device Definitions

Mac OS X Patch Names & MIDI Device Definitions

Apple AMS and XML

Apple's Audio MIDI Setup (AMS) application is useful for configuring and naming the ports of your MIDI interfaces. While it is not necessary to use AMS — Pro Tools will simply recognize the ports of any connected MIDI interface as Port 1, Port 2, Port 3, etc. — you will need to configure AMS, correctly identifying the devices in your MIDI setup by Manufacturer and Model, to be able assign MIDI patch names in Pro Tools.

AMS uses XML (Extensible Markup Language) to define external MIDI devices by manufacturer and model.

Extensible Markup Language (XML) is a simple, very flexible text format derived from SGML (ISO 8879). Originally designed to meet the challenges of large-scale electronic publishing, XML is also playing an increasingly important role in the exchange of a wide variety of data on the Web and elsewhere. For more information on XML, refer to the following Web site:

Pro Tools Patch Names

Pro Tools 6.0 and higher on Mac OS X supports XML for storing and importing patch names for external MIDI devices. When you install Pro Tools, several MIDI patch name files (.midnam) are installed for the factory default patch names of many common MIDI devices. These factory patch name file reside in the following folder:

  • Macintosh HD/Library/Audio/MIDI Patch Names/Digidesign/<manufacturer>

For more information on using MIDI patch names in Pro Tools, refer to the Pro Tools Reference Guide.

Edting MIDI Patch Names Files

If you have an external MIDI device that already has a MIDI patch name file for its factory settings, but you have created your own custom patches and patch names, you will probably want to use those patch names in Pro Tools. To do so, you will need to copy and edit the corresponding MIDI patch names file.

The following example shows you how to edit a copy of an existing factory MIDI Patch Name file — this example uses the Waldorf Microwave MIDI Patch Name file. In this fashion you can create MIDI Patch Name files for your custom patches.

  1. In the Finder, navigate to Macintosh HD/Library/Audio/MIDI Patch Names/Digidesign/Waldorf/Waldorf MicroWave.midnam

  2. Open the file, "Waldorf MicroWave.midnam" in the Apple TextEdit application

  3. Save a copy of this document and give it a new name (such as, "My Waldorf MicroWave.midnam"). The top of the document will have code that defines the manufacturer and model for the device, and should look like this:
    <MIDINameDocument>
    <Author>Digidesign</Author>
    <MasterDeviceNames>
    <Manufacturer>Waldorf</Manufacturer>
    <Model>MicroWave</Model>

    You will not need to edit this code.

  4. From the top of the document, scroll down until you see the following code:
    <PatchNameList Name="Presets 00">
    <Patch Number="A-1" Name="Let it grow" ProgramChange="0" />
    <Patch Number="A-2" Name="Leones'wet Dream" ProgramChange="1" />
    <Patch Number="A-3" Name="ANA FILTER BASS" ProgramChange="2" />
    <Patch Number="A-4" Name="WarmPad saw-sqr" ProgramChange="3" />
    <Patch Number="A-5" Name="Popes'Pipes" ProgramChange="4" />
    <Patch Number="A-6" Name="Moog Bass 01" ProgramChange="5" />
    <Patch Number="A-7" Name="RAW-SAW Solo!" ProgramChange="6" />
    <Patch Number="A-8" Name="BG-Organ" ProgramChange="7" />
    <Patch Number="A-9" Name="SPACEKEY" ProgramChange="8" />
    <Patch Number="A-10" Name="Resopotamia" ProgramChange="9" />

    </PatchNameList>

  5. This is the list you will edit to include your custom patch names. You will only need to change the patch name in quotes. For example, if the first three custom patch names are "SyncLead," "FM evolution," and "Philter Sweep," edit the patch name list as follows (the changes are highlighted in yellow):
    <PatchNameList Name="Presets 00">
    <Patch Number="A-1" Name="SyncLead" ProgramChange="0" />
    <Patch Number="A-2" Name="FM evolution" ProgramChange="1" />
    <Patch Number="A-3" Name="Philter Sweep" ProgramChange="2" />

    </PatchNameList>

    NOTE: Just as in HTML, there are certain characters that need to be coded specially, such as &amp for the ampersand (&). For a complete list of special characters, see:
    http://hotwired.lycos.com/webmonkey/reference/special_characters/

    If you have a synthesizer Editor/Librarian (such as Emagic's SoundDiver), you can copy and paste your patch names from the librarian into the XML document file

  6. Once you have finished typing your own custom patch names, save the file in and Macintosh HD/Library/Audio/MIDI Patch Names/Digidesign/<manufacturer>. You will then be able to use your custom MIDI patch names file in Pro Tools.

Creating Custom MIDI Patch Name Files

If you have an external MIDI device for which there is no factory MIDI patch names file, you can create your own. The easiest way to do this is to start with an existing file for a similar device (if there is one). The following example starts with the factory MIDI patch name file for the Waldorf MicroWave and edits it for a Waldorf MicroWave XT.

If you want to create a MIDI patch names file for a MIDI device that does in not defined for AMS, you will have to edit one of the .middev files to include your MIDI device, but more about this later.

The Waldorf MicroWave XT doesn't have a factory MIDI patch names file (not yet, at least), but it is already defined as a MIDI device for AMS.

The MicroWave XT has an internal memory, which is divided into two different types of locations:

  • 256 Sound programs (Program A001…B128)
  • 128 Multi programs (Program 001…128)

The Waldorf MicroWave also has an internal memory, which is divided into two different types of locations:

  • 64 Sound programs (Program A1…A64)
  • 64 Multi programs (Program A1…B32)

These similarities make it easy to save a copy of the Waldorf MicroWave factory MIDI patch names file, and edit and add to it for use with the Waldorf MicroWave XT.

  1. In the Finder, navigate to Macintosh HD/Library/Audio/MIDI Patch Names/Digidesign/Waldorf/Waldorf MicroWave.midnam.

  2. Open the file "Waldorf MicroWave.midnam" in the Apple TextEdit application.

  3. Save a copy of this document and give it a new name (such as "Waldorf MicroWave XT.midnam").
    The top of the document will have code that defines the manufacturer and model for the device, and should look like this:

    <MIDINameDocument>
    <Author>Digidesign</Author>
    <MasterDeviceNames>
    <Manufacturer>Waldorf</Manufacturer>
    <Model>MicroWave</Model>

    You will need to edit this code.

  4. Change the Model from MicroWave to MicroWaveXT (highlighted in yellow below).

    <MIDINameDocument>
    <Author>Digidesign</Author>
    <MasterDeviceNames>
    <Manufacturer>Waldorf</Manufacturer>
    <Model>MicroWaveXT</Model>

  5. Scroll past the <CustomDeviceMode> tag to the <ChannelNameSet > tag for the Presets. It should look like this:

    <ChannelNameSet Name="Presets">
    <AvailableForChannels>
    <AvailableChannel Channel="1" Available="true" />
    <AvailableChannel Channel="2" Available="true" />
    <AvailableChannel Channel="3" Available="true" />
    <AvailableChannel Channel="4" Available="true" />
    <AvailableChannel Channel="5" Available="true" />
    <AvailableChannel Channel="6" Available="true" />
    <AvailableChannel Channel="7" Available="true" />
    <AvailableChannel Channel="8" Available="true" />
    <AvailableChannel Channel="9" Available="true" />
    <AvailableChannel Channel="10" Available="true" />
    <AvailableChannel Channel="11" Available="true" />
    <AvailableChannel Channel="12" Available="true" />
    <AvailableChannel Channel="13" Available="true" />
    <AvailableChannel Channel="14" Available="true" />
    <AvailableChannel Channel="15" Available="true" />
    <AvailableChannel Channel="16" Available="true" />
    </AvailableForChannels>
    <PatchBank Name="Presets 00" ROM="false">
    <MIDICommands>
    <ControlChange Control="0" Value="0" />
    </MIDICommands>
    <UsesPatchNameList Name="Presets 00" />
    </PatchBank>
    </ChannelNameSet>

  6. Since the Waldorf MicroWave XT will require the two banks for its presets (2 banks of 128 presets each), you will need to edit the <PatchBank> tag (changes in code highlighted in yellow):

    a. Copy and paste the <PatchBank> tag once.
    b. Edit each PatchBank Name= " " so that they are unique (for example, PatchBank Name="Bank A" and PatchBank Name="Bank B").
    c. Edit each UsesPatchNameList Name= " " so that they are unique (for example, UsesPatchNameList Name="Presets A" and UsesPatchNameList Name="Presets B").
    d. Change the second ControlChange Value= from 0 to 1.
    <PatchBank Name="Bank A" ROM="false">
    <MIDICommands>
    <ControlChange Control="0" Value="0" />
    </MIDICommands>
    <UsesPatchNameList Name="Presets A" />
    </PatchBank>
    <PatchBank Name="Bank B" ROM="false">
    <MIDICommands>
    <ControlChange Control="0" Value="1" />
    </MIDICommands>
    <UsesPatchNameList Name="Presets B" />
    </PatchBank>

  7. Scroll past the <ChannelNameSet> tag for Multis to the first <PatchNameList> tag, and change the PatchNameList Name= to "Presets A."
    <PatchNameList Name="Presets A">
    <Patch Number="A-1" Name="Let it grow" ProgramChange="0" />
    <Patch Number="A-2" Name="Leones'wet Dream" ProgramChange="1" />
    <Patch Number="A-3" Name="ANA FILTER BASS" ProgramChange="2" />

  8. Select, copy, and paste the patch name list from Patch Number="A-1" to Patch Number="A-64". This will give you the first bank of 128 patches.

  9. Systematically go through this list and change the Patch Number="A-1" to "A-001" through "A-128," and ProgramChange="0" to "0" through "128." While you're at you can type in your custom patch names for each Name=" " (I never said this wasn't going to be tedious).
    <PatchNameList Name="Presets A">
    <Patch Number="A-001" Name="Juno Pad" ProgramChange="0" />
    <Patch Number="A-002" Name="DreamScape" ProgramChange="1" />
    <Patch Number="A-003" Name="Swept Away" ProgramChange="2" />

    <Patch Number="A-126" Name="Lunar Eclipse" ProgramChange="125" />
    <Patch Number="A-127" Name="InterModulation" ProgramChange="126" />
    <Patch Number="A-128" Name="Dunes" ProgramChange="127" />
    </PatchNameList>

  10. Select, copy, and paste the entire patch name list from the <PatchNameList Name="Presets A"> tag to the </PatchNameList> tag. This will give you the second bank of 128 patches.

  11. Change the pasted PatchNameList Name= to "Presets B."

  12. Systematically go through this list and change the Patch Number="A-001" to "B-001" through "B-128." While you're at you can type in your custom patch names for each Name=" " (I never said this wasn't going to be tedious).
    <PatchNameList Name="Presets B">
    <Patch Number="B-001" Name="Swish" ProgramChange="0" />
    <Patch Number="B-002" Name="DrumNBass" ProgramChange="1" />
    <Patch Number="B-003" Name="DJ Goa Goa" ProgramChange="2" />

    <Patch Number="B-126" Name="Trance Romance" ProgramChange="125" />
    <Patch Number="B-127" Name="SpaceBalls" ProgramChange="126" />
    <Patch Number="B-128" Name="Insta-Techno" ProgramChange="127" />
    </PatchNameList>

  13. Last, but not least, scroll to the <PatchNameList Name="Multis "> tag, and copy, paste, and rename accordingly to extend the list from 64 presets to 128.
    <PatchNameList Name="Multis ">
    <Patch Number="1" Name="TechnoSet" ProgramChange="0" />
    <Patch Number="2" Name="SupaPhatLead" ProgramChange="1" />
    <Patch Number="3" Name="Outness" ProgramChange="2" />

    <Patch Number="126" Name="" ProgramChange="125" />
    <Patch Number="127" Name="" ProgramChange="126" />
    <Patch Number="128" Name="" ProgramChange="127" />
    </PatchNameList>

  14. Once you have finished editing the document, save the file in and Macintosh HD/Library/Audio/MIDI Patch Names/Digidesign/<manufacturer>. You will then be able to use your custom MIDI patch names file in Pro Tools.

Defining a New MIDI Device for AMS

Navigate to Macintosh HD/Library/Audio/MIDI Devices/ and open the file named Legacy Devices.middev in Apple's TextEdit application. Each MIDI Device correctly defined in a .middev file (and in the correct directory) will be available for in the MIDI Device Manufacturer and Model pop-up menus in AMS. Here's the code defining the Waldorf MicroWave XT:

<MIDIDeviceType Manufacturer="Waldorf"
Model="MicroWave XT"
CanRoute="false"
SupportsMMC="false"
Image="OMS1024">
<DeviceID Min="0" Max="127" Default="0" Base="0" />
<Receives MaxChannels="16"
MTC="false"
Clock="false" />
<Transmits MaxChannels="0"
MTC="false"
Clock="true" />
</MIDIDeviceType>

If you have a MIDI device that is not defined in any of the current .middev files in Macintosh HD/Library/Audio/MIDI Devices, you can edit one of the existing files to include your MIDI device or create a new .middev file for it. AMS (and Pro Tools) will read from all .middev files in Macintosh HD/Library/Audio/MIDI Devices.

The coding requirements for your specific MIDI device may be different from the preceding example. Be sure to consult the manufacturer's documentation for your device to correctly define it in XML.

Download an Acrobat PDF Version of this Web Page:


Technical Support | Customer Service | Answerbase | Digidesign User Conference

Compatibility Documents | Technical Document Library | Software Downloads