Pocket Control / Pocket Fader / Pocket Dial
Allgemeine Erläuterung
Sprungfreie Parameteränderung
Auf Grund der bei pocketDial verwendeten Endlos-Drehgeber (Encoder) kann eine sprungfreie Änderung von Parametern erfolgen, sofern einige Voraussetzungen erfüllt sind.
Um eine sprungfreie Änderung von Parametern zu realisieren gibt es 2 grundsätzliche Möglichkeiten:
pocketDial sendet absolute Daten
In diesem Fall sendet Pocket Dial absolute MIDI Controller-Daten. Bei einem Klangwechsel des angesteuerten Gerätes (z.B. Software-Synthesizer) taucht das Problem auf, dass nun Parametersprünge die Folge sind.
Beispiel: Der Wert für die Filterfrequenz beim "alten" Sound war 95, der Filterwert für den "neuen" Sound ist 23. Dreht man nun an dem betreffenden Regler für die Filterfrequenz, so springt der Wert von 23 auf 94 oder 96 (je nachdem ob der Regler nach links oder rechts gedreht wird).
Dieses Problem kann dadurch gelöst werden, dass das angesteuerte Gerät (z.B. der Software-Synthesizer) bei einem Klangwechsel die neuen Controller-Werte über MIDI OUT ausgibt. Pocket Dial empfängt diese Werte und verwendet sie als neue Startwerte, wodurch keine Sprünge mehr auftreten.
Beispiel: Der Wert für die Filterfrequenz beim "alten" Sound war 95, der Filterwert für den "neuen" Sound ist 23. Beim Soundwechsel gibt das angesteuerte Gerät den neuen Wert 23 über MIDI OUT aus und pocketDial verwendet diesen Wert als neuen Startwert für den betreffenden Regler. Dreht man nun an dem betreffenden Regler für die Filterfrequenz, so springt der Wert von 23 auf 24 oder 22 (je nachdem ob der Regler nach links oder rechts gedreht wird), d.h. es tritt kein Sprung in dem betreffenden Parameter auf.
Voraussetzung für diese Art der Steuerung ist also, dass das angesteuerte Gerät bei einem Wechsel die neuen Controller-Startwerte über MIDI ausgibt. pocketDial empfängt diese Controller Befehle über MIDI IN und vergleicht, ob für einen der 4*16 Regler die Controller Nummer übereinstimmt. Ist dies der Fall, so wird der neue Controller-Datenwert für den betreffenden Regler von pocketDial übernommen. pocketDial und das zu steuernde Gerät müssen also in beide Richtung über MIDI miteinander verbunden werden:
MIDI OUT Pocket Dial -> MIDI IN des zusteuernden Gerätes
MIDI OUT des zusteuernden Gerätes -> MIDI IN Pocket Dial
Auch eine 14 Bit-Steuerung ist auf dieser Basis realisierbar, wobei die pocketDial überprüft, ob ein 14 Bit-Controller-Paar vorhanden ist und dann einen Überlauf vom niederwertigen Byte (LSB) automatisch in das höherwertige Byte (MSB) einbaut und auch sendet bzw. natürlich auch umgekehrt einen Unterlauf.
Dabei muß der MSB-Controller auf der oberen Reihe (Regler 1-8) und der LSB - Controller auf der unteren Reihe (9-16) direkt jeweils unter dem Regler des zugehörigen MSB - Controllers angeordnet sein.
Also z.B. Controller 1 (MSB Modulation) à Regler 1
und dann Controller 33 (LSB Modulation) à Regler 9.
Beispielhaft hierfür sind die Presets 81~ 84.
Man benötigt aber dafür auf jeden Fall zwei Regler, einen für den Coarse-Value (MSB) und einen für den Fine-Value (LSB).
Weiterhin steht diese Funktion auch nur für die offiziell definierten insgesamt 32 verschiedenen 14-Bit Controllerpaare, also Controller 0-31 (MSB) und Controller 32-63 (LSB) zur Verfügung, die anderen sind ja Schaltcontroller bzw. reine 8 Bit Controller.
pocketDial sendet Inkrement/Dekrement bzw. relative Daten
In diesem Fall "kennt" Pocket Dial den absoluten Wert des betreffenden Parameters nicht, sondern sendet nur die Informationen Parameter erhöhen (abgekürzt inc) oder Parameter erniedrigen (abgekürzt dec).
- Leider gibt es (bisher) keinen MIDI Befehl "erhöhe den Wert von MIDI Controller XX" bzw. "erniedrige den Wert von MIDI Controller XX". Es sind nur ein allgemeiner Data increment (Controller #96 dezimal, bzw. #60 hexadezimal) und Data decrement Befehl (Controller #97 dezimal, bzw. #61 hexadezimal) definiert, wobei das dritte Byte dieser beiden Befehle - soweit wir wissen - bisher unbenutzt ist (in der MIDI Spezifikation wird über das dritte Byte keine Aussage getroffen). Jeder MIDI Controller Befehl besteht ja immer aus 3 Bytes. pocketDial kann nun in dem dritten Byte die Controller-Nummer "verstecken", auf die sich der Inkr./Dekr.-Befehl bezieht. Somit wäre es möglich gezielt den Wert eines MIDI Controllers zu erhöhen oder zu erniedrigen. Die beiden MIDI Befehle lauten:
Controller Increment: BnH 60H xxH
Controller Decrement: BnH 61H xxH
wobei: n = MIDI Kanal (0...F) und xx = Controller-Nummer (00...77H, der Bereich 78H...7FH ist für Channel Mode Messages reserviert). H bedeutet, dass alle Angaben hexadezimal sind.
Mit dieser Methode arbeiten die Presets 89-96 (alle theoretisch möglichen 128 IncDec-Controller in aufsteigender Reihenfolge jeweils in 16'er Gruppen) bzw. die Presets 97-101 IncDec-Controller in einer festgelegten Reihenfolge für das Programm Crusher-X siehe Kapitel www.crusher-x.de. - Die zweite Möglichkeit ist die zusätzliche Verwendung von Non-Registered Parameter in Kombination mit dem unter a) beschriebenen Inkrement/Dekrement-controller .
Wenn man die Zielinformation nicht in dem Inkr./Dekr.-Controller direkt einbauen will, dann muß man es eben über eine vorangestellte 'Voradressierung' tun. Dafür kommt der Weg z.B. über NRPN-Controller in Frage.
Allerdings besteht eine solche Kette dann im 'schlimmsten' Fall aus vollen 3 Controllern bzw. in Runningstatus aus entsprechend weniger Bytes.
Dann muß natürlich auch die Adressverwaltung und Auswertung in der Zielapplikation von 7 Bit bzw. einem einfachen 7 Bit-Wert auf 14 Bit und eine kompliziertere Controller-Kettenauswertung erweitert werden.
So sieht eine NRPN-Kette z.B. aus.
Annahme: MSB des NRPN ist 7FH (ist zumeist bei AWE-Soundblaster-Geräten verwendet) bzw. die 'Feinselektion' mit dem LSB z.B. 15H :
B0 63 7F ; NRPN MSB
B0 62 15 ; NRPN LSB (ist bei AWE-NRPN Cutoff-frequ.)
B0 60/61 xx ; Inc-Dec-Befehl
(xx-Wert wird zusätzlich im 'Signed Bit' Modus übertragen - siehe c) )
Beispielhaft wurden hierzu die Presets 105/106 implementiert, die ihre Entsprechnung in den Presets 17&18 bzw. 23 finden, wo jedoch nur eine analoge Steuerung mittels Absolutwerten realisiert ist. Leider wird diese Art der digitalen Steuerung, wie in Preset 105 bzw. 106 aufgezeigt ist, bisher von keinem Endgerät erkannt, obwohl Sie eigentlich nur Vorteile bringen würde. Wir hoffen natürlich, dies nur daran liegt, dass es bisher einfach keine entsprechenden und bezahlbaren Steuergeräte, wie pocketDial gab und die Hersteller der entsprechenden Endgeräte, wie Expander bzw. Computerprogrammen in nächster Zeit nachziehen werden. - Allerdings gibt es auch schon seit geraumer Zeit etliche Programme/Geräte, die aus einem absoluten MIDI Wert einen relativen Wert ableiten.
Hierbei werden feststehende MIDI Befehlskombinationen entsprechend in einem anderen Zahlenformat interpretiert.
Allerdings existiert hierfür bisher kein verbindlicher MIDI Standart, wodurch dies jeweils nur spezielle Insellösungen darstellen.
Hierzu gehört natürlich auch der von pocketDial realisierten Modus a)
'Relativer Binär Mode':
Für einige Programme der Firma Native-Instruments, unter anderem das Programm 'Reaktor', wurde z.B. folgende Steuerung realisiert:
Es werden an Reaktor relative Werteänderung mittels der 'normalen' Controller (0-127) gesendet, dabei wird die Inkrement bzw. Dekrement-Information im absoluten Controllerwert so kodiert:
63= ein Schritt zurück bzw. ein Dekrement-Schritt,
65= ein Schritt weiter bzw. ein Inkrement-Schritt.
pocketDial kann auch dieses realtiven Befehle erzeugen und somit lassen sich die entsprechenden Programme,also z.B. Reaktor auch wunderbar ansteuern.
(siehe als Beispiele Presets 85 ~ 88).
'Signed Bit' & 'Zweierkomplement':
Weiterhin versenden z.B.etliche größere Hardwarepulte ihre Werte in einem als 'Signed Bit' bezeichneten Modus oder aber im sogenannten 'Zweierkomplement'.
In den Preset 108 ~ 111 ist das relative Format 'signed bit' realisiert und in den Presets 112 ~ 115 das relative Format im sogenannten Zweierkomplement.
Signed Bit wird z.B. von Emagic SoundDiver (demnächst auch Logic) verstanden und Zweierkomplement von Steinbergs Cubase VST.
(Bitte erfragen Sie die Funktionsfähigkeit dieser Möglichkeiten bei Ihrem Händler bzw. beim Herstellern dieser Programme)
pocketDial beherrscht natürlich auch diese 3 Varianten und damit dürfte sich die Zahl der Geräte, die auf Anhieb ohne große Anpassungsarbeiten mit pocketDial zusammenarbeiten, noch beträchtlich erhöhen.