Manual des MIDI RS-232/RS-422 Converter - Cinetix.de

Manual des MIDI RS-232/RS-422 Converter - Cinetix.de Manual des MIDI RS-232/RS-422 Converter - Cinetix.de

10.10.2013 Aufrufe

oder mit einer vorangestellten Null dargestellt werden. Als Byte-Ende Zeichen muss die LEERTASTE oder ein CARRIAGE RETURN (hex D) folgen. LINE FEED (hex A) wird ignoriert. Fehlerhafte oder nicht interpretierbare Text-Eingaben werden mit einem Fragezeichen ’?’ quittiert. So kann z.B. MIDI I/O mit Programmen erfolgen, die keine 8 Bit Datenkommunikation erlauben oder behelfsweise per Hand am Terminal. Entsprechend werden von MIDI IN empfangene Bytes an der RS-232/RS-422 Schnittstelle als in Klarschrift lesbarer ASCII-Text ausgegeben (nur Drehschalter-Stellungen 3 und 4 ! ). Die Drehschalter-Einstellung beeinflusst lediglich die RS-232/RS-422 Baudrate. Zu den Nachrichten gehörende MIDI-Kanäle sind in den übermittelten ASCII Text-Daten enthalten. Beispiel: Um MIDI-seitig ein CONTROL CHANGE Statusbyte hexB1 (=dezimal 177) auszugeben wird RS-232 seitig die Textdarstellung "B1" eingetippt oder sonstwie eingegeben. Umgekehrt wird z.B. ein Keyboard-Anschlag der Note c (= MIDI-Wert dezimal 48 = hex30 ) mit Standard- Velocity (dezimal 64= ex 40) auf MIDI-Kanal 1 folgenden ASCII-Text auf der RS-232 Seite erzeugen: “90 30 40“ In Betriebsart "MIDI Msg Byte" (Drehschalter Stellungen 5 bis C) werden MIDI- Nachrichten in einzelne Bytes umgewandelt und an der seriellen Schnittstelle gesendet. Diese Betriebsart ist in erster Linie dazu gedacht, um Geräte mit serieller Schnittstelle mittels MIDI-Nachrichten zu steuern. Bei der Umsetzung von MIDI-Nachrichten in serielle (RS-232/RS-422) Bytes können folgend beschriebene vier Methoden in allen Drehschalterstellungen 5 bis C beliebig gemischt werden. Es werden nur MIDI-Nachrichten auf dem per Konfiguration eingestellten MIDI- Kanal (Lieferzustand: Kanal 1) ausgewertet und seriell weitergesendet. Bei der umgekehrten Umsetzung von seriellen Daten auf MIDI hingegen wird jedes an der seriellen Schnittstelle empfangene Byte entsprechend der Stellung des Drehschalters nach einer bestimmten Methode in eine MIDI-Kanalnachricht umgewandelt (nur Drehschalter Stellungen 7 bis C ! Details siehe weiter unten.). Darüber hinaus besteht in der aktuellen Firmware-Version (Geräte geliefert ab Juli 2011) die Möglichkeit, diese Standard-Datenumsetzungen zu überschreiben mit vom Anwender frei programmierbaren Zeichenfolgen (“Strings“), die auch beim Abschalten des Geräts gespeichert bleiben. Details dazu siehe weiter unten ab Seite 9. Methode 1: Wird an MIDI IN eine Nachricht des Typs NOTE ON, POLY KEY PRESSURE (oder NOTE OFF) empfangen (MIDI-Kanal bei Lieferung 1 oder vom Anwender konfiguriert) so wird die Nachricht in folgenden Bytewert umcodiert, der dann sofort an den seriellen (RS-232 und RS-422) Schnittstellen weitergesendet wird: 1. Datenbyte (Notenwert): wird zu Bits 0 bis 6 des seriellen Bytes. 2. Datenbyte (Velocity): --- wenn der Wert im Bereich 1 bis 126 liegt, wird Bit 7 des seriellen Bytes = 0 ("printable character", elementarer ASCII-Codevorrat) --- wenn der Wert = 127 ist, wird Bit 7 des seriellen Bytes = 1 (erweiterter ASCII-Codevorrat) --- MIDI Nachrichten mit Velocity 0 und NOTE OFF werden ignoriert (als Schutz gegen automatisch gesendete Nachrichten bei Noten-Ende). Diese Blockade kann optional mit dem Befehl % aufgehoben werden (siehe genaue Beschreibung des Befehls % auf S.10 und S.14) Beispiel: Ein Keyboard-Anschlag der Note d (=MIDI-Wert 50 = hex32) mittlerer Velocity wird auf der RS-232 Seite das Byte mit dem Binärwert hex 32, also ASCII “2“ auslösen. Methode 2: Wird an MIDI IN eine Nachricht des Typs CONTROL CHANGE oder PITCH CHANGE 6

empfangen (MIDI-Kanal bei Lieferung 1 oder vom Anwender konfiguriert) so wird die Nachricht in folgenden, über die seriellen (RS-232 und RS-422) Schnittstellen gesendeten Bytewert umcodiert: 1. Datenbyte (Controller Nr oder Pitch LSB): Bit 0 dieses Datenbytes wird Bit 7 des an der seriellen Schnittstelle gesendeten Bytes. 2. Datenbyte (Controller Wert oder Pitch MSB): wird Bits 0 bis 6 des seriellen Bytes Mit einer CONTROL CHANGE Message von Controller Nr. 0 (oder jedem anderen Controller mit geradzahliger Nummer) wird also ein "printable character" im elementaren ASCII- Codevorrat 0 bis 127 erzeugt. Mit einer CONTROL CHANGE Message von Controller Nr. 1 (oder jedem anderen Controller mit ungeradzahliger Nummer) wird also ein Byte aus dem erweiterten ASCII-Codevorrat 128 bis 255 erzeugt. Beispiel: Aus der CONTROL CHANGE Nachricht hex B0 51 75 bzw dezimal 176 81 117 das Byte hexF5 bzw dezimal 245 erzeugt und über die serielle Schnittstelle gesendet. Methode 3: Wird an MIDI IN eine Nachricht mit nur einem Datenbyte des Typs PROGRAM CHANGE oder CHANNEL PRESSURE empfangen (MIDI-Kanal bei Lieferung 1 oder vom Anwender konfiguriert) so wird die Nachricht in folgenden Bytewert umcodiert, der dann sofort an den seriellen (RS- 232 und RS-422) Schnittstellen weitergesendet wird: Das MIDI-Datenbyte wird zu Bits 0 bis 6 des seriellen Bytes. Zusätzlich wird: bei einer PROGRAM CHANGE Nachricht wird Bit 7 des seriellen Bytes = 0 gesetzt bei einer CHANNEL PRESSURE Nachricht wird Bit 7 des seriellen Bytes = 1 gesetzt Beispiel: Die PROGRAM CHANGE Nachricht hex C0 41 bzw dezimal 192 65 erzeugt an RS-232 das Byte “A“, eine entsprechende CHANNEL PRESSURE Nachricht hex D0 41 wird an RS-232 das Byte hexC1 ausgeben. Methode 4: Wird an MIDI IN eine System-Exclusive Nachricht mit dem Cinetix Manufacturer ID empfangen, so wird diese folgendermassen an den seriellen (RS-232 und RS-422) Schnittstellen ausgegeben: Der SysEx Header wird nicht weitergeleitet. Dieser besteht stets aus folgender 4 Byte Sequenz mit dem Cinetix SysEx Manufacturer ID: Hexadezimal: F0 00 20 5D bzw. Dezimal: 240 0 32 93 Der darauf folgende Datenkörper wird an die serielle Schnittstellen weitergesendet bis das EOX-Byte (hexF7 =dezimal 247) empfangen wird, das diesen Datenblock beendet und ebenfalls nicht weitergesendet wird. Entsprechend dem MIDI-Standard darf der Datenkörper nur Byte-Werte zwischen 0 und 127 enthalten. Normalerweise wird jedes Byte des Datenkörpers - insbesondere Textpassagen - unverändert an den seriellen Schnittstellen ausgegeben, bis auf folgende Ausnahme: Nach einem Backslash ’\’ repräsentieren die nachfolgenden 2 Bytes die ASCII-Darstellung des Hexadezimal- Codes des zu sendenden Zeichens. Auf diese Art können auch Bytes mit Werten 0 bis 32 sowie 128 bis 255 komfortabel in einer System-Exclusiven Nachricht übertragen werden. Zwischen dem Backslash und den beiden Bytes darf keine Leerstelle eingefügt werden. Sollten auf diese Art Bytewerte kleiner als hex10 übertragen werden, MUSS die Null vorangestellt werden, z.B. die Phrase \0D\0A stellt einen Zeilenumbruch dar. Ein via RS-232/RS-422 zu sendendes Backslash MUSS folgendermassen in der System-Exclusiven Nachricht codiert werden: \5C. Wenn die Hexadezimaldarstellung hinter dem Backslash fehlerhaft ist, erfolgt die unkontrollierte Umsetzung in ein Byte. Weder wird eine Fehlermeldung ausgegeben noch der Vorgang abgebrochen, da die meisten MIDI-Geräte solches Feedback ohnehin nicht adäqat verarbeiten können! 7

o<strong>de</strong>r mit einer vorangestellten Null dargestellt wer<strong>de</strong>n. Als Byte-En<strong>de</strong> Zeichen muss die LEERTASTE o<strong>de</strong>r ein<br />

CARRIAGE RETURN (hex D) folgen. LINE FEED (hex A) wird ignoriert. Fehlerhafte o<strong>de</strong>r nicht interpretierbare<br />

Text-Eingaben wer<strong>de</strong>n mit einem Fragezeichen ’?’ quittiert. So kann z.B. <strong>MIDI</strong> I/O mit Programmen erfolgen, die<br />

keine 8 Bit Datenkommunikation erlauben o<strong>de</strong>r behelfsweise per Hand am Terminal.<br />

Entsprechend wer<strong>de</strong>n von <strong>MIDI</strong> IN empfangene Bytes an <strong>de</strong>r <strong>RS</strong>-<strong>232</strong>/<strong>RS</strong>-<strong>422</strong> Schnittstelle<br />

als in Klarschrift lesbarer ASCII-Text ausgegeben (nur Drehschalter-Stellungen 3 und 4 ! ).<br />

Die Drehschalter-Einstellung beeinflusst lediglich die <strong>RS</strong>-<strong>232</strong>/<strong>RS</strong>-<strong>422</strong> Baudrate. Zu <strong>de</strong>n<br />

Nachrichten gehören<strong>de</strong> <strong>MIDI</strong>-Kanäle sind in <strong>de</strong>n übermittelten ASCII Text-Daten enthalten.<br />

Beispiel: Um <strong>MIDI</strong>-seitig ein CONTROL CHANGE Statusbyte hexB1 (=<strong>de</strong>zimal 177) auszugeben wird <strong>RS</strong>-<strong>232</strong><br />

seitig die Textdarstellung "B1" eingetippt o<strong>de</strong>r sonstwie eingegeben.<br />

Umgekehrt wird z.B. ein Keyboard-Anschlag <strong>de</strong>r Note c (= <strong>MIDI</strong>-Wert <strong>de</strong>zimal 48 = hex30 ) mit Standard-<br />

Velocity (<strong>de</strong>zimal 64= ex 40) auf <strong>MIDI</strong>-Kanal 1 folgen<strong>de</strong>n ASCII-Text auf <strong>de</strong>r <strong>RS</strong>-<strong>232</strong> Seite erzeugen: “90 30 40“<br />

In Betriebsart "<strong>MIDI</strong> Msg Byte" (Drehschalter Stellungen 5 bis C) wer<strong>de</strong>n <strong>MIDI</strong>-<br />

Nachrichten in einzelne Bytes umgewan<strong>de</strong>lt und an <strong>de</strong>r seriellen Schnittstelle gesen<strong>de</strong>t.<br />

Diese Betriebsart ist in erster Linie dazu gedacht, um Geräte mit serieller Schnittstelle<br />

mittels <strong>MIDI</strong>-Nachrichten zu steuern.<br />

Bei <strong>de</strong>r Umsetzung von <strong>MIDI</strong>-Nachrichten in serielle (<strong>RS</strong>-<strong>232</strong>/<strong>RS</strong>-<strong>422</strong>) Bytes können folgend<br />

beschriebene vier Metho<strong>de</strong>n in allen Drehschalterstellungen 5 bis C beliebig gemischt<br />

wer<strong>de</strong>n. Es wer<strong>de</strong>n nur <strong>MIDI</strong>-Nachrichten auf <strong>de</strong>m per Konfiguration eingestellten <strong>MIDI</strong>-<br />

Kanal (Lieferzustand: Kanal 1) ausgewertet und seriell weitergesen<strong>de</strong>t.<br />

Bei <strong>de</strong>r umgekehrten Umsetzung von seriellen Daten auf <strong>MIDI</strong> hingegen wird je<strong><strong>de</strong>s</strong> an <strong>de</strong>r<br />

seriellen Schnittstelle empfangene Byte entsprechend <strong>de</strong>r Stellung <strong><strong>de</strong>s</strong> Drehschalters<br />

nach einer bestimmten Metho<strong>de</strong> in eine <strong>MIDI</strong>-Kanalnachricht umgewan<strong>de</strong>lt (nur<br />

Drehschalter Stellungen 7 bis C ! Details siehe weiter unten.).<br />

Darüber hinaus besteht in <strong>de</strong>r aktuellen Firmware-Version (Geräte geliefert ab Juli 2011) die<br />

Möglichkeit, diese Standard-Datenumsetzungen zu überschreiben mit vom Anwen<strong>de</strong>r<br />

frei programmierbaren Zeichenfolgen (“Strings“), die auch beim Abschalten <strong><strong>de</strong>s</strong> Geräts<br />

gespeichert bleiben. Details dazu siehe weiter unten ab Seite 9.<br />

Metho<strong>de</strong> 1:<br />

Wird an <strong>MIDI</strong> IN eine Nachricht <strong><strong>de</strong>s</strong> Typs NOTE ON, POLY KEY PRESSURE (o<strong>de</strong>r NOTE<br />

OFF) empfangen (<strong>MIDI</strong>-Kanal bei Lieferung 1 o<strong>de</strong>r vom Anwen<strong>de</strong>r konfiguriert) so wird die Nachricht in<br />

folgen<strong>de</strong>n Bytewert umcodiert, <strong>de</strong>r dann sofort an <strong>de</strong>n seriellen (<strong>RS</strong>-<strong>232</strong> und <strong>RS</strong>-<strong>422</strong>)<br />

Schnittstellen weitergesen<strong>de</strong>t wird:<br />

1. Datenbyte (Notenwert): wird zu Bits 0 bis 6 <strong><strong>de</strong>s</strong> seriellen Bytes.<br />

2. Datenbyte (Velocity):<br />

--- wenn <strong>de</strong>r Wert im Bereich 1 bis 126 liegt, wird Bit 7 <strong><strong>de</strong>s</strong> seriellen Bytes = 0 ("printable<br />

character", elementarer ASCII-Co<strong>de</strong>vorrat)<br />

--- wenn <strong>de</strong>r Wert = 127 ist, wird Bit 7 <strong><strong>de</strong>s</strong> seriellen Bytes = 1 (erweiterter ASCII-Co<strong>de</strong>vorrat)<br />

--- <strong>MIDI</strong> Nachrichten mit Velocity 0 und NOTE OFF wer<strong>de</strong>n ignoriert (als Schutz gegen<br />

automatisch gesen<strong>de</strong>te Nachrichten bei Noten-En<strong>de</strong>). Diese Blocka<strong>de</strong> kann optional mit <strong>de</strong>m<br />

Befehl % aufgehoben wer<strong>de</strong>n (siehe genaue Beschreibung <strong><strong>de</strong>s</strong> Befehls % auf S.10 und S.14)<br />

Beispiel: Ein Keyboard-Anschlag <strong>de</strong>r Note d (=<strong>MIDI</strong>-Wert 50 = hex32) mittlerer Velocity wird auf <strong>de</strong>r <strong>RS</strong>-<strong>232</strong><br />

Seite das Byte mit <strong>de</strong>m Binärwert hex 32, also ASCII “2“ auslösen.<br />

Metho<strong>de</strong> 2:<br />

Wird an <strong>MIDI</strong> IN eine Nachricht <strong><strong>de</strong>s</strong> Typs CONTROL CHANGE o<strong>de</strong>r PITCH CHANGE<br />

6

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!