Die Anwendung des AES-24 ID Entwurfs auf Audiogeräte
Vortrag zur Tonmeistertagung 1994
Das Message Format
Das allgemeine Aussehen eines AES-24 Befehls lautet wie folgt:
(Dieses Format entspricht der sogenannten „Amber“-Version der SC-10-2, vereinbart auf der letzten AES-Sitzung in Dallas, April 1994)
NB.: Nachstehend werden wir versuchen, die englischen Begriffe weitgehend einzudeutschen. Allerdings gelingt dies heutzutage nur noch in eingeschränktem Maße. Wir bitten Sie, uns die manchmal gleichzeitige Verwendung beider Sprachen nachzusehen.
Der Network Header
Dieser Datenblock ist den Datensequenzen angehängt, die den Netzwerkebenen der AES-24 Applikation zu Grunde liegen. Die Daten variieren von Netzwerk zu Netzwerk und auf Grund des Umfanges soll hier nicht weiter darauf eingegangen werden.
Sequence Number
Jede Nachricht wird mit dieser Nummer zu Identifikationszwecken gekennzeichnet. Sie ist besonders hilfreich um korrespondierende Abfragen (Query-messages = „Get…“) und Antworten („Set…“) zusammenzufügen. Die Sequence Numbers müssen nicht notwendigerweise in der entsprechenden Reihenfolge übertragen werden (da sie „willkürlich“ sind). Es ist aber darauf zu achten, daß jedem „Set…“ Befehl/Nachricht, welcher auf einen entsprechenden „Get…“ Befehl folgt, die entsprechende „Get…“ Sequence Number beigeordnet ist, um beide miteinander zu verknüpfen bzw. richtig zu interpretieren.
Object Method Handle
Das sogenannte Object Method Handle (OMH) spezifiziert das Ziel der Nachricht. Es enthält sowohl den Objekt Index als auch die Befehls-ID (Method ID). Dem OMH entspricht ein 1, 2 oder 3-Byte Datenwort, welche im sogenannten ASN.1 Format dargestellt wird.
Das allgemeine ASN.1 Format
Nachstehend finden Sie das allgemeine ASN.1 Format für 1-, 2- und 3-Byte Datenwörter:
Grundsätzlich legt das MSB (Most Significant Bit) fest, ob das nachfolgende Byte das letzte des Datenblocks darstellt. D. h., wurde das MSB auf eine logische „0“ gesetzt, so handelt es sich um das letzte Byte des Datenblocks. Ist das MSB auf „1“ gesetzt, folgen noch weitere Datenbytes. Um ein vollständiges Datenwort zu bilden, werden alle Bytes innerhalb eines Block miteinander verkettet, nachdem die MSB Flags eliminiert wurden.
Die ASN.1 Kodierung des Object Method Handle (OMH)
Das Object Method Handle beschreibt, um welche Art Nachricht es sich handelt und welches Objekt gemeint ist. Es handelt sich dabei um einen einfachen Block mit zwei Feldern: Dem Objekt Index des angesprochenen Objektes und der Befehls-ID (Method ED) der entsprechenden Anweisung. Die Aufteilung der Bits zwischen Objekt Index und Befehls-ID lauten für die jeweiligen Formate wie folgt:
1-Byte-Format:
Objekt Index | Befehls-ID |
---|---|
d6 – d2 | d1 – d0 |
Werte: 0-31 | Werte: 0-3 |
2-Byte-Format:
Objekt Index | Befehls-ID |
---|---|
d13 – d5 | d4 – d0 |
Werte: 0-511 | Werte: 0-31 |
3-Byte-Format:
Objekt Index | Befehls-ID |
---|---|
d20 – d8 | d7 – d0 |
Werte: 0-8191 | Werte: 0-255 |
Für kleine Werte ist das 1-Byte-Format das effizienteste, da es als kürzeste Version auch den geringsten „Overhead“ mit sich führt. Daher ist es angebracht, den niedrigsten Werten die am häufigsten gebrauchten Objektindizes und Befehls-IDs zuzuweisen. Diese Maßnahme veringert den notwendigen Datenfluß im Netzwerk außerordentlich.
Die Parameter-Werte (Parameter Value)
Das Parameter-Wertefeld beinhaltet die Werte des Befehls. Der Datentyp des Wertefeldes variiert mit dem beigeordneten Befehl (im vorhergehenden Byte enthalten). Das AES-24 ID Informationsdokument spezifiert die entsprechenden Datentypen.
Der Network Trailer
Dieser Datenblock ist den Datensequenzen angehängt, die den Netzwerkebenen der AES-24 Applikation zu Grunde liegen. Die Daten variieren von Netzwerk zu Netzwerk und auf Grund des Umfanges soll hier nicht weiter darauf eingegangen werden.
Die Kommunikation mit dem Terzband-Entzerrer
In dieser Sektion wollen wir versuchen, mit Hilfe einiger Beispiele die Befehlstruktur zu dokumentieren. Auch hier sind wir durch die Kürze der Zeit gezwungen, auf Vollständigkeit zu verzichten.
Beispiel 1: Einstellung eines Entzerrer-Bandes
Befehl: „Stelle im Kanal 1 das 1 kHz-Band auf +6 dB“
Ein Entzerrer-Band wird dadurch eingestellt, daß dem KFO ein „SetRelGain“-Befehl gesandt wird. Die Kodierung dieser Befehlssequenz lautet:
OMH (Object Method Handle)
Objekt Index des 1 kHz Bandes im Kanal 1: 16
Befehls-ID (Method ID) von „SetRelGain“: 1
Wir können nun das ASN.1 1-Byte-Format verwenden, um das OMH zu kodieren, da der Objekt-Index dieses Entzerrer-Bandes kleiner als 32 ist und die Befehls-ID (Method ID) kleiner als 4. Daher lautet das OMH:
OMH = (Objekt Index) * 4 + Befehls-ID = (16 * 4) + 1 = 65 (hex $41)
Parameter-Value
Das Parameter-Value für den „SetRelGain“ ist vom Typ „Dezibel“ (siehe auch Sektion 10.5.6 des AES-24 ID Entwurfes). Der dezimale Datentyp kann durch 8- oder 16-Bit Wörter dargestellt werden. Die Werte bewegen sich dabei zwischen +28/-100 dB (8 Bit) oder +/- 256 dB (16-Bit). Für unser Beispiel soll das 8-Bit Format genügen.
+6 dB im 8-Bit Dezimaltyp entspricht Hexadezimal: $0C (siehe auch Sektion D.4 im AES-24 ID Entwurf).
Sequence Number
Diese Nummer kann willkürlich zugeteilt werden. In unserem Beispiel wollen wir Hexadezimal 255 = hex $FF benutzen.
Die vollständige Befehlssequenz
Die vollständige Befehlssequenz wird durch Aneinanderreihung von Network Header, Sequence Number, OMH, Parameter Value und Network Trailer gebildet.
Befehl: „Stelle im Kanal 2 das 1 kHz-Band auf +6 dB“
Dieser Befehl gleicht dem vorhergehenden mit der Ausnahme, daß diesmal der Objekt Index größer als 31 ist, und daher das ASN.1 2-Byte-Format zur richtigen Kodierung notwendig ist. Die Kodierung gestaltet sich wie folgt:
OMH
Objekt Index des 1 kHz Bandes im Kanal 2: 58
Befehls-ID (Method ID) von „SetRelGain“: 1
Der Objekt Index liegt innerhalb der Bits d13 – d5
Die Befehls-ID (Method ID) liegt innerhalb der Bits d4 – d0
Das komplette, 2-Byte OMH lautet: $8E $41
Parameter Value
Der Parameter-Wert ist der gleiche wie im vorhergehenden Beispiel: $0C
Sequence Number
Diese Nummer darf willkürlich festgelegt werden. In unserem Beispiel wiederum: $FF
Die vollständige Befehlssequenz
Beispiel 2: Einstellung der Verstärkung
Befehl: Stelle im Kanal 1 die Verstärkung auf -10 dB
Die Verstärkung wird eingestellt, indem man dem Verstärkungsobjekt (Gain Object) einen „SetRelGain“ Befehl sendet. Die Kodierung gestaltet sich wie folgt:
OMH
Objekt Index der Verstärkungseinstellung im Kanal 1: 31
Befehls-ID (Method ID) von „SetRelGain“: 1
Wir können das ASN. 1 1-Byte-Format verwenden:
OMH = (Objekt Index) * 4 + Befehls-ID = (31 * 4) + 1 = 125 (hex $7D)
Parameter Value
Das Parameter-Value für den „SetRelGain“ ist vom Typ „Dezibel“ (siehe auch Sektion 10.5.6 des AES-24 ID Entwurfes). Der dezimale Datentyp kann durch 8- oder 16-Bit Wörter dargestellt werden. Die Werte bewegen sich dabei zwischen +28/-100 dB (8-Bit) oder +/- 256 dB (16-Bit). Für unser Beispiel soll das 8-Bit Format genügen.
-10 dB im 8-Bit Dezimaltyp entspricht Hexadezimal: $EC (siehe auch Sektion D.4 im AES-24 ID Entwurf).
Sequence Number
Diese Nummer darf willkürlich festgelegt werden. Hier: $FF
Die vollständige Befehlssequenz
Schlußbemerkung
Wie bereits eingangs erwähnt, handelt es sich bei dem AES-24 ID Informationsprotokoll um einen Entwurf. Dieser Entwurf ist längst noch nicht in allen Punkten geklärt. Sinn dieses Vortrages ist es, diesen lobenswerten Ansatz einem möglichst breiten Fachpublikum zu präsentieren, um so viele Verbesserungsvorschläge wie möglich zu erhalten. Hier bietet sich die Gelegenheit, anders als in vielen bekannten Beispielen, einen Standard von Anfang an kennenzulernen und eigene aus der Erfahrung gewachsene Vorschläge zu unterbreiten.
Dieser Vortrag soll und kann keine vollständige Information über das sehr umfangreiche Protokoll geben. Vielmehr erhoffen wir uns eine fruchtbare Zusammenarbeit, bei der es vielleicht endlich gelingen könnte, proprietären Insellösungen aus dem Weg zu gehen.