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
- In GEM admin, add a device with the Shure Microflex / IntelliMix driver, under an AV subsystem.
- Set the device attributes:
ip— the Shure device IP.port—2202(default).
- Save and reload the device. On connect the driver reads the device id, model, device mute state, and current preset.
- 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.
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
| Attribute | Required | Description |
|---|---|---|
ip | yes | LAN IP / hostname of the Shure device. |
port | no | Command-strings TCP port. Defaults to 2202. |
status_interval | no | Mute/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
| Attribute | Required | Description |
|---|---|---|
address | no | Channel number for per-channel mute (e.g. 1, 2). Blank = device-wide. |
Commands
| Command | What it does |
|---|---|
mute_on / mute_off | Mute / unmute — device-wide, or the channel in address. |
mute_toggle | Toggle mute (native TOGGLE), device-wide or per-channel. |
get_mute | Query mute state. |
preset | Recall a preset by number (model-dependent, typically 1–10). |
get_preset | Query the current preset. |
flash_on / flash_off | Flash the device LEDs to locate it (identify). |
get_device_id / get_model | Read 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
| Symptom | Check |
|---|---|
| No response / connection refused | Confirm 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 nothing | The 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 nothing | Confirm the preset number exists on the model and was configured in Shure Designer. |
| State looks stale | The 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. |