Ecasound Mackie Control Universal MIDI Support

Ecasound does not natively support the Mackie Control Universal (MCU) protocol, but external control surfaces can still be used to control its audio processing engine. While Ecasound lacks built-in logic to interpret MCU-specific handshakes, SysEx messages, or motor-fader pitch bend feedback, users can control Ecasound using hardware surfaces by switching the controller to standard MIDI Continuous Controller (CC) mode or by routing the hardware through an intermediate MIDI translation layer.

Native Support Limitations

The Mackie Control Universal protocol relies on a specific set of MIDI messages, utilizing pitch bend data for high-resolution fader movements, Note On/Off commands for buttons and LEDs, and System Exclusive (SysEx) strings for LCD scribble strips. Ecasound is designed as a minimalist, command-line multitrack recorder and processing utility. Its native MIDI implementation focuses primarily on standard MIDI CCs for parameter automation and ALSA/JACK transport controls, meaning it cannot interpret raw MCU protocol commands directly out of the box.

Solution 1: Generic MIDI CC Mode

Most hardware controllers that support MCU (such as the Behringer X-Touch series, Icon Pro Audio devices, or PreSonus FaderPort) include an alternate "Generic MIDI" or standard CC mode.

When placed into standard MIDI mode, the physical faders, knobs, and buttons transmit standard MIDI CC messages:

  1. Connect via ALSA or JACK: Route the physical MIDI controller to Ecasound using ALSA sequencer ports (aconnect) or JACK MIDI.
  2. Assign MIDI Controllers in Ecasound: Use Ecasound’s controller mapping syntax (-km) to assign specific MIDI CC channels to parameters such as volume, panning, or effect attributes.

For example, to attach MIDI CC 7 on channel 1 to volume on a specific chain:

ecasound -i input.wav -o alsa -ea:100 -km:1,0,127,7,1

Solution 2: MIDI Translation Middleware

If a control surface can only operate in MCU mode, you can place a translation layer between the controller and Ecasound. Software such as mididings or custom Python scripts can translate MCU-specific events into standard formats:

Solution 3: Ecasound Control Interface (ECI)

For complete bi-directional support—including driving motor faders and LCD feedback—the most robust approach is using the Ecasound Control Interface (ECI). By developing a lightweight daemon in Python, C, or Perl:

  1. The script listens to the raw MCU MIDI input port.
  2. Incoming MCU messages are parsed and converted into ECI commands (e.g., c-set-volume, start, stop).
  3. The script queries Ecasound's state via ECI and sends corresponding MCU SysEx and Note messages back to the hardware to update motorized faders, LED rings, and track displays.