Doepfer Pocket Dial (device no longer available) User Manual
Page 34

Page 34
➓
➔
→
➣
↔
↕
➙
➛
➜
➝
➓
➔
→
➣
↔
↕
➙
➛
➜
➝
User's Guide
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).
2. 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).
a) 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.crusherx.com).
b) 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
98
D
/ 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
/ 60
H
and the data decrement is the MIDI
controller 97
D
/ 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).