GNMIDI

Inhaltsverzeichnis Stichwortindex

Sysexübertragung
Previous  Top  Next


dialogsysex

Der Sysex dump Dialog dient zum Senden und Empfangen von Sysexdatenblöcken zwischen Computer und externen MIDI Geräten (Keyboard, Soundmodule ...) und umgekehrt mit Hilfe eines MIDI Kabels. Es enthält komfortable Funktionen wie Beschreibung eines Sysex Befehls oder Zuweisung eines Sysex Befehls (oder Sysexdatei) an einen Schalter, um diese Daten per Mausklick zu übertragen.

Hinweis: die Tastenkombination Alt+X öffnet diesen Dialog.

Eingabegerät
zeigt den Namen des aktuell ausgewählten MIDI Eingabegeräts an. Das kann im Menü Einstellungen geändert werden. Die Zahl nach dem Namen gibt die Anzahl der empfangenen Bytes an.  
 
Ausgabegerät
zeigt den Namen des aktuell ausgewählten MIDI Ausgabegeräts an. Das kann im Menü Einstellungen geändert werden. Die Zahl nach dem Namen gibt die Anzahl der gesendeten Bytes an.  
 
Empfangen Liste
Die Liste in der Sysex Dump empfangen Gruppe enthält Informationen über empfangene Sysexdaten (eine Zeile pro Sysex Kommando).  
 
Löschen
löscht den Inhalt der Empfangen Liste. Die Anzahl der empfangenen oder gesendeten Daten wird auf 0 zurückgesetzt.  
 
.syx Datei speichern
speichert alle selektierten Sysexzeilen der Empfangen Liste in eine binäre Sysexdatei (.syx).  
 
.dmp Datei speichern
speichert alle selektierten Sysexzeilen der Empfangen Liste in eine lesbare und änderbare Sysexdaten Textdatei (.dmp). Die .dmp Datei enthält hexadezimale Werte.  
 
beschreiben ...
selektieren Sie einen empfangene Sysexzeile in der Empfangen Liste und beschreiben Sie mit diesem Schalter die Bedeutung des Sysexbefehls anhand einiger weniger Datenbytes am Beginn des Sysexbefehls. Wenn später wieder ein ähnlicher Sysexbefehl ankommt (der Anfang stimmt überein), wird diese Beschreibung in der Zeile zusätzlich ausgegeben ...  
 
MIDI Signal
zeigt einen Stern in der rechteckigen Box an wenn MIDI Daten empfangen werden. Der Stern sollte blinken, wenn die MIDI Verbindung funktioniert.  

Sysex senden Eingabefeld
geben Sie einen kurzen hexadezimalen Sysexbefehl oder den Namen einer existierenden .syx oder .dmp Datei an um die Daten zu senden.  
 
Senden
sendet die Daten die im Eingabefeld links eingegeben werden.  
 
Datei senden ...
wählen Sie eine .syx oder .dmp Datei aus deren Inhalt gesendet wird  

Sysex Element auswählen
diese Combobox enthält benutzerdefinierte Sysexelemente die gesendet werden, wenn das Element selektiert wird. Die Combobox enthält einen Eintrag der die Möglichkeit anbietet, neue Sysexelemente zu definieren.  
 
Sysexelement definieren
benutzerdefinierte Sysexelemente können benannt werden und einem Schalter zugewiesen werden und der Combobox hinzugefügt werden. Ein Dialog wird geöffnet, mit dem das neue Sysexelement erstellt werden kann.  
 
Sysexelement Schalter
Im Dialog ist Platz für eigene Schalter definiert, die dazu benutzt werden können häufig benötigte Sysexbefehle zu senden. Die Schalter zeigen den Namen des Sysexelements im Titel. Zwei Schalter sind bereits vordefiniert (Identifizieren, GM Reset). Sie können in der Datei sendsyx.txt gelöscht werden und durch eigene Sysexelemente ersetzt werden.  

Sysex Befehle
ein Sysex Befehl (Systemexklusiver Befehl) startet mit F0 (SOX), es folgen Datenbytes im Wertebereich 0-127 und das Ende des Befehls ist durch F7 (EOX) terminiert. Kurze Sysexbefehle werden benutzt um einfache Befehle mit einigen Parametern zu übertragen. Lange Sysexbefehle werden benutzt um Lieder oder Datenblöcke zu übertragen (die z.B. die aktuellen Einstellungen eines MIDI Geräts gesammelt übertragen). Da die Daten nur 7 Bit Werte sind, sind die übertragenen 8-Bit Daten meist verschlüsselt.  
 

dialogsendsysex

Senden eines Sysexbefehls hexadezimal
geben Sie in das Eingabefeld einen Sysexbefehl in hexadezimaler Form ein. Das ist die übliche Form, um in Handbüchern zu MIDI Geräten die Liste der unterstützten Befehle anzugeben. Drücken Sie den Senden Schalter oder die Return-Taste, um die Daten zum Ausgabegerät zu schicken falls, ein gültiger Sysexbefehl (F0 ... F7) angegeben ist. Es ist nicht wichtig ob die Zeichen in Groß- oder Kleinschreibung angegeben sind.  
 
Beispiel: einige KORG Geräte unterstützen folgendes Identifizieren Kommando  
   f0 7e 0 6 1 f7
Falls der hexadezimale Sysexbefehl Fehler enthält, piepst der Dialog und selektiert den Bereich des Textes der falsch aussieht. Nach erfolgreichem Senden antwortet das Gerät möglicherweise oder führt Aktionen aus.  
 
Nach dem Senden der Daten, wartet GNMIDI einige Zeit, um dem Gerät genug Zeit zu geben die gesendeten Daten korrekt zu behandeln.  
Die Wartezeit (in Millisekunden) kann in der Datei in Ihrem persönlichen Eigene Dateien Verzeichnis mit folgender Einstellung geändert werden:
       [Settings]
       SendSyxDelay=5000

Hinweis: Wenn Sie sicher sind dass der Befehl fertig ist und das Gerät nicht mehr Zeit benötigt, können Sie die Wartezeit durch Drücken der <Esc> Taste abkürzen.  

Sysex Dateien senden (.syx)
Sysex Dateien (mit Dateiendung .syx) enthalten einen oder mehrere Sysexbefehle. Die Dateien können sehr groß sein (z.B. Dump eines Liedes, aller Keyboardeinstellungen). Drücken Sie Datei senden und wählen Sie eine gültige .syx Datei aus, um alle gültigen Sysexbefehle in dieser Datei an das Ausgabegerät zu senden. Oder geben Sie den vollständigen Pfad der Sysexdatei in das Eingabefeld ein und drücken den Senden Schalter. Wenn die Datei existiert dann werden enthaltene gültige Sysexbefehle übertragen.  

Nach dem Senden jedes Sysexbefehls wartet das Programm, um dem Gerät genug Zeit zu geben, die Daten zu behandeln.  

Senden lesbarer Sysexdateien (.dmp)
eine .dmp Datei enthält hexadezimal formatierte Sysexdatenzeilen. Die Zeilen sehen etwa so aus:  
       00000: F0 42 30 49 4E 06 F7
Die hexadezimale Zahl samt dem Doppelpunkt vor den Sysexdaten ist optional, es genügt auch  
       F0 42 30 49 4E 06 F7 
in einer .dmp Datei anzugeben. GNMIDI speichert die aktuelle Datenbyteposition der korrespondierenden binären .syx Datei in der Offset-Zahl vor dem Doppelpunkt. Sie können die .dmp Datei auch ohne Rücksicht auf die Offset-Zahl ändern, die Werte werden beim lesen einer .dmp Datei nicht berücksichtigt.  
Optional kann mit dem Rufzeichen ein Kommentar an eine Zeile angehängt werden:  
       F0 42 30 49 4E 06 F7 ! GM Reset
Der Kommentar ist nicht Teil der Sysexdaten. GNMIDI fügt solche Kommentare für jeden bekannten Sysexbefehl ein. Z.B.  
  00000: F0 42 30 49 4E 06 F7  ! KORG i30 Wechsel in den Song Modus

Die maximale Zeilenlänge innerhalb einer .dmp Datei ist 1024. Fügen Sie Zeilenumbrüche zwischen Datenwerten ein, damit die Zeilen kurz (und damit übersichtlicher) werden. GNMIDI schreibt 16 Werte pro Zeile.  

Wenn die .dmp Datei ungültig formatierte Zeilen enthält, wird das Senden nicht durchgeführt und eine Fehlermeldung wird ausgegeben, welche die Fehlerzeile anzeigt.  

Nach dem Senden von Daten einer .dmp Datei wartet das Programm einige Zeit nach jedem Sysexbefehl, um dem Gerät genug Zeit zu geben die Daten zu verarbeiten.  


dialogdefinesysex

Eigene Sysexelemente definieren
Oft benutzte Sysexbefehle können als Sysexelemente definiert werden. Sie können komfortabel durch Selektieren eines Listeneintrags oder drücken eines selbstdefinierten Schalters gesendet werden.  
Der zweite Eintrag in der Sysex senden Combobox (herunterklappbare Liste) ist immer "Sysexelement definieren". Dieser Eintrag öffnet einen Dialog zur Definition eines neuen Sysexelementes, das zur Combobox Liste hinzugefügt wird und die ersten 5 Elemente werden mit den selbstdefinierten Schalter verknüpft.  

Ein Sysexelement besteht aus  
·Sysexdaten      geben Sie ein Sysexkommando F0 ... F7 in hexadezimalen Zahlen oder einen .syx oder .dmp Dateinamen ein (benutzen Sie den Schalter "Datei" um eine Datei auszuwählen).  
·Titel       geben Sie den Titeltext für das Element in der Combobox Liste oder dem Schalter an. Benutzen Sie & um ein Tastenkürzel Alt + (nächstes Zeichen nach &) zu definieren  
·Wartezeit      geben Sie eine Zeit in Millisekunden an, das Programm wartet diese Zeitspanne nachdem dieses Sysexelement gesendet wird (standardmäßig 5000 ms).  

Nach der Eingabe eines kompletten Sysexelements werden die Combobox Liste und die benutzerdefinierten Schalter um das neue Element ergänzt, damit das Element gleich benutzt werden kann. Bisher kann mit diesem Dialog neue Elemente definieren. Änderung und Löschen von Elementen kann nur durch Änderung der Textdatei, die diese Definitionen speichert, durchgeführt werden.  

gnmidi.ini enthält eine Einstellung, die den Namen der verwendeten Sysexelementbeschreibungsdatei enthält:  
       [Settings]
       SendSyxFile=sendsyx.txt

Die selbstdefinierten Elemente werden zur Combobox Liste hinzugefügt und die ersten 5 Elemente werden eigenen Schaltern im Dialog zugewiesen.  

Die Textdatei enthält die Elementbeschreibungen in folgender Form:  
       [SendSyx]
       Caption=&Identifizieren
       Sysex=f0 7e 0 6 1 f7
       Delay=500

       [SendSyx]
       Caption=&Kirchenorgeln
       Sysex=c:\sounds\sysex\organ.syx
       Delay=23000

       [SendSyx]
       ... 
       [SendSyx]
       ...

Hinweis: gnmidi.log enthält Fehlermeldungen, wenn die Sysexelement Definitionsdatei ungültige Definitionen enthält.  

Sysexelemente mit selbstdefinierten Schaltern senden
Der ersten 5 gültigen selbstdefinierten Elemente werden 5 reservierten Schaltern im Dialog zugeordnet. Die Schalter zeigen die Titel der Elemente. Wenn der Elementtitel ein & Zeichen enthält dann kann der nächste Buchstabe nach dem & zusammen mit ALT gedrückt werden, falls diese Tastenabkürzung nicht schon anderswo im Dialog verwendet wird.  
z.B. Titel &Identify wird im Schalter als Identify dargestellt und die Tastenkombination Alt+I kann verwendet werden, um dieses Sysexelement zu senden, wenn die Alt+I Tastenkombination sonst nicht im Dialog verwendet wird.  

Sysexelemente von benutzerdefinierten Einträgen der Combobox Liste senden
Alle selbstdefinierten Sysexelemente werden zur Combobox Liste hinzugefügt. Der erste Eintrag der Liste sendet nichts, es löscht den Inhalt des Sysex Senden Eingabefelds. Der zweite Eintrag der Liste öffnet den Dialog zur Definition eines neuen Sysexelements.  
Wenn die Combobox heruntergeklappt wird und ein Sysexelement Eintrag mit der linken Maustaste angeklickt wird, dann wird dieses Element gesendet.  
Wenn die Combobox Listeneinträge mit den Pfeiltasten selektiert werden, dann wird die Elementinformation in das Sysex Eingabefeld übertragen und diese Sysexdaten können dann mit dem Senden Schalter oder mit Enter/Return Taste gesendet werden.  

Sysexdaten empfangen
Zuerst wählen Sie das Eingabegerät aus, das zum Empfangen von MIDI Daten verwendet wird.  
Die kleine Box sollte blinken, das zeigt dass das Eingabegerät bereit ist (ein funktionierendes MIDI Gerät sendet entweder MIDI Signal F8 oder Activesense FE Kommandos regelmäßig!).  
Um Sysexdaten empfangen zu können, müssen Sie vorher entweder einen Sysexbefehl am Gerät starten oder einen Sysex Request Befehl zum Gerät senden (der als Antwort Sysexdaten zurückschickt). Bei einigen Funktionen sendet das MIDI Gerät vielleicht automatisch Sysexdaten als Bestätigung (z.B. Wechsel in einen bestimmten Modus). Einige Geräte senden Sysexdaten nur wenn eine Option am Gerät eingeschaltet ist.  

Jeder empfangene Sysexbefehl wird zur Liste in der Mitte hinzugefügt, der Sysexbefehl wird in hexadezimalen Zahlen dargestellt F0 ... F7 (längere Sysexdaten werden nur abgekürzt dargestellt, aber der gesamte Befehl ist im Speicher vorhanden). Solange die Sysexübertragung noch nicht fertig ist, wird am Ende der Daten ein ... dargestellt (ohne F7 am Ende), sobald die Übertragung komplett ist wird das ... F7 angehängt.  

Die aktuelle Liste von Sysexbefehlen kann gelöscht werden (löscht alle empfangenen Sysex und setzt die Zähler auf 0 zurück). Einzelne Sysexbefehle können mit der Maustaste selektiert werden (in die entsprechende Zeile klicken). Selektierte Sysexbefehle können mit Löschen entfernt werden. Selektierte Sysexbefehle können in eine Datei gespeichert werden (.syx oder .dmp).  

Sysexkommando beschreiben
Selektieren Sie einen empfangenen Sysexbefehl in der Liste und klicken Sie den Schalter "beschreiben ..." an. Schauen Sie in Ihr Handbuch zum MIDI Gerät, um herauszufinden was dieser Sysexbefehl bedeutet. Die ersten 10 hexadezimalen Werte des empfangenen Sysex Kommandos werden im Eingabefeld dargestellt. Nur ein Teil vom Beginn des Sysexbefehls ist notwendig um den Typ des Befehls zu erkennen. Sie können unnötige Werte am Ende des Sysex löschen oder weitere hinzufügen, wenn weniger oder mehr Werte wichtig sind, um die Bedeutung des Sysexbefehl zu identifizieren.  
Spezialzeichen können als Platzhalter benutzt werden, um bedeutungslose Werte zu überspringen oder wichtige Werte zu markieren:  
? dieses Zeichen passt zu jedem Wert [0-7f]  
# dieses Zeichen passt zu jedem Wert [0-7f] und merkt sich den Wert vom empfangenen Sysex an dieser Stelle. Der Wert kann in einer Sysexbeschreibung mit dem # Zeichen als Platzhalter ausgegeben werden  

Eine Sysexbeschreibung passend zu einem Sysex wird  
·bei empfangenen Sysexbefehlen als [...} ausgegeben  
·ausgegeben, wenn ein passender Sysexbefehl gesendet wird  
·beim Speichern in eine .dmp Datei als Kommentar zu einem passenden Sysexbefehl hinzugefügt  

Bisher kann der Sysex beschreiben Dialog nur neue Beschreibungen hinzufügen. Änderung oder Löschen von Beschreibungen kann nur durch Ändern der Sysexbeschreibungsdatei durchgeführt werden, welche die Beschreibungen speichert:  

Folgende Einstellung in gnmidi.ini enthält den Namen der Datei, welche die Sysexbeschreibungen speichert:  
       [Settings]
       SysexDescriptionFile=describesyx.txt

Eine gespeicherte Sysexbeschreibung in der Sysexbeschreibungsdatei sieht etwa so aus:

       [KORG i30 Wechseln in den Song Modus]
       F0 42 30 49 4E 06 F7

Das zeigt die Sysexbeschreibung wenn dieser Sysex empfangen wird:
       F0 42 30 49 4E 06 F7 [KORG i30 Wechseln in den Song Modus]

Für längere Sysexdaten genügt es den Beginn des Sysexbefehls zu identifizieren, das Zeichen # kann als Platzhalter für einen Wert im Sysexbefehl benutzt werde, deren Wert dann in der Beschreibung mitausgegeben werden kann, z.B.  

       [KORG i30 Style Block #]
       F0 42 30 49 65 #
beschreibt den Anfang von Sysex F0 42 30 49 65 02 mit folgender Zeile (der Wert 2 wird vom empfangenen Sysex ausgelesen):  
       F0 42 30 49 65 02 00 20 00 00 00 [KORG i30 Style Block 2]

Hinweis: Sysexbefehle in Hexadezimaldarstellung und ihre Bedeutung kann im Handbuch zu Ihrem MIDI Gerät nachgelesen werden. Lesen Sie in Ihrem Geräte Handbuch auch wie Sie Sysex Dumps empfangen und senden können.

Wichtige Notiz zum Senden von Sysex aus einer Datei
das Programm wartet nach jedem Senden eines Sysexbefehls eine bestimmte Zeit um dem MIDI Gerät genügend Zeit zu geben, die Daten zu empfangen und zu verarbeiten (standardmäßig 5 Sekunden zusätzlich zur Transferzeit). Das ist meist genug Zeit um dekodieren und speichern langer Datenblöcke, aber kann zu kurz sein, wenn hintereinander Dump Requests geschickt werden, wo jeder eine große Datenmenge zum Zurücksenden anfordert. Wenn das Gerät nicht genug Zeit hat, kann ein Sysexbefehl fehlschlagen.  
Die Standardwartezeit zwischen Senden von Sysexbefehlen kann mit der gnmidi.ini Einstellung geändert werden:  
       [Settings]
       SendSyxDelay=15000
(das würde die Standardwartezeit auf 15 Sekunden setzen)  

Hinweis: Für selbstdefinierte Sysexelemente können Sie bei jedem Element eine eigene Wartezeit definieren.