# Patchmap-Dateien

MultitrackStudio verwendet Patchmap-Dateien (*.pmp), um die Namen von Patches und Druminstrumenten von Hardware-Synthesizern zu definieren, sodass diese – wo zutreffend – anstelle der üblichen Bank:Programm-Nummern angezeigt werden.

Das ☰-Menü eines Externen MIDI-Instrument-Fensters enthält eine Patchmap-Option, die eine Importieren-Option bietet, um Ihre Patchmap zu importieren. Sie können die Datei auch auf ein Externes MIDI-Instrument-Fenster ziehen. Wenn Sie die Datei bearbeitet haben, können Sie sie einfach erneut importieren.

Tipp: Sie können im Internet nach einer .ins (Instrumentendefinition) Datei für Ihren Synthesizer suchen. Beim Importieren wird diese in eine .pmp-Datei konvertiert.

Unter der HaubeBenutzerdefinierte Patchmaps werden im Ordner "Library/Application Support/MultitrackStudio/PatchMaps" des Benutzers gespeichert.

Patchmap-Dateien können mit TextEdit bearbeitet werden. Die folgenden Beispiele zeigen, wie Sie Patchmap-Dateien für Ihren eigenen Hardware-Synthesizer erstellen können. Der kursiv geschriebene Text ist ein Kommentar und gehört nicht in tatsächliche Patchmap-Dateien.

### Beispiel 1: Bänke und Patch-Namen

Dieses Beispiel zeigt eine einfache Patchmap mit nur zwei Bänken.

[patchmap] |  | erforderliches Attribut
[bank 0] |  | Dieser Abschnitt enthält die erste Bank. Hinweis: dies ist 0, nicht 1. Beachten Sie auch das Leerzeichen.
bank=1280 |  | Die zugehörige MIDI-Bank. Diese Zahl entspricht 128 * MSB + LSB.
|  | MSB und LSB entsprechen den MIDI-Controllern #0 bzw. #32.
|  | In diesem Beispiel ist MSB=10 und LSB=0.
0=Piano |  | MIDI-Programm 0 ist ein Piano
1=Bass |  | MIDI-Programm 1 ist ein Bass
|  | Diese Werte können bis zu 127 betragen
[bank 1] |  | Dieser Abschnitt enthält die zweite Bank. Banken müssen fortlaufend nummeriert sein
bank=1281 |  | MSB=10 und LSB=1
32=Guitar |  | MIDI-Programm 32 ist eine Gitarre
33=Violin |  | MIDI-Programm 33 ist eine Violine

### Beispiel 2: Drum-Instrument-Namen

Angenommen, unser Synthesizer hat ein einziges Drum-Patch. Fügen wir sowohl das Patch als auch die Namen der Druminstrumente zur Patchmap hinzu:

[patchmap] |  |
[bank 0] |
bank=1280 |
0=Piano |
[bank 1] |
bank=1281 |
32=Guitar |
33=Violin |
64=Acoustic Drum Kit |  | Der Drum-Patch befindet sich auf Programmnummer 64
[drum 0] |
bank=0 |  | Die Drums befinden sich in Bank 0. Dies entspricht 128 * MSB + LSB,
|  | siehe die Erklärung im Abschnitt [bank 0] von Beispiel 1.
patch=8 |  | Die Drums befinden sich auf MIDI-Programm 8
36=Bass Drum |  | Note 36 ist eine Bassdrum
40=Snare |  | Note 40 ist eine Snare

Weitere Drumkit-Sektionen müssen fortlaufend nummeriert werden ([drum 1], [drum2] usw.)

### Beispiel 3: Percussion-Kanal

Angenommen, es handelt sich um einen GM-Synthesizer, der nur eine Bank und Drums auf Kanal 10 hat:

[patchmap] |  |
[bank 0] |
bank=-1 |  | -1 bedeutet "alle Bänke", wir machen das, weil GM keine Bänke unterstützt
|  | Wenn Sie die "bank="-Zeile weglassen, wird standardmäßig 0 verwendet, da es sich
|  | um den Abschnitt [bank 0] handelt. [bank 1] verwendet standardmäßig 1 usw.
channel=1,2,3,4,5,6,7,8,9,11,12,13,14,15,16 |  | [bank 0] ist für Kanal 10 ungültig
0=Piano |
1=Bright Piano |
12=Marimba |
25=Acoustic Guitar |
26=Electric Guitar |
[bank 1] |
bank=-1 |  | -1 bedeutet "alle Bänke", wir machen das, weil GM keine Bänke unterstützt
channel=10 |  | [bank 1] ist nur für Kanal 10 gültig
0=Drum Kit |
[drum 0] |
channel=10 |  | Diese Instrumentennamen sind für Kanal 10 gültig
36=Bass Drum |
40=Snare |

### Beispiel 4: Patch-Kategorien

Fügen wir einige Kategorien hinzu. Sie erscheinen in der Patch-Auswahlliste des Externen MIDI-Instruments.

[patchmap] |  |
[category] |  | Dies ist der Abschnitt, der die Kategorien definiert
#0=Piano |  | Der erste Abschnitt muss #0 sein. In diesem Fall enthält er die Pianos
#1=Guitar |  | Der zweite Abschnitt enthält die Gitarren
|  | Kategorien müssen fortlaufend nummeriert sein
[bank 0] |
bank=-1 |
0=Piano#0 |  | Fügen Sie #0 zum Namen hinzu, damit MultitrackStudio weiß, dass es in Kategorie #0 gehört
1=Bright Piano#0 |
12=Marimba |  | Keine Kategorie hier angegeben, daher wird es der Kategorie "Sonstiges" zugeordnet
25=Acoustic Guitar#1 |  | Fügen Sie #1 zum Namen hinzu, damit MultitrackStudio weiß, dass es in Kategorie #1 gehört
26=Electric Guitar#1 |

### Beispiel 5: Drum-Instrument-Kategorien

Drum-Instrument-Kategorien können lokal innerhalb einer Drum-Sektion definiert werden:

[patchmap] |  |
[bank 0] |
bank=0 |
0=Piano |
1=Bright Piano |
[drum 0] |
#0=Bass |  | Der erste Abschnitt muss #0 sein. In diesem Fall enthält er die Bassdrums
#1=Snare |  | Der zweite Abschnitt enthält die Snaredrums
35=Acoustic Bass#0 |  | Fügen Sie #0 zum Namen hinzu, damit MultitrackStudio weiß, dass es in Kategorie #0 gehört
36=Bass Drum 1#0 |
38=Acoustic Snare#1 |  | Fügen Sie #1 zum Namen hinzu, damit MultitrackStudio weiß, dass es in Kategorie #1 gehört
39=Hand Clap |  | Keine Kategorie angegeben, daher wird es der Kategorie "Sonstiges" zugeordnet
40=Electric Snare#1 |

### Beispiel 6: Controller-Namen

Überschreiben wir einige Standardnamen von Controllern mit benutzerdefinierten Namen:

[patchmap] |  |
[bank 0] |
bank=0 |
0=Piano |
1=Bright Piano |
[controllers] |
2=Joystick -Y |  | Neuer Name für Controller 2
83=Dynamic Modulation |

Auch NRPNs können einen Namen erhalten:

[patchmap] |  |
[bank 0] |
bank=0 |
0=Piano |
1=Bright Piano |
[nrpn] |
160=Cutoff |  | Neuer Name für NRPN 160 (=128 * MSB + LSB)
161=Resonance |

### Beispiel 7: GM-Kompatibilität

GM2, GS und XG verwenden Bank-Nachrichten, während GM das nicht tut. Sie können einen Kompatibilitätsmodus angeben, um sicherzustellen, dass die Patchmap funktioniert, unabhängig davon, ob eine Bank angegeben ist oder nicht. Dies beeinflusst auch die Interpretation des GM-Percussion-Kanals.

[patchmap] |  |
compatibility=XG |  | Kann GM2, GS oder XG sein
[bank 0] |
bank=0 |
0=Piano |
1=Bright Piano |

### Beispiel 8: Unterstützte Controls

Die unterstützten Controller, NRPNs usw. können angegeben werden. Sie erscheinen im ZEIGE-Menü des Controller-Editors. Kanalcontroller erscheinen als Drehregler im Abschnitt Controls eines Externen MIDI-Instrument-Fensters.

[controllers] |  |
supported=pitchbend,7,10,nrpn100,rpn4130,aftertouch,polyaftertouch,sysex |
2=Joystick -Y |  | Controller-Name wie in Beispiel 6

### Beispiel 9: Kanalnamen

Kanalnamen erscheinen im Auswahlmenü der Kanalauswahl:

[channels] |  |
10=Percussion |

### Beispiel 10: Profile

Einige (ältere) Geräte können einem MIDI-CI-Profil entsprechen, auch wenn sie die MIDI-CI-Aushandlung nicht durchführen können. Einige Profile können zwangsweise aktiviert werden. Die unterstützte Controls (siehe Beispiel 8) und Drum-Instrument-Namen (Beispiel 2) werden verwendet, um geeignete Profildetails zu erstellen.

Das Piano-Profil kann für ein Programm wie folgt aktiviert werden:

[patchmap] |  |
[bank 0] |  |
bank=13824 |  |
0=Piano |  | Name des Programms 0
profiles0=piano |  | Programm 0 entspricht dem Piano-Profil
6=Harpsichord |  |

Das Default Drum Note Map-Profil kann für ein Programm wie folgt aktiviert werden:

[patchmap] |  |
[bank 0] |  |
bank=-1 |  |
profiles=defaultdrumnotemap |  | Alternative Möglichkeit: Dies bedeutet, dass alle 128 Programme mit dem Default Drum Note Map-Profil kompatibel sind
0=Drum Kit |  |
1=Drum Kit 2 |  |
profiles1=defaultdrumnotemap |  | Programm 1 entspricht dem Default Drum Note Map-Profil

### Beispiel 11: Patchwechselzeit

Einige Synthesizer benötigen ziemlich viel Zeit, um ein Patch zu laden. Lassen Sie uns sicherstellen, dass MultitrackStudio die Patch-Wechsel-Nachrichten rechtzeitig sendet. Hinweis: In der Regel ist es nicht notwendig, dies hinzuzufügen.

[patchmap] |  |
patchswitchtime=750 |  | Patch-Wechsel 750 Millisekunden früher einplanen
[bank 0] |
bank=0 |
0=Piano |
1=Bright Piano |

### Beispiel 12: Initialisierungs-Sysex

Eine Sysex-Nachricht kann gesendet werden, bevor die Aufnahme oder Wiedergabe beginnt. Dies kann z. B. verwendet werden, um einen Synthesizer in den Multi-Modus zu versetzen.

[patchmap] |  |
initsysex=f0123456f7 |  | Hex-Zahlen, die eine Sysex-MIDI-Nachricht darstellen
[bank 0] |
bank=0 |
0=Piano |
1=Bright Piano |

Wenn eine Sysex-Nachricht an jeden verwendeten MIDI-Kanal gesendet werden soll, können Sie eine hexadezimale Ziffer durch "<channel>" ersetzen:

[patchmap] |  |
initsysex=f0123<channel>56f7 |  | Hex-Zahlen, die eine Sysex-MIDI-Nachricht darstellen
|  | "<channel>" wird durch den tatsächlichen MIDI-Kanal ersetzt.
[bank 0] |
bank=0 |
0=Piano |
1=Bright Piano |

### Beispiel 13: Kein Program Change senden

Einige Synthesizer verlieren benutzerdefinierte Einstellungen, wenn sie eine Program Change-Nachricht erhalten. Sie können verhindern, dass MultitrackStudio Program Change-Nachrichten an bestimmte Kanäle sendet. Bank-Nachrichten werden dann ebenfalls nicht gesendet.

[patchmap] |  |
no_programchange=15,16 |  | Senden Sie keinen Program Change an Kanal 15 und 16