B-Control-Tokenreferenz

Aus Synthesizer Wiki
Zur Navigation springen Zur Suche springen

Hier werden die in Konfigurationsfiles für BC-Convert verwendbaren Tokens, also Schlüsselworter, genauer beschrieben. Sie dienen der Konfiguration der B-Control-Serie von Behringer. Auf das Format des Textfiles wird hier nicht weiter eingegangen, hierzu bitte BC-Convert und B-Control-Konfiguration studieren.

Alle Angabe beziehen sich auf die aktuelle Firmware, Version 1.10. In Älteren Firmware-Versionen sind einige Features möglicherweise nicht vorhanden.

Anfang und Ende der Konfiguration

$rev <arg>

Dieses Token leitet die Konfiguration ein und muss daher als erstes in einer Konfigurationsdatei vorkommen. <arg> kann dabei R1 oder F1 sein und bestimmt, ob die Konfiguration für einen BCR2000 oder einen BCF2000 ist.

$end

Beendet die Konfiguration und sollte damit als letztes Token in der Konfigurationsdatei auftauchen.

Global Mode Konfigurationsparameter

$global

Startet die Konfiguration des Global Mode, also der geräteweiten Paramter. Diesem Kommando folgen eines oder mehrere Parameter-Tokens:

.midimode <arg>
Mögliche Werte: U-1, U-2, U-3, U-4, S-1, S-2, S-3, S-4
Stellt den USB/MIDI-Modus ein, zur Beschreibung der Modi im Detail sei auf die Bedienungsanleitung verwiesen.
.startup <arg>
Mögliche Werte: last, 1-32
Konfiguriert, welches Preset beim Einschalten geladen wird. Bei last wird das Preset geladen, welches beim Ausschalten geladen war, mit 1 bis 32 lässt sich eine zu ladende Preset-Nummer angeben.
.footsw <arg>
Mögliche Werte: auto, norm, inv
Stellt die Polarität der Fußschalter ein, bei auto versucht das Gerät, diese selber zu ermitteln, norm ist für Schliesser und inv ist für Öffner.
.rxch <arg>
Mögliche Werte: off, 1-16
Stellt den MIDI Empfangskanal des BC ein. Auf diesem Kanal können Program Changes empfangen werden, um die Presets umzuschalten.
.deviceid <arg>
Mögliche Werte: 1-16
Stellt die Geräte-ID ein, unter der der BC seine SysEx-Dumps verschickt und unter der er sie empfängt, wenn die Dumps nicht auf ID 127 (an alle) hereinkommen.
.txinterval <arg>
Mögliche Werte: 2, 5, 10, 20, 50, 100
Setzt die minimale Wartezeit zwischen Übertragungen in Milisekunden. Gerade, wenn man mehrere Encoder benutzt, oder sie als NRPNs/RPNs oder gar SysEx auslegt, kann es vorkommen, dass allzu aktives Kurbeln derart viele Daten produziert, dass der MIDI-Bus zu stark belastet wird und z.B. Notenevents nicht mehr durch kommen. Um dieses Problem zu reduzieren, lässt sich mit diesem Kommando das Intervall einstellen, in dem die Controller Updates schicken. Um den richtigen Kompromiss zwischen hakeliger Antwort auf dem Controller und zumatschen des MIDI-Bus zu finden, ist etwas Experimentieren notwendig. Dieser Parameter existiert vermutlich erst seit Firmware 1.10 und ist in der Bedienungsanleitung Version 1.1 beschrieben, er ist im Global Mode auf dem Encoder 8 erreichbar.
.deadtime <arg>
Mögliche Werte: 0-1000 in 10er-Schritten
Funktion bisher noch ungeklärt.

Preset-Verwaltungskommandos

$recall <arg>

Lädt das durch <arg> (Wertebereich 1-32) angegebene Preset in den Edit Buffer.

$store <arg>

Speichert den Edit Buffer in den durch <arg> (Wertebereich 1-32) angegebenen Preset-Speicher.

$preset

Leitet die Preset-Konfiguration ein. Die folgenden Parameter stellen einige Grunddaten zu dem Preset ein, nach dem $preset-Kommando folgen üblicherweise die Kommandos zur Konfiguration der Eingabeelemente, danach ist es optional möglich, mit $store das Preset gleich zu speichern. Es sollte auch möglich sein, ein Preset auf diese Art z.B. Umzubenennen, indem es mit $recall geladen wird, mit $preset der Name geändert wird und es mit $store wieder gespeichert wird.

.name <arg>
Mögliche Werte: ein exakt 24 Zeichen langer String, der zwischen einfachen Anführungszeichen steht.
Setzt den Preset-Namen, der z.B. in einem Editor angezeigt werden kann, aber auch nützlich ist, wenn man seine eigenen Presets von SysEx nach Text konvertieren muss, und dann am Namen erkennen kann, was für ein Preset das ist. Andere Längen als genau 24 Zeichen sind nicht ausprobiert. Der Name wird üblicherweise mit Leerzeichen aufgefüllt, um die 24 Zeichen zu erreichen. Ein Beispielparameter wäre
.name 'Mein erstes Preset     '
.snapshot <arg>
Mögliche Werte: vorerst nur off
Funktion noch nicht genau geklärt.
.request <arg>
Mögliche Werte: vorerst nur off
Laut Bedienungsanleitung gibt es die Möglichkeit, ein Kommando zu definieren, mit dem man sein gesteuertes Gerät dazu bewegen kann, all seine aktuellen Controllereinstellungen zu senden. Dazu gibt es auch eine Tastenkombination am BC. Das Kommanso lässt sich laut Bedienungsanleitung per Editor definieren, der wird nur scheinbar nicht mehr weiter entwickelt. Bisher ist das Format dieses Parameters noch nicht geklärt, aber vermutlich dient er genau dieser Konfiguration.
.egroups <arg>
Mögliche Werte: 1-4
Stellt die Anzahl zur Verfügung stehender Encoder Groups ein. Dieser Parameter mag auf den ersten Blick sinnlos wirken, aber es kann Sinn machen, sich selber Features wegzunehmen. Wenn man z.B. nur die erste Encoder Group belegt hat, und live mit dem BC arbeitet, ist es eher ungünstig, wenn man nun versehentlich mitten im Gig auf die Gruppenumschalttasten kommt und sich damit kurzerhand die oberen 8 Encoder wegnimmt. Daher kann in solchen Fällen die Anzahl Gruppen auf 1, 2 oder 3 eingeschränkt werden, oder mit 4 voll zur Verfügung stehen. Außerdem lassen sich, wenn auf eine Encoder Group gedrosselt wird, alle 4 Tasten für die Gruppenumschaltung anderweitig verwenden.
.fkeys <arg>
Mögliche Werte: off, on
Für den Nervenkitzel zwischendurch - mit diesem Kommando kann man die Funktionstasten, also STORE, LEARN, EDIT und EXIT einschalten und ausschalten. Ist auch nützlich, um versehentliche Bedienung zu vermeiden, außerdem können die abgeschalteten Funktionstasten-Buttons auch anderweitig belegt werden.
.lock <arg>
Mögliche Werte: off, on
Geht noch einen Schritt weiter als .fkeys und schaltet zusätzlich die Preset-Umschalttasten ab. Mit diesem Parameter sperrt man sich also erstmal komplett aus seinem BC aus. Wurde das Preset aber nicht gespeichert, ist kein Grund zur Sorge angesagt - notfalls hilft aus/einschalten, und alles ist wieder beim Alten. Wenn das Preset gespeichert wurde, und in den globalen Parametern Startup auf last oder diesem Preset steht, kommt man an sein Gerät nur noch per SysEx ran.
.init
Keine Argumente
Initialisiert den Edit Buffer, löscht also sämtliche Daten über Eingabeelemente. Dieser Parameter wird mit angegeben, wenn ein komplettes Preset via SysEx definiert werden soll, damit sauber auf einem leeren Edit Buffer aufgesetzt werden kann.

Konfiguration der Eingabeelemente

Da einige Parameter allen Eingabeelementen gemeinsam sind, werden diese weiter unten beschrieben. Zu den Eingabeelementen selber werden nur die speziellen Parameter der entsprechenden Typen beschrieben.

$encoder <arg>

Konfiguriert die Drehencoder. Bei den Push-Encodern bezieht sich dies nur auf den Encoder, nicht auf die Druckfunktion. Die Encoder-Nummer wird dabei durch <arg> angegeben und kann im Bereich 1-32 bei einem BCF und 1-56 bei einem BCR liegen. Dabei ist die Aufteilung wie folgt:

  1-8 = oberste Reihe, Gruppe 1
 9-16 = oberste Reihe, Gruppe 2
17-24 = oberste Reihe, Gruppe 3
25-32 = oberste Reihe, Gruppe 4
33-40 = zweite Reihe (nur BCR)
41-48 = dritte Reihe (nur BCR)
49-56 = unterste Reihe (nur BCR)

Parameter, die nur für $encoder gelten:

.resolution <arg1> <arg2> <arg3> <arg4>
Mögliche Werte: positive Zahlen, Bereich noch nicht ermittelt
Dient der Konfiguration der Auflösung der Encoder, die Zahlen bedeuten Schritte pro Umdrehung, die 4 Stufen dienen der Aufteilung in 4 unterschiedliche Drehgeschwindigkeiten. Dreht man sehr langsam, wird <arg1> verwendet, je schneller man dreht, desto näher kommt man an <arg4> heran. Die Werte sollten glatte Brüche oder Vielfache von 96 sein, da dies die physikalische Encoder-Auflösung ist. Also sind z.B. 24, 48, 96, 192 usr. sinnvolle Werte.
.mode <arg>
Mögliche Werte: off, 1dot, 1dot/off, 12dot, 12dot/off, bar, bar/off, spread, pan, qual, cut, damp
Legt den Anzeigemodus für den LED-Ring des Encoders fest. Nur die 8 Push-Encoder in der obersten Reihe unterstützen alle Anzeigemodi, die 24 Encoder im unteren Teil können nur off, 1dot und 1dot/off verwenden. Dieser .mode-Parameter sollte nicht mit dem .mode-Parameter von $button verwechselt werden, sie haben völlig unterschiedliche Funktionen.

$fader <arg> (unvollständig)

Mangels Gerät zur Analyse nicht erforscht.

Parameter, die nur für $fader gelten:

.override
Funktion unbekannt
.motor
Funktion unbekannt
.keyoverride
Funktion unbekannt

$button <arg>

Konfiguriert den Button, der durch <arg> angegeben wird. Erstaunlich viele Elemente des BC können dabei als Buttons verwendet werden, hier eine Liste zur Zuordnung:

  1-8 = Drehencoder Push-Funktion oberste Reihe, Gruppe 1
 9-16 = Drehencoder Push-Funktion oberste Reihe, Gruppe 2
17-24 = Drehencoder Push-Funktion oberste Reihe, Gruppe 3
25-32 = Drehencoder Push-Funktion oberste Reihe, Gruppe 4
33-40 = Block unter Drehencodern, obere Reihe
41-48 = Block unter Drehencodern, untere Reihe
49-52 = Block rechts unten
53-56 = STORE, LEARN, EDIT, EXIT
57-60 = Gruppenumschalter der Encoder-Gruppen
   61 = Fußschalter 1
   62 = Fußschalter 2
   63 = Preset <
   64 = Preset >

Parameter, die nur für $button gelten:

.mode <arg>
Mögliche Werte: down, updown, toggle
Nicht zu verwechseln mit .mode von $encoder. Bei $button bewirkt dieser Parameter die Einstellung des Verhaltens des Buttons. Bei down wird nur beim Drücken die konfigurierte Message mit dem Maximalwert geschickt, bei updown sowohl beim Drücken (Maximalwert) als auch beim Loslassen (Minimalwert), und toggle aktiviert die Umschaltfunktion, also wird mit jedem Druck auf den Taster zwischen dem Minimalwert (off) und dem Maximalwert (on) umgeschaltet und die konfigurierte Message geschickt.

Parameter für alle Eingabeelemente

Die folgenden Parameter gelten für alle Eingabeelemente, teilweise gibt es Abweichungen in der Syntax für die verschiedenen Elemente, die dann bei den entsprechenden Parametern erläutert sind.

.easypar <args>
Mögliche Werte: Je nach Konfiguration, siehe weiter unten
Dient dem Senden einer einfachen Message wie Control Change oder Program Change. Da je nach Messagetyp die Argumente unterschiedlich sind, wird diesem Parameter ein eigener Abschnitt gewidmet. Die Verwendung von easypar schliesst die Verwendung von tx/minmax aus.
.tx <args>
Mögliche Werte: Eine MIDI-Message, bestehend aus mehreren Bytes oder Schlüsselwörtern
Dient dem Senden einer vollständig frei konfigurierbaren Message, wie z.B. SysEx, und kann dabei den Controllerwert auf die verschiedensten Arten in die Message einfügen, auch sind Sonderfunktionen wie Prüfsummengenerierung möglich, daher wird diesem Parameter ein eigener Abschnitt gewidmet. Die Verwendung von tx/minmax schliesst die Verwendung von easypar aus.
.minmax <arg1> <arg2>
Mögliche Werte: beide zwischen 0 und 16383
Konfiguriert für den tx-Parameter den Wertebereich. <arg1> gibt den Minimalwert an, <arg2> den Maximalwert. Nicht verwendbar bei easypar. Wenn <arg1> größer als <arg2> ist, arbeitet der Controller rückwärts, bei Rechtsdrehung werden die Werte also kleiner. Entsprechend kann man bei Buttons hiermit den on-Wert und den off-Wert vertauschen.
.showvalue <arg>
Mögliche Werte: off, on
Steuert die Anzeige im 4-stelligen LED-Display. Bei on werden die Werte bei Änderung im Display angezeigt, bei off werden sie es nicht. Die Defaulteinstellung, wenn dieser Parameter weggelassen wird, ist off, es werden keine Werte angezeigt.
.default <arg>
Mögliche Werte: alle im Bereich zwischen Minimum und Maximum
Legt den Default-Wert fest, der nach Konfiguration des Controllers eingestellt ist, und nach Speichern des Presets auch mit dem Controller zusammen als aktueller Wert gespeichert wird.

Argumente des easypar-Parameters

easypar dient der Übermittlung von Standard-MIDI-Nachrichten. Die Syntax besteht dabei aus dem Nachrichtentyp und den zugehörigen Parametern. Nicht alle Nachrichtentypen können allen Controllern zugewiesen werden, die Sonderfälle sind bei den Nachrichtentypen genauer erläutert.

Argumente des tx-Parameters

tx dient der Konstruktion beliebiger MIDI-Nachrichten wie z.B. SysEx-Nachrichten. Die Syntax besteht dabei aus einer Liste an Bytes, die übertragen werden soll, wobei statt einem Byte auch ein Schlüsselwort verwendet werden kann, um Sonderfunktionen zu steuern. Das Schlüselwort benötigt teilweise selber wieder Parameter, die vor oder nach dem Schlüsselwort mit angegeben werden müssen.