Weiter Zurück Inhaltsverzeichnis
Eine Midi-Map wandelt Midi-Ereignisse in andere Midi-Ereignisse um.
Dies ist unbedingt nötig für Synthesizer, die nicht General-Midi-fähig sind. In diesem Fall übersetzt die Midi-Map General-Midi-Ereignisse in Ereignisse, die der Synthesizer versteht.
Zum Beispiel können Sie eine Midi-Map erstellen, die alle
Ereignisse des Typs Change patch to Bright Piano
in Ereignisse des Typs
Change patch to Trumpet
umwandelt und somit immer eine Trompete erklingen
läßt, wenn ursprünglich ein Klavier spielen sollte.
Dies mag merkwürdig klingen (wieso eine Trompete anstelle eines Klaviers
nehmen?), aber es ist äußerst nützlich. Der
General-Midi-Standard definiert zum Beispiel, daß ein Midi-Keyboard
Patch 0
als akustischer Flügel
interpretiert wird, aber ein
älterer Synthesizer interpretiert Patch 0
z.B. als
Elektrische Gitarre
und hat den akustischen Flügel
z.B. auf
Patch 3
. Hierin liegt nun die Aufgabe der Midi-Map. Sie muß alle
Ereignisse des Typs change patch to 0
in Ereignisse des Typs change
patch to 3
umwandeln und so auch wirklich das richtige Instrument spielen
lassen.
Kurz gesagt, wenn Sie keinen externen Synthesizer haben: Nein.
Wenn Sie nur eine Soundkarte haben, brauchen Sie keine Midi-Map, weil alle Soundkarten General-Midi-kompatibel sind (inkl. AWE- und GUS-Karten, FM-Geräten und so weiter).
Wenn Sie Musik von einem externen Synthesizer abspielen lassen, welcher nicht General-Midi-kompatibel ist, müssen Sie eine Midi-Map erstellen. Obwohl Sie vielleicht einen ganzen Nachmittag damit verbringen, Ihre Midi-Map zu erstellen und verschiedene Werte auszuprobieren für die verschiedenen Einstellungen, werden Sie schließlich dafür entschädigt, weil Sie viele verborgene Fähigkeiten Ihres Keyboards entdecken. Ich habe zum Beispiel ein billiges Yamaha PSS-790, welches nicht General-Midi-kompatibel ist und auch nicht soviele Instrumente hat wie ein General-Midi-Gerät. Mit meiner Midi-Map tönt es aber dank der Klangqualität eines externen Synthesizers besser als die meisten Soundkarten (inkl. AWE).
Es gibt leider keine Programme, um Midi-Maps zu erstellen. Sie müssen also die entsprechende Datei von Hand bearbeiten. Dazu genügt jeder Texteditor, insbesondere derjenige, den Sie normalerweise benutzen.
Eine Midi-Map ist eine Textdatei, die alle benötigten Umsetzungen für das Abspielen eines Stückes speichert.
Die Datei besteht aus vier Abschnitten: PATCHMAP
, KEYMAP
,
CHANNELMAP
und OPTIONS
.
Jeder Abschnitt darf nur einmal erscheinen, außer dem KEYMAP
-Abschnitt, der so oft erscheinen darf wie gewünscht. Voraussetzung
dafür ist aber, daß jedes Auftreten eine unterschiedliche TextID
besitzt (siehe unten).
Der allgemeine Aufbau einer Midi-Map ist wie folgt:
DEFINE PATCHMAP
...
END
DEFINE KEYMAP "Name der Keymap"
...
END
DEFINE KEYMAP "Eine weitere Keymap"
...
END
DEFINE CHANNELMAP
...
END
OPTIONS
...
END
Sie sehen, daß DEFINE
gebraucht wird, um anzuzeigen, daß ein
Abschnitt beginnt (außer für OPTIONS
) und END
, daß
das Ende eines Abschnittes erreicht ist.
Sie können Kommentare einfügen, indem Sie am Anfang der Zeile ein
#
-Zeichen setzen.
Bitte schicken Sie mir Ihre Map-Datei als Email, damit ich in zukünftigen Versionen von KMid Unterstützung bieten kann für Geräte, die nicht General-Midi-kompatibel sind.
PATCHMAP
AbschnittIn diesem Abschnitt wird angegeben, wie die Patches von General Midi auf Ihr spezifisches Keyboard abgebildet werden. Der allgemeine Gebrauch sieht wie folgt aus:
(Name des GM Patch)=(N) [AllKeysTo M]
Wobei N
die Nummer ist, die Ihr Keyboard braucht, um Patches
empfangen zu können.
Bitte beachten Sie, daß die linke Seite des Gleichheitszeichens ignoriert wird. Es wird angenommen, daß die General Midi Patches in der richtigen Reihenfolge vorliegen (von 0 bis 127), Sie dürfen die Reihenfolge also nicht ändern und auch keine Zeile für eines der 128 Instrumente weglassen.
Das optionale AllKeysTo M
wird gebraucht, um alle Töne, die dieses
Instrument brauchen, auf den Ton mit der Nummer M zu legen. Wenn Ihr
Keyboard zum Beispiel keinen Gewehrschuß
unterstützt (General
Midi Patch 127), können Sie eine Trommel (z.B. mit Ton 60) nehmen, die
ähnlich wie ein Gewehrschuß tönt. Dazu tragen Sie folgendes
in den PATCHMAP
Abschnitt ein:
Gewehrschuß =100 AllKeysTo 60
Wenn jetzt also eine Midi-Datei eine Note mit Patch 127 (Gewehrschuß) spielen soll, nimmt es Patch 100 (die Trommel auf Ihrem Keyboard) und spielt den Ton 60, unabhängig davon, welcher Ton in der Midi-Datei steht.
Bitte beachten Sie, daß hier mit dem Begriff "Trommel-Patch" der Patch gemeint ist, wo jeder Ton ein anderes Perkussionsinstrument (Trommel, Tschinelle, Maracas usw.) darstellt und nicht derjenige, wo der Ton die Tonhöhe der immer gleichen Trommel bedeutet (wie ihn manche Keyboards besitzen).
KEYMAP
AbschnittDer KEYMAP
Abschnitt wird gebraucht, um anzugeben, wie Töne auf
einem bestimmten Kanal oder Instrument abgebildet werden. Der Gebrauch ist:
DEFINE KEYMAP "Name der Keymap"
C 0 =0
C#0 =1
D 0 =2
...
END
Wie beim PATCHMAP
Abschnitt ist die Reihenfolge der Zeilen
sehr wichtig, ebenso deren Vorhandensein. Sie müssen also 128
Einträge erstellen.
Sie können für jeden Kanal und jedes Instrument mehrere Keymaps definieren. Sie müssen nur in der ersten Zeile verschiedene Namen verwenden.
Keymaps werden vor allem gebraucht, um Töne auf den Perkussions-Kanal abzubilden. Schauen Sie sich als Beispiel die mitgelieferten Keymaps an.
CHANNELMAP
AbschnittDieser Abschnitt kann gebraucht werden, um einige Kanäle auf andere
abzubilden. Wenn Sie zum Beispiel den ersten und den zweiten Kanal
vertauschen wollen, machen Sie das ganz einfach im CHANNELMAP
Abschnitt.
Allerdings sind diese Einstellungen nützlicher für Keyboards, welche die Perkussion auf einem bestimmten Kanal haben (General Midi auf Kanal 10, andere brauchen die Kanäle 16 oder 9).
Midi-Geräte brauchen 16 Kanäle, der CHANNELMAP
Abschnitt hat
also 16 Zeilen, numeriert von 0 bis 15, aufgebaut nach folgendem Muster:
(N) = (M) [Keymap "Name"] [ForcePatch x]
N
ist dabei der Kanal, welcher auf den Kanal N
abgebildet wird.
Wenn Sie die Keymap
Option benutzen, wird die Keymap mit dem Namen
Name
für diesen Kanal gebraucht. Die entsprechende Keymap muß
natürlich weiter vorne in der Datei definiert sein!
Wenn Sie die ForcePatch
Option benutzen, werden alle Ereignisse
ignoriert, die den Patch auf diesem Kanal zu ändern versuchen.
In diesem Fall wird dann immer Patch x
benutzt.
Die ForcePatch
Option kann zum Beispiel nützlich sein, um immer
den Perkussions-Patch auf dem Perkussions-Kanal zu benutzen.
OPTIONS
AbschnittIm OPTIONS
Abschnitt können Sie einige ganz nützliche
Einstellungen vornehmen:
OPTIONS
PitchBenderRatio = r
MapExpressionToVolumeEvents
END
Sie können eine, keine oder beide Einstellungen angeben.
Der Wert für PitchBenderRatio
gibt an, in welchem Verhältnis
Pitch-Bender-Ereignisse multipliziert werden. Wenn also eine Midi-Datei
ein Pitch-Bender-Ereignis sendet mit dem Wert n
, wird dieses
mit der Formel n*(r/4096)
umgerechnet und dann erst weitergeleitet.
Der Wert 4096
wird benutzt, damit in der Map-Datei keine
Dezimalkommas stehen).
Diese Einstellung wird gebraucht, weil General Midi vorgibt, daß ein Keyboard, das ein Pitch-Bender-Ereignis erhält mit dem Wert 4096, einen Ton höher spielen soll. Leider versuchen aber einige Keyboards um zwei Töne bis zu einer Oktave höher zu spielen. Um den richtigen Wert auf Ihrem Keyboard zu finden, müssen Sie ein bißchen mit KMid rumprobieren.
Wenn die Einstellung MapExpressionToVolumeEvents
gebraucht wird und
eine Midi-Datei ein Ausdruckereignis schickt, wird dieses in ein
Lautstärkeereignis umgewandelt. Dieses hat den gleichen Effekt, wird aber
von mehr Keyboards verstanden. Viele Midi-Dateien brauchen
Ausdrucksereignisse, um am Schlusß eines Liedes auszublenden. Wenn Sie
also wollen, daß die Musik immer leiser und leiser wird, können Sie
diese Einstellung ausprobieren. Vielleicht funktioniert es auch mit Ihrem
Synthesizer.
Um eine Midi-Map zu benutzen, öffnen Sie einfach den
Dialog Midi-Einstellungen
. Diesen finden Sie im Menü unter
Einstellungen
, Punkt Midi-Einstellungen
Dort klicken Sie auf Durchsuchen...
, wählen die Map-Datei und
freuen sich an der Musik!
Weiter Zurück Inhaltsverzeichnis