Hilfe zu HUMidi

Copyright

Privates Copyright Dr.E.Huckert 02-2006. V0.8g   Vorsicht: dies ist eine Beta Testversion

Was HUMidi leistet

HUMidi wurde für Musiker geschrieben, die gelegentlich Manipulationen an MIDI Dateien vornehmen müssen. Das Bedürfnis nach solchen Manipulationen tritt sicher häufiger im Klassik- als im Pop-Bereich auf. Zu solchen Manipulationen zählen u.a.

Was HuMidi nicht leistet

HUMidi ist kein Ersatz für einen vollwertigen Sequenzer oder MIDI Editor. HUMidi ist auch kein Ersatz für einen Media Player wie z.B. den Microsoft Multimedia Player

HUMidi wurde nicht als Sequenzer, sondern als Interpretationssystem für MIDI Dateien konzipiert. Derzeit sind in HUMidi nicht implementiert:

Es ist nicht ausgeschlossen, dass einige dieser Mankos in einer der nächsten Versionen behoben werden.

Benutzeroberfläche

Die Benutzeroberfläche stand definitiv nicht im Mittelpunkt der Entwicklung - dementsprechend einfach ist sie gehalten. Ziel war es, Vorgaben eher in musikalischen Einheiten wie "Takt" und "Schlag" eingeben zu können als in technischen Einheiten wie "Event".

Die folgenden Regeln gelten für die Benutzeroberfläche:

Details zu den Eingabeformaten finden sich unten im Glossar.

Glossar:

Beispielsdateien

Im Umfang von HUMIdi finden sich einige einfache Beispielsdateien, die sich gut zum Experimentieren eignen: Zu den Beispielsdateien werden keine Interpretationsdateien geliefert.

Syntax Dynamikliste

Eine Dynamikliste besteht im allgemeinen aus einer Folge von einzelnen Dynamikanweisungen (z.B. piano). Mehrere Dynamikanweisungen werden durch Kommata getrennt. Jede Dynamikanweisung beginnt mit einem Dynamikkennzeichen gefolgt von einem Taktbereich. Typisches Beispiel: p17-32,f36:3-40:2. Ein Taktbereich besteht aus dem Anfangstakt und dem Endetakt. In beiden Taktangaben können Schlagangaben stehen, z.B. "4:3" für "Takt 4, dritter Schlag".

Liste der Dynamikkennzeichen:

Controller Kommandos

Meine Synthesizer (beide von Roland) verstehen u.a. die folgenden wichtigen Controllerkommandos (alle Angaben hier für den Kanal Nr. 1): Bitte beachten Sie, dass nicht alle Synthesizer diese Kommandos verstehen und dass von Fall zu Fall der Typ (das erste Byte) unterschiedlich sein kann!

Interpretationsdateien

HUMidi legt nach dem Abspielen jeder MIDI Datei eine Interpretationsdatei an (Extension .int). Die Datei wird immer in dem Verzeichnis abgelegt, das unter dem Parameter mididir in der allgemeinen Konfiguration genannt wird. Die Interpretationsdatei nimmt die folgenden Parameter auf: Beim Laden einer neuen Datei wird versucht, eine Interpretationsdatei dazu zu finden. Wenn keine gefunden wird, erscheint keine Fehlermeldung! Interpretationsdateien sind optional.

Die Interpretationsparameter werden automatisch gerettet wenn HUMidi verlassen wird oder wenn eine neue MIDI Datei geladen wird

Instrumentzuordnungen (Program Change)

Instrumentzuordnungen können in einem eigenen Dialog unter dem Menü MIDI/Instrumentzuordnungen eingefügt bzw. geändert werden. Bitte beachten Sie, dass Instrumentzuordnungen variieren können je nach Synthesizer und Modus des jeweiligen Sythesizers. Die nachstehende Liste zeigt einen Ausschnitt für den weit verbreiteten Modus GM ("General MIDI"):

1=Flügel
5=Fender Rhodes
9=Celesta
10=Glockenspiel
12=Vibraphon 17=Hammond Orgel
20=Kirchenorgel
22=Akkordeon
25=Klass. Gitarre
34=E Bass
41=Violine
42=Bratsche
43=Violoncello
44=Kontrabass
51=Strings
53=Chor
57=Trompete
67=Tenor Sax
69=Oboe
70=Englisch Horn
71=Fagott
72=Klarinette
74=Flöte

Technik

HUMidi ist in C++ geschrieben und wurde mit dem C++ Compiler von Digital Mars (ehemals Symantec C++, davor Zortech C++) kompiliert. Das Programm besteht aus ca. 15 Klassen, die in ca. 13000 Zeilen Quellcode abgelegt sind. Für die Programmierung der Benutzeroberfläche habe ich wxWidgets verwendet. Für die Implementierung des MIDI Servers, des MIDI Protokolls und der Kommunikationskomponenten habe ich ausschließlich eigene Klassen verwendet. Das Verhältnis von MIDI lastigem Code zu reiner Benutzeroberfläche liegt bei ca 4:1.

Kontakt

Bitte senden Sie Verbesserungsvorschläge, Kommentare oder Fehlermeldungen per E-Mail an edgar.huckert@huckert.com