Skip to main content

Shure Microflex / IntelliMix

Shure's Microflex Ecosystem — the MXA710/902/910/920 ceiling and table microphone arrays, the IntelliMix P300 DSP, the ANIUSB-MATRIX, and MXN network interfaces — is controlled over Shure's Command Strings protocol: a plain-ASCII, angle-bracket-framed protocol carried over TCP (default port 2202). This driver connects to one Shure device on the LAN and exposes mute (device-wide and per-channel), preset recall, and device identify (flash).

One GEM device represents a single Shure device. If the device has numbered input channels (P300, ANIUSB), each channel you want to mute independently becomes a zone whose address is the channel number. For a single-output array (e.g. MXA910), use device-wide mute and no zone address.

How the protocol works

Every message is wrapped in < ... >:

  • Requests: < SET DEVICE_AUDIO_MUTE ON >, < GET DEVICE_AUDIO_MUTE >, < SET 2 AUDIO_MUTE TOGGLE >.
  • Replies: < REP DEVICE_AUDIO_MUTE ON >, < REP 2 AUDIO_MUTE OFF >, < REP DEVICE_ID {Conf Room Ceiling} >.

The device also pushes < REP ... > notifications on its own whenever a value changes at the hardware (someone taps a mute button, a preset is recalled from Designer), so GEM state stays current between polls. There is no login — the control port is open whenever the device is on the network.

Prerequisites

  • A Shure Microflex Ecosystem device on the LAN with a static IP or DHCP reservation.
  • TCP port 2202 reachable from the GEM host. Only a limited number of concurrent control connections are allowed, so close any Shure Designer or other third-party control session that is holding a connection if GEM cannot connect.

Setup

  1. In GEM admin, add a device with the Shure Microflex / IntelliMix driver, under an AV subsystem.
  2. Set the device attributes:
    • ip — the Shure device IP.
    • port2202 (default).
  3. Save and reload the device. On connect the driver reads the device id, model, device mute state, and current preset.
  4. For per-channel mute (P300 / ANIUSB), add a zone per channel, bind it to the Shure device, and set its address to the channel number. For whole-device mute only, no zone address is needed.
Device-wide vs per-channel

Leaving a zone's address blank (or omitting the address on a command) targets device-wide mute (DEVICE_AUDIO_MUTE). A numeric address targets that channel (<n> AUDIO_MUTE). An MXA910 has no numbered input channels — use device-wide mute for it.

Attribute reference

Device

AttributeRequiredDescription
ipyesLAN IP / hostname of the Shure device.
portnoCommand-strings TCP port. Defaults to 2202.
status_intervalnoMute/preset re-poll interval in ms. Defaults to 30000.

Runtime state the driver writes back as device attributes: mute_state (on/off), preset (number), device_id_label (the device name), model.

Zone

AttributeRequiredDescription
addressnoChannel number for per-channel mute (e.g. 1, 2). Blank = device-wide.

Commands

CommandWhat it does
mute_on / mute_offMute / unmute — device-wide, or the channel in address.
mute_toggleToggle mute (native TOGGLE), device-wide or per-channel.
get_muteQuery mute state.
presetRecall a preset by number (model-dependent, typically 1–10).
get_presetQuery the current preset.
flash_on / flash_offFlash the device LEDs to locate it (identify).
get_device_id / get_modelRead the device name / model.

Zone address format

The zone address is a bare channel number as it appears on the device (P300 / ANIUSB channel strips). Leave it blank to control the device's overall mute. Which channels exist is model-specific — check the device in Shure Designer.

Known limitations

  • Mute, preset, and identify only. Audio gain/level, matrix routing, AEC/AGC block parameters, and metering (SAMPLE) are not exposed in this pass. They are large, model-specific surfaces best configured in Shure Designer; GEM controls the operational essentials (mute + preset).
  • Model-dependent tokens. A token a given model does not implement returns < REP ERR >, which the driver logs and ignores — it never crashes the driver, but the command has no effect. Confirm channel numbers and preset counts against the actual model.
  • No discovery command. Shure devices are discovered via mDNS/Designer, not the command-strings port. Add the device by IP and, for channel muting, add zones with known channel numbers.

Troubleshooting

SymptomCheck
No response / connection refusedConfirm the IP and that port 2202 is reachable. Close any Shure Designer / third-party control session — concurrent control connections are capped.
Device mute works, channel mute does nothingThe channel number in zone.address must be a real channel on that model. An MXA910 has no numbered input channels — use device-wide mute.
Preset recall does nothingConfirm the preset number exists on the model and was configured in Shure Designer.
State looks staleThe driver re-polls on status_interval and also receives unsolicited change notifications; a persistently stale value usually means the control connection dropped — check the device's connection state in GEM.