by Bremmers Audio Design 
Audio/MIDI multitrack recording software for Windows/Mac and iPad
iPad version
About Us

User Forum

July 31, 2019
MultitrackStudio for iPad 3.5.1 released

July 19, 2019
MultitrackStudio 9.4 released

  Overview    Manual    Technical specs  
Manual : Patchmap Filesprev next

Patchmap Files

MultitrackStudio uses patchmap (*.pmp) files to define the names of patches and drum instruments of hardware synths, so they can be displayed instead of plain bank:program numbers where appropriate.

Windows: Patchmap files are located in the PatchMaps subfolder (the full path will typically be C:\Program Files\MtStudio\PatchMaps\). You can add your own patchmaps in this folder as well.

Mac: You can put your own patchmap files in the user's Library/Application Support/MultitrackStudio/PatchMaps folder.

Patchmap files can be edited using NotePad (Windows) / TextEdit (Mac) . The following examples demonstrate how to create patchmap files for your own hardware synthesizer. The italic texts are comments, these shouldn't be in the actual patchmap files.

Example 1: Banks and Patch Names

This example shows a plain simple patchmap having just two banks.

[patchmap]mandatory identifier
[bank 0]This sections holds the first bank. Note it's 0, not 1. Also note the space.
bank=1280The MIDI bank it applies to. This number equals 128 * MSB + LSB.
MSB and LSB correspond to MIDI controllers #0 and #32 respectively.
In this example MSB=10 and LSB=0.
0=PianoMIDI program 0 is a piano
1=BassMIDI program 1 is a Bass
These values can go up to and including 127
[bank 1]This sections holds the second bank. Banks must be numbered sequentially
bank=1281MSB=10 and LSB=1
32=GuitarMIDI program 32 is a guitar
33=ViolinMIDI program 33 is a violin

Example 2: Drum Instrument Names

Assume our synth has one drum patch. Let's add both the patch and the drum instrument names to the patchmap:

[bank 0]
[bank 1]
64=Acoustic Drum KitThe drum patch is on program number 64
[drum 0]
bank=0The drums are in bank 0. This equals 128 * MSB + LSB,
see explanation in [bank 0] section of example 1.
patch=8The drums are on MIDI program 8
36=Bass DrumNote 36 is a bass drum
40=SnareNote 40 is a snare

Additional drum kit sections must be numbered sequentially ([drum 1], [drum2] etc.)

Example 3: Percussion Channel

Assume it's a GM synth, which has one bank only, and drums on channel 10:

percussionchannel=10This value is used by the MIDI Port's "Percussion Channel" button
[bank 0]
bank=-1-1 means "all banks", we do this because GM doesn't support banks
If you omit the "bank=" statement then it will default to 0 because it's
the [bank 0] section. [bank 1] defaults to 1 etc.
channel=1,2,3,4,5,6,7,8,9,11,12,13,14,15,16[bank 0] is not valid for channel 10
1=Bright Piano
25=Acoustic Guitar
26=Electric Guitar
[drum 0]
channel=10These instrument names are valid for channel 10
36=Bass Drum

Example 4: Patch Categories

Let's add some categories. They will appear in the MIDI Port's patch selector.

[category]This is the section which defines the categories
#0=PianoThe first section must be #0. In this case it holds the pianos
#1=GuitarThe second section holds the guitars
Categories must be numbered sequentially
[bank 0]
0=Piano#0Add #0 to the name, so MultitrackStudio knows it's in category #0
1=Bright Piano#0
12=MarimbaNo category specified here, it will end up in the "Other" category
25=Acoustic Guitar#1Add #1 to the name, so MultitrackStudio knows it's in category #1
26=Electric Guitar#1

Example 5: Drum Instrument Categories

Drum Instrument Categories can be defined locally within a drum section:

[bank 0]
1=Bright Piano
[drum 0]
#0=BassThe first section must be #0. In this case it holds the bass drums
#1=SnareThe second section holds the snare drums
35=Acoustic Bass#0Add #0 to the name, so MultitrackStudio knows it's in category #0
36=Bass Drum 1#0
38=Acoustic Snare#1Add #1 to the name, so MultitrackStudio knows it's in category #1
39=Hand ClapNo category specified here, it will end up in the "Other" category
40=Electric Snare#1

Example 6: Controller Names

Let's override some default controller names with custom ones:

[bank 0]
1=Bright Piano
2=Joystick -YNew name for controller 2
83=Dynamic Modulation

Example 7: Patch Switch Time

Some synths need quite some time to load a patch. Let's make sure MultitrackStudio sends the patch change messages in time. Note that it's usually not necessary to add this.

patchswitchtime=750Schedule patch changes 750 milliseconds earlier
[bank 0]
1=Bright Piano

Example 8: Initialization Sysex

A sysex message can be sent before recording or playback starts. This can be used to switch a synth to multi-mode for example.

initsysex=f0123456f7Hex numbers representing system-exclusive MIDI message
[bank 0]
1=Bright Piano

If a sysex needs to be send to each MIDI channel used you can replace a hex digit with "<channel>":

initsysex=f0123<channel>56f7Hex numbers representing system-exclusive MIDI message
"<channel>" will be replaced with the actual MIDI channel.
[bank 0]
1=Bright Piano

prev next
Copyright 2001-2019 Bremmers Audio Design
Last update: July 31, 2019