Allgemeine Erläuterung Basic Explanation
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).

  1. 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.
  2. 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.
  3. 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.

 

Jump-free parameter change

Thanks to the endless rotary encoders used in pocket Dial jump-free changes of parameters become true provided that some requirements are met. To realize jump-free changes there are 2 fundamental solutions:

 

Pocket Dial transmits absolute data

In this case Pocket Dial transmits absolute MIDI Control change data. After a program change of the device controlled by Pocket Dial (e.g. a SoftSynth) parameter jumps will occur.

Example: The value for filter frequency was 95 for the "old" sound and is 23 for the "new" sound. If one operates the control for this parameter there will be a jump to 94 or 96 depending if the control was operated up or down.

This problem can be solved if the device controlled by Pocket Dial outputs the new values (i.e. MIDI controllers) for all parameters after a sound change. Pocket Dial receives these values and uses them as new starting values thus causing no longer parameter jumps.

Example: The value for filter frequency was 95 for the "old" sound and is 23 for the "new" sound. After the sound change the device controlled by Pocket Dial outputs the new value 23 for this parameter. Pocket Dial receives this new value and uses it as the new start value for the corresponding knob. If one operates the control for this parameter Pocket Dial will transmit 24 or 22 depending if the control was operated up or down. This means that there is no parameter jump as the data transition is 23 -> 24 or 23 -> 22.

But it is essential for this type of control that the device controlled by Pocket Dial transmits the new MIDI controller data after a sound change. Pocket Dial will receive these data and check out if one of the controller numbers assigned to the 16 encoders matches with one of these controller numbers. If this applies the controller data value will be used as the new starting data for this controller. Pocket Dial and the device controlled by Pocket Dial have to be connected via MIDI in both directions:

MIDI Out of Pocket Dial -> MIDI In of the device controlled by Pocket Dial

MIDIOut of the device controlled by Pocket Dial -> MIDI In of Pocket Dial

Actually Pocket Dial does not only check the 16 controller of the current bank but even the controllers of the remaining 3 banks. Thus actually 64 controls (16 in each bank) are updated.

Even 14 bit controller update is possible. In this case the Pocket Dial checks if a 14 bit controllers pair exists, i.e. if the two controllers of a 14 bit controller pair are assigned to two knobs of Pocket Dial. If this applies a possible overrun or underrun of the least sigificant byte (LSB, i.e. controller 40 in the example) is considered for the calculation of the most significant byte (MSB, i.e. controller 8 in the example).

It is essential that the MSB and the LSB controllers are arranged one below the other.

Example: controller 1 (i.e. MSB Modulation) ® knob 1

controller 33 (i.e. LSB Modulation) ® knob 9

The factory presets 81 ~ 84 contain some examples for 14 bit controllers. In any case 2 knobs are used: one for the coarse value (MSB) and one for the fine value (LSB). In the MIDI standard the controllers 0~31 and 32~63 are defined as 14 bit controller pairs (with 0~31 = 32 MSBs and 32~63 = 32 LSBs).

Pocket Dial transmits Increment / Decrement Data

In this case Pocket Dial does not "know" the absolute value of the parameter but transmits only the information data increment (abbreviation: inc) or data decrement (abbreviation: dec).

  1. Unfortunately there is no MIDI message available "increase data of MIDI Controller XX" or "increase data of MIDI Controller XX". There is only a general Data increment (Controller #96 decimal, resp. #60 hexadecimal) and Data decrement message (Controller #97 decimal, resp. #61 hexadecimal) available. The third byte of these messages is - as far as we know - not used so far. In the MIDI spec we found no statement concerning this byte. Remember: each MIDI control change message consists of 3 bytes. We want to solve this problem by "hiding" the controller number, to which the inc/dec is related to, in the third byte of these messages. This modified inc/dec messages would enable to increase or decrease the value of a specific MIDI controller. We hope that other companies will agree to this proposal and adjust their software/hardware to this amendment of the MIDI Data increment/decrement message (controller #96/97). The "new" MIDI messages are:
  2. Controller Increment: BnH 60H xxH

    Controller Decrement: BnH 61H xxH

    with n = MIDI channel (0...F) and xx = MIDI Controller No (00...77H, 78H...7FH is reserved for Channel Mode Messages). H means hexadezimal values.

     

    The factory presets 89 ~ 96 contain all possible 128 inc/dec messages of this type in groups of 16. The factory presets 97~101 use this type of controllers too but with modified order for the program Crusher-X (refer to chapter www.crusher-x.de).

     

  3. The second possibility is the usage of non-registered parameter messages (NRPN) in connection with the inc/dec controller described in a). The basic procedure for altering a parameter value is to first send the non-registered parameter number corresponding to the parameter to be modified, followed by the data increment or data decrement message. This is a MIDI standard procedure and described in the MIDI 1.0 specification. The parameter number consists of LSB (= MIDI controller 98D / 62 H) and MSB (= MIDI controller 99 D / 63 H, D and H means decimal resp. hexadecimal). The data increment message is the MIDI controller 96 D / 60H and the data decrement is the MIDI controller 97D / 61 H. Such a message consists of 3 controller messages, i.e. 9 MIDI bytes. A typical complete NRPN message looks like this (all values are hexadecimal):
  4. B0 63 7F B0 62 15 B0 60 XX

    In this example the first three bytes are the MSB controller of the NRPN. The data for this message is 7F (often used with AWE Soundblaster devices). The second three bytes are the LSB controller of the NRPN. The data for this message is 15 ( = cutoff frequency for AWE devices). The last three bytes are the controller message for data increment. XX is the increment value (e.g. 04 for a data increase of 4, i.e. adding 4 to the current value). The XX value is sent in the signed bit mode (see next paragraph).

    The factory presets 105 and 106 contain examples for this message type. The presets 105 und 106 control the same parameters as the presets 17 and 18 resp. 23. But these presets use absolute data. So far (as of fall 2001) no device is able to recognize this message type. But from our point of view this type of parameter control would include a lot of advantages. We think that the reason is that so far no lo-cost controllers like Pocket Dial have been available and we hope that the manufacturers will take into consideration this very flexible relative controlling idea in the future.

  5. For some little time another type of relative parameter control is used by some programs or devices. In this case relative data is derived from an - in the true sense - absolute data. Certain MIDI message combinations are interpreted differing from the MIDI standard. As this message type is not included with MIDI specification there is no standard available (like the message suggestions in paragraph a and b suggested by Doepfer).

For example Native Instrument's REAKTOR uses the following type of relative parameter control. The normal MIDI controller messages are read in this way:

controller data value (third controller byte) = 63 decrement one step

controller data value (third controller byte) = 65 increment one step

Pocket Dial is able to generate these data types as well. The presets 85~88 contain some examples. We call this message type "relativ binary mode".

Some hardware mixers transmit data in the so-called "signed bit mode" or "two's complement mode". Preset  108 ~ 111 shows a "signed bit mode" example and Presets 112 ~ 115 the "two's complement mode".

'Signed bit' is f.e. used in Emagic SoundDiver (and also pallned for Logic) and two complement is used in Steinberg Cubase VST (for this features of the mentioned programs please ask your dealer or the manufacturer of these programs).

Pocket Dial features supports all these message types. Consequently the number of devices that may be controlled by Pocket Dial will significantly increase in the future.

 

Hinweis
Die Angaben in nachfolgender Tabelle entsprechen unserem aktuellen Wissensstand und wurden durch uns oder freie Mitarbeiter nach besten Wissen erstellt bzw. überprüft oder beruhen auf
den  Informationen, die den jeweiligen Geräten oder Programmen (Voll-Versionen oder Demo-Versionen)  beiliegen oder auf den entsprechenden Firmen - Webseiten im Internet veröffentlich wurden.
Bei der Fülle der Parameter bzw. Randbedingungen z.B. unterschiedlichen Software Versionen kann aber keine 100% Garantie für die Richtigkeit bzw. Funktionsfähigkeit aller Aussagen übernommen werden.
Sollten Ihnen als Benutzer oder als Hersteller / Distributor hiervon abweichende oder ergänzende Informationen vorliegen, so teilen Sie uns dies bitte mit. software@doepfer.de
Auch nehmen wir gerne neue Produkte in diese Tabelle auf. Kontaktieren Sie bitte auch hierzu software@doepfer.de
Diese Tabelle wird laufend erweitert und ergänzt.
letzte Änderung: 03. September 2001
Remark: 
The list have been made using the available information of the programs (full version / demo version) and devices made byf us or some freelances or the manufacturers and the information pulplished on their web sites.. Due to the fullness of data and differences between software versions we cannot guarantee that all facts are faultless. 
If you, as an user of the prodcut or the manufacturer / distributor, find any error or if you have any suggestion for improvement don't hesitate to contact us (e.g. you could send an email to software@doepfer.de). 
Also, if you, as an  manufacturer / distributor of a new product compatible with a pocket device, want to be on this list, please contact software@doepfer.de

last change September 3, 2001

 

Programm/Gerät Version Möglichkeit der Steuerung über absolute Midi Befehle hierfür geeignete 
Werks- Presets
Rückmeldefähig Bemerkung Möglichkeit der Steuerung mit relativen MIDI Befehlen hierfür fertige Presets  Bemerkung

 

program/device version possibility of controlling with absolute MIDI values suited presets for absolute values in  feedback possible Remark possibility of controlling with relative MIDI values suited presets for relative values Remark