Naja, schwierig ist halt, dass man eben keine Doku dafür, sonst könnte man sich sicher sehr gut selber die Controller schreiben wie man sie haben möchte... deswegen finde ich auch den kleinen XML Schnipsel nicht sooo hilfreich... Ich hab auch festgestellt, dass man bei einigen Attributen auch sowohl den Hexwert, als auch den Klarnamen reinschreiben kann.
Ich versuche mal aus dem Kopf aufzuschreiben was mir noch dazu einfällt. Natürlich keine Garantie auf Korrektheit und ausprobieren auf eigene Gefahr
... wobei ich nicht glaube, dass man damit irgendwas kaputt machen kann...
Es geht hierbei um die XML Datei: "ControllerName.surface.xml"
- Ein (control)(/control) Tag Abschnitt ist jeweils ein Steuerelment.
Für Control gibt es jetzt noch mehrere mögliche Attribute.
options="transmit recieve public nofeedback"
- transmit und recieve regeln senden und empfangen
- public muss gesetzt sein, damit das Control Element auch im Control Link sichtbar ist
- nofeedback weiß ich jetzt gerade nicht ganz genau
type="Fader"
- setzt den Typ wie zum Beispiel Knob, Fader, Button usw.
name="name"
- setzt einen eindeutigen Namen für das Control Element, der auch als Variablen Name verwendet wird. Der Name muss eindeutig sein.
title="blubb"
- ist der Controller Element Titel wie er im Control Link auftaucht. Ist der nicht gesetzt wird einfach der Name genommen.
Dann muss man dem ganzen noch eine MIDI Message zuordnen innerhalb des (MidiMessage) Tags.
Das ist relativ simpel aufgebaut.
- status="#B0" ist der MIDI Befehl ... #B0 wäre zum Beispiel ein Control Change. Jetzt kann man den aber auch als Klarnamen schreiben "Controller" oder aber auch als numerischen Wert. Das wäre in dem Fall 176. Für einen Control Change kenne ich also folgende Möglichkeiten: status="#B0" , status="Controller" und status="176". Also kann man jetzt bei status zum Beispiel "#90" für einen Pitchbend eintragen.
-address="#0F" ist die Nummer des Befehls... im Falle des Control Change würde man also hiermit den CC15 zuordnen.
- channel müsste der eigentlich der Empfangskanal sein, wenn man ihn leer lässt, müsste er auf allen Kanälen empfangen werden.
- jetzt kenne ich bei Control Change Befehlen zumindest noch folgende Möglichkeit: options="msblsb" für die Festlegung der Bitreihenfolge. Ist das gesetzt werden auch 14bit CCs problemlos empfangen. Bei Pitchbend sollte das aber eigentlich nicht notwending sein, weil das ja eigentlich standarisiert ist. Aber vielleicht muss es doch, ich weiß es leider nicht genau.
So... und da verläßt mich auch mein gefährliches Halbwissen...
Das ist eigentlich alles ziemlich straight forward und ich wünschte mir, ich hätte dafür eine Doku, dann wäre es wahrscheinlich ziiiiemlich simpel.
Hier mal ein Beispiel wie ein Fader mit einem zugeordneten Control Change CC15 aussehen würde, der einen 14bit Wert empfängt.
(Control options="receive transmit nofeedback public" type="fader" name="fader[0]" title="Imafader")
(MidiMessage options="msblsb" address="#0F" status="Controller"/)
(/Control)
PS: Ich habe < Klammern gegen ( ersetzt, da es sonst nicht angezeigt wird.