Sound Design Stack Exchange is a question and answer site for sound engineers, producers, editors, and enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm new to MIDI and OSC, and I'm just wondering if it's possible to have software on a PC send data to a control surface rather than the other way around.

Why? Here's a simple example: Let's say I have a control surface that consists of a bank of knobs where each knob has a tiny LCD next to it as a "label". Then I can load up a particular "scene" on the PC, and each knob on the control surface is assigned to a particular parameter, with the name of the parameter it controls showing up on the tiny LCD next to it.

Does MIDI or OSC allow you do to this? Is there some kind of "labeling" functionality built into these protocols? Are there control surfaces at all like the one I described?

share|improve this question

migrated from Jan 24 '14 at 18:30

This question came from our site for engineers, producers, editors, and enthusiasts spanning the fields of video, and media creation.

up vote 2 down vote accepted

Several examples exist of device that supports receiving MIDI or OSC messages for visual feedback, as you describe. The Jazzmutant Lemur touchscreen controller (discontinued but an iOS app exists), Monome grid controller, and Percussa Audiocubes all support this.

For the AudioCubes, for example, this is done through a "MIDIBridge" software layer. You can send MIDI data from the cubes' network to any hardware or software that supports MIDI, but you can also send MIDI from any hardware or software device to the cubes, via MIDIBridge. The MIDI data can be used to change the colours of the cubes in sync with the sound or music (or video or other lighting). OSC is also supported.

For MIDI, this works is through MIDI Continuous control changes, not system exclusive. Sysex messages are typically used for stuff like firmware updates or sample dumps, not for simple visual feedback like changing colours.

share|improve this answer

Yes, this is very commonly done.

At least in MIDI though, there is no magic label protocol. Extended functionality like this is usually done through "system exclusive" messages (SysEx). Basically, a SysEx message contains some identifying information (usually manufacturer ID and model ID), and then the rest of the message is just raw data. The format of this data is up to the manufacturer. MIDI simply carries the data. There are no pre-defined message formats for the data within a SysEx message, although many manufacturers do stick to fairly consistent formats for many similar models.

SysEx data isn't usually the only data sent to an external controller. For example, the APC40 receives note on/off messages to control the LEDs on its launch buttons. Many controllers respond to patch change messages as well.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.