What is a Protocol
A control surface protocol is just a set of MIDI messages that a manufacturer has decided to use to handle communication between the control surface itself and any application program that it is trying to control
You can think of control surfaces as being in one of two categories:
- One-way devices.
- Two-way devices.
One-way devices.
These tend to be the cheaper kind of control surfaces, very often implemented as keyboard or drum pad controllers. Their knobs, faders and buttons transmit MIDI messages that the application receives and processes, but there is no MIDI traffic being fed back to the device to supply state information. For this reason, they tend to offer on-board presets that change what messages each of the knobs, faders or buttons transmit - this allows them to cope with differing application program requirements.
Examples of one-way controllers would be any of the M-Audio keyboard controllers and the Kenton Control Freak.
Two-way devices.
These devices also transmit MIDI when their hardware controls are adjusted, but they also receive MIDI messages back from the software that they're controlling. This extra information is used to change display elements on the control surface, such as LED lamps and text displays, allowing the user to more easily understand and change the behaviour of the application software being controlled. The important thing to realise about the contents of any displays populated in this way is that the information being shown is completely generated by the application program and, specifically, its control surface driver.
Examples of two-way control surfaces are the Mackie Control Universal, the Mackie C4 and the Logic Control.
SurfaceReader and control protocols.
SurfaceReader allows you to teach it the MIDI messages that your control surface uses and save them as a protocol definition. This means that you can use any number of devices that use these protocols and allow others to take advantage of your definitions by sharing the configuration files
.