Skip to main content

Pocket Control / Pocket Fader / Pocket Dial

Basic Explanation

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:
    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).

  2. 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):

    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.

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