71
Appendix B – Control Protocol
Purpose
Provide simple, effective integration between the US-428 and host software applications.
Introduction
The US-428 provides digital audio I/O, MIDI, and control surface functions in a single affordable
USB-based product. While the audio and MIDI I/O follow established which are easily interfaced
with host applications, full integration of the control surface aspects of the US-428 requires a set
of messages to be defined which permits two-way communication of control information between
the host application and US-428.
Functional Groups
The US-428's control surface are divided into several major functional groups:
a) Transport and Locate switches and status LED's
b) Per-channel controls (faders, switches, and LED's)
c) Bank switching buttons and LED's
d) EQ switches, continuous EQ and pan knobs, and associated status LED's
e) Function switches, LED's and continuous "data wheel"
Communication model
Standard MIDI controller and sysex messages will be used to communicate between the host and
US-428. In many cases, the commands transmitted by the US-428 are identical to those
generated by the JL Cooper CS-10 controller. In general, it is desired that overall system "state
information" be maintained by the host application, rather than in the US-428. As an example,
here is how a change in transport state from STOP to PLAY might be communicated:
1. User presses PLAY button on US-428.
2. Play-button command is sent via USB to host application as MIDI .
3. Application receives Play message from the "US-428 Control" Midi input device.
4. Application switches to PLAY mode, just as if user had performed the operation with a
mouse-click.
5. Application sends Transport Update message to "US-428 Control" Midi output device,
which is sent via USB to the US-428.
6. US-428 interprets transport-update command, and responds by activating the PLAY LED.
In this example, the US-428 doesn't "know" the state of the transport. It has simply sent
command indicating the button-press, and responded to the transport-update command from the
host by lighting the appropriate transport LED.