This document is intended for any DSSI plugin authors who are confused about which MIDI continuous controller (CC) numbers they might want to map to their plugin controls. Controllers Commonly Found -------------------------- These controllers are listed in the MIDI 1.0 specification: 1 Modulation wheel or level 2 Breath controller 4 Foot controller 5 Portamento time 6 Data entry MSB 7 Main volume 8 Balance 10 Pan 11 Expression Controller 16-19 General Purpose Controllers 64 Damper pedal (sustain) 65 Portamento 66 Sostenuto 67 Soft pedal 69 "Hold 2", whatever that means 80-83 General Purpose Controllers 91 External Effects Depth 92 Tremelo Depth 93 Chorus Depth 94 Celeste (Detune) Depth 95 Phaser Depth 96 Data increment 97 Data decrement 98 NRPN LSB 99 NRPN MSB 100 RPN LSB 101 RPN MSB 121-127 Reserved for Channel Mode Messages These controllers are required for General MIDI (GM) level 1 conformance: 1 Modulation 7 Volume 10 Pan 11 Expression/LFO 64 Sustain as well as two that fit into the Controllers To Avoid section (below): 121 Reset all controllers 123 All notes off These are some of the controllers required for General MIDI level 2 conformance: 5 Portamento 65 Portamento on/off 66 Sostenuto 67 Soft pedal 71 Filter resonance 72 Release 73 Attack 74 Brightness 75 Decay 91 Reverb 93 Chorus as well as 0 Bank select MSB 32 Bank select LSB In practice, those in the above list in the 60-70s range (apart from the standard 64 Sustain) are often used for quite different things by non-GM2 (i.e. most) synths. If you are wanting to allocate controllers for other dedicated uses, go for those in the range 12-31 which are usually undefined, assignable, or simply highly nonstandard. Controllers To Avoid -------------------- DSSI will not permit you to request a mapping for controllers 0 or 32 (the Bank Select controllers). Other controllers that by convention you would be most unwise to map include the (N)RPN controllers: 6 Data entry MSB 38 Data entry LSB 96 Data button increment 97 Data button decrement 98 Non-registered parameter LSB 99 Non-registered parameter MSB 100 Registered parameter LSB 101 Registered parameter MSB and the keyboard mode controllers, unless you know what you're doing: 120 All sound off 121 Reset all controllers 122 Local keyboard power switch 123 All notes off 124 Omni on 125 Omni off 126 Monophonic mode 127 Polyphonic mode Otherwise, it's probably wise to avoid mapping the controllers listed in MIDI 1.0 (the first list in this file) to anything other than the meanings given in that list. About NRPNs ----------- Plain MIDI continuous controllers have a value range of only 0-127, and of course there is a limited number of controllers. An NRPN (non-registered parameter number) is a way of providing a larger number of higher resolution controls. To adjust an NRPN control, a device first identifies the parameter number via the two NRPN controllers 98 and 99, and then adjusts the value via controllers 96 or 97, or 6 and 38. The end result is a 14 bit resolution (0-16383) for both parameter numbers and values. There is no standard for the parameter numbers (hence the first N in NRPN), so if you want more finely adjustable MIDI controls, feel free to assign ports to any NRPN numbers you want. Just bear in mind that you have to be using a source of NRPN parameter adjustments (such as a controller keyboard that supports NRPNs) for this to be of any relevance.