Driver Details

New Community

Beta Three CMX Series DSP

By: David Bowdler
Updated: Sept. 18, 2026
Version: 1.40
Download Driver Purchase License
Rating: 0.0 (0 ratings)
Log in to rate this driver

Beta Three CMX Series DSP

Full two-way control of the Beta Three (3G Audio Tech) CMX Series Chameleon DSP range — CMX4.4, CMX4.8, CMX8.4, CMX8.16, CMX16.8 and CMX16.16, in MKII and iMKII variants. The driver drives every core DSP function from RTI: scene recall, per-channel input/output mute and volume, a full drag-and-drop matrix routing grid, DCA group control, per-block DSP bypass and live meters. Connects over the CMX's native binary UDP protocol (recommended) or RS-232 serial at 9600 8N1 — both transports are fully two-way with live feedback, no external gateway or PC required.

Key Features

  • Scene recall: instant recall of any stored CMX scene from a button or macro.
  • Per-channel mute and volume: independent mute toggle plus percentage- and dB-scaled volume faders for every input and output channel, with live two-way feedback.
  • Full matrix routing: drag-and-drop input-to-output crosspoint control across the whole matrix, with live routing-state feedback on every panel.
  • DCA / group control: group multiple channels under a single DCA fader and mute for one-touch level and mute changes across a zone.
  • DSP block bypass: per-channel bypass for Expander, Compressor, AGC, Delay, Crossover and Limiter blocks, plus EQ bypass (via the optional HTTP feedback path).
  • 48V phantom power control: toggle phantom power per input for condenser mic sources.
  • Live level meters: optional real-time VU metering across up to 64 channels for on-panel level display.
  • Onboard USB/SD media transport: play/pause/next/previous control of the CMX's built-in USB and SD card playback.
  • Dante-aware: iMKII models automatically expose 16 Dante input and 16 Dante output channels (channels 17-32) alongside the analog I/O once the correct model is selected.
  • Dual transport with automatic model configuration: UDP (default, robust, no dependency on the device's single-client web server) or RS-232 serial for network-free installs; selecting the CMX model auto-fills channel counts and the Dante flag.

Requirements

  • A Beta Three CMX Series DSP (CMX4.4 / CMX4.8 / CMX8.4 / CMX8.16 / CMX16.8 / CMX16.16, MKII or iMKII) on the same network for UDP control, or a direct RS-232 connection at 9600 8N1 for serial control.
  • RTI XP processor (runtime 24+, software 11.4+, Integration Designer 11.4+).
  • For UDP: the CMX's IP address and its native control port (default 5062) reachable from the processor.
  • For serial: a spare processor RS-232 port wired to the CMX's rear-panel control port (TX/RX/GND).

How It Works

Pick the CMX model in Driver Properties — this fills in the correct input/output channel counts and whether Dante channels are present — then choose UDP or Serial and enter the connection details. On load, the driver performs a full state read-back (scene, mutes, volumes, phantom, DSP blocks and matrix routing) so panels come up in sync with the DSP's current state. Commands and their matching feedback share the same RTI tag, so dragging a single tag onto a button or fader wires both the control action and its live feedback in one step — mutes light when muted, faders track the DSP's actual gain, and the matrix grid reflects the current routing in real time.

Beta Three CMX Series DSP Driver

Version 1.40

Smart Home Programming - smarthomeprogramming.com.au Email: david@smarthomeprogramming.com.au.

What This Driver Does

Full two-way control of Beta Three CMX Series digital signal processors (mixer / matrix / DSP). It gives you scene recall, per-channel input and output mute and volume (faders), 48V phantom power, a full input-to-output matrix mixer, per-channel DSP block bypass (Expander, Compressor, AGC, Delay, Crossover, Limiter), EQ bypass, onboard USB/SD media transport, and DCA / group control - all with live UI feedback where the device supports it.

Supported Models

CMX4.4, CMX4.8, CMX8.4, CMX8.16, CMX16.8 and CMX16.16, in MKII and/or iMKII variants (check the Model dropdown for the exact combinations - CMX8.4 and CMX8.16 are iMKII only). The "i" (iMKII) variants add 16 Dante input + 16 Dante output channels. In this driver, analog channels are 1-16 and Dante channels appear as 17-32 (also labelled RX 1-16 for inputs and TX 1-16 for outputs). Pick your exact model in Driver Properties and the analog input/output counts and the Dante-present flag fill in automatically.

Quick Start

1. In Driver Properties, set Model first (Device category). This auto-fills the input/output channel counts and the Dante flag - override them only if your unit differs.

2. Choose your Connection Type. UDP is recommended.

3. UDP: enter the CMX IP Address and leave UDP Port at 5062.

4. Serial: pick the processor Serial Port and set baud to 9600 (8N1) - the CMX factory default. Use the RS-232 port labelled G RX TX; wire RTI TX to DSP RX, RTI RX to DSP TX, and GND to G.

5. Leave Feedback Transport at UDP unless you need channel names or EQ-bypass feedback (see below).

6. Load the driver. On connect it does a full state dump (scene, mutes, volumes, phantom, DSP blocks, matrix). Allow about 1.5 seconds.

7. Drag tags onto your panel buttons/faders (see Wiring The UI).

Connection Setup

UDP (recommended) - the default. Connectionless, uses port 5062, has no connection state to get stuck, and is immune to the device web-server hanging. Enter IP Address and UDP Port (5062). The driver binds its own local listener to the same port so device reply packets are received.

Serial - for installs with no network. Full-duplex binary protocol at 9600 8N1 (the CMX factory default). Change baud only if the unit was reconfigured. No HTTP polling is used on serial.

Feedback Transport (important)

Commands are always sent as fire-and-forget UDP; feedback comes from a separate poll channel that you choose here:

- UDP (default, robust): polls binary query frames on port 5062. No dependency on the device's single-client web server. Covers scene, mutes, volumes, phantom, DSP blocks, matrix routing, and live meters (via real-time push). It CANNOT read back EQ bypass state or channel names.

- HTTP: polls the device web server (/cgi-bin/info.cgi) for full state INCLUDING the two things UDP cannot - EQ bypass state and channel names. Use HTTP only if you need EQ-button feedback or live channel-name display; the device web server is single-client and less robust.

Poll Interval default is 1000ms (~1s latency). 500ms is snappier, 2000ms is lighter. Do not go below 250ms.

Licensing

The driver runs a free 120-minute trial with the Licence Key left blank - everything works during the trial. A Trial Warning event fires at 5 minutes left, and Trial Expired at 0. After the trial only CONTROL is blocked - monitoring, feedback and polling keep running, so your UI still shows live state. To unlock control permanently, enter the per-processor Licence Key supplied by Smart Home Programming. Keys are generated against the processor MAC shown in the MACForKey sysvar. Licence status is exposed via LicenceValid, LicenceStatus, TrialActive, TrialExpired and TrialTimeRemaining.

Driver Properties (all settings)

Device

- Model: selects the CMX model; auto-fills the two counts below and the Dante flag.

- Analog Input Channels (4 / 8 / 16): auto-set from Model.

- Analog Output Channels (4 / 8 / 16): auto-set from Model.

- Dante Channels Present: tick for iMKII units (16 Dante in + 16 Dante out, exposed as channels 17-32). Auto-set from Model; gates all Dante sysvars.

Connection

- Connection Type: UDP or Serial.

- IP Address: UDP only - the CMX IP.

- UDP Port: UDP only - default 5062 (listener binds the same port).

- Serial Port: Serial only - processor RS-232 port.

- Enable Level Meters: adds 64 meter sysvars (VU). Off by default.

- Feedback Transport: UDP (robust) or HTTP (adds EQ + names).

- Poll Interval (ms): 250-60000, default 1000.

- Serial Baud Rate: Serial only, default 9600 (the CMX factory default; match to the DSP).

Debug (hidden category)

- Debug Level: 0 silent / 1 errors / 2 queue / 3 every frame.

- Debug Console Port: telnet console port, default 9040 (0 disables).

Remote Logging (Development)

- Enable Remote Logging: streams the log to SHP's cloud. Off by default - only enable when SHP asks. Can also be toggled at runtime with the Remote Logging macros.

- Log Server Host: default shpdrivers.services. Put the server IP here instead if the site DNS can't resolve that name.

- Log Server Port: 443 (HTTPS) or 80 (HTTP).

Licence

- Licence Key: per-processor key from SHP. Blank = 120-minute trial.

Wiring The UI - The Drag-A-Tag Model

Most controls are a single drag. The command function and its matching feedback sysvar share the same tag, so dropping one tag onto a button/fader wires BOTH the press action and the live feedback at once.

Mutes - drop "Input N Mute Toggle" (or "Output N Mute Toggle") onto a button. Tapping toggles the mute, and the button lights when the channel is muted. For "show a layer only while unmuted", bind the inverted InUnmuteN / OutUnmuteN sysvar (RTI layers can only test for true). Channels 17-32 carry RX/TX aliases on the tag, e.g. "Input 17 Mute, RX 1 Mute". Separate Mute / Unmute functions and Mute All / Unmute All are also provided.

Faders - bind a slider to a volume tag:

- "Input N Volume %" for a plug-and-play 0-100 fader (matches the Percent command and InVolPctN feedback).

- "Input N Volume dB" for a real-dB fader - set the slider Min/Max to -72 and +12 (matches InVolDbI N feedback).

Up/Down step buttons ("Input N Volume Up / Down") repeat while held. For a text readout use InVolDbN (a string like "0.00"). Output faders work identically with the "Output N ..." tags.

Scenes - drop "Recall Scene 1" ... "Recall Scene 8" onto buttons. Highlight the active scene by binding the SceneIsActiveN booleans (tag "Scene N Active") or read CurrentScene (integer). A recall also fires SCENE_RECALLED and SCENE_N_RECALLED events for macros. "Save Current Scene" stores the live state into the active slot; "Query Active Scene" forces a re-read.

The Matrix Mixer - a 16x16 analog crosspoint grid (Dante extends the outputs to 17-32). The easy way: drop the single-drop crosspoint tag "In N to Out M" onto a grid button - it wires the route-toggle command AND the lit routed-state feedback (Matrix_InN_OutM) in one drag. Lay these out as a grid and every cell lights when that route is active. Crosspoints light instantly (written optimistically the moment the command fires). Generic Route / Unroute / Toggle functions (Input + Output parameters) are also available for macro use.

Phantom Power - "Input N Phantom On / Off / Toggle" for analog inputs 1-16; bind the PhantomN feedback sysvar to light the button. (Dante channels have no real phantom.)

DSP Blocks - Input Expander / Compressor / AGC and Output Delay / Crossover / Limiter each have Enable / Bypass / Toggle tags per channel (1-16), with matching "...Enabled" feedback sysvars to light the button.

EQ - Input/Output EQ Enable / Bypass / Toggle per channel. EQ control is written over HTTP CGI, and EQ-bypass FEEDBACK only populates in HTTP Feedback Transport mode.

Output V (advanced) - "Output N V Activate / Deactivate / Toggle" (ch 1-32) toggles the CMX chV output stage (an undocumented feature); bind the OutVEnabled N sysvar (tag "Output N V Active", 1 = active) for feedback. Leave unused unless you know your unit needs it.

Meters - turn on Enable Level Meters, then bind InMeterN / OutMeterN (0-100, 100 = peak) to bar-graph widgets. In UDP mode meters arrive by real-time push; in HTTP mode they double the web-server load.

DCA / Group Control - Up to 16 groups. Add Channel (Group + Channel + Type: Input/Output DCA or GROUP), Remove Channel, Clear Group, Group Mute (Direction + Mute/Unmute), and Input/Output Group Volume dB. DCA is command-only (open-loop) - there is no DCA state readback, so drive the UI from your own logic.

Playback Transport - Play / Pause / Stop / Next Track / Prev Track for the onboard USB/SD media. Fire-and-forget (no transport-state feedback).

System - Reconnect, Refresh State, and Remote Logging On / Off / Toggle.

Feedback Sysvars Overview

- System: Connected, Status, RemoteLoggingActive.

- Scene: CurrentScene, SceneIsActive1..8.

- Mutes: InMute/OutMute 1..32 plus inverted InUnmute/OutUnmute.

- Volumes (four views each): InVol/OutVol (raw dB x100), InVolDb/OutVolDb (string "0.00"), InVolPct/OutVolPct (0-100 fader), InVolDbI/OutVolDbI (whole-dB fader).

- Phantom: Phantom1..16.

- Channel Names: InName/OutName 1..16 (HTTP mode only).

- Matrix: Matrix_InN_OutM booleans (true = routed).

- DSP blocks: InExp/InComp/InAgc Enabled, OutDelay/OutXover/OutLimiter Enabled.

- EQ: InEqEnabled/OutEqEnabled 1..32 (HTTP mode only).

- Output V (advanced): OutVEnabled 1..32.

- Meters: InMeter/OutMeter 1..32 (when enabled).

- Licence: LicenceValid, LicenceStatus, TrialActive, TrialExpired, TrialTimeRemaining, MACForKey.

Events

Scene: SCENE_RECALLED (any), SCENE_1_RECALLED ... SCENE_8_RECALLED. Licence: TRIAL_WARNING (5 min left), TRIAL_EXPIRED. Wire these to macros for automation.

How Feedback Works (design notes)

Commands are sent as fire-and-forget UDP; feedback comes from a separate poll channel because a pure UDP receive is not reliable on RTI. To make control land reliably, every state-changing command is sent as a short burst (about 10 copies, spaced 30ms) while the poller briefly pauses - this beats the DSP's tendency to drop UDP under load. Queries are never bursted. When you drag a fader, the driver holds your value and ignores stale polled values for about 2 seconds so the fader doesn't snap back. After a scene recall the poller does a gentle staged re-read (scene + mutes first, then volumes/matrix/blocks over a few seconds) so the UI doesn't flood.

Debug Console

Telnet the processor on the Debug Console Port (default 9040; 0 disables). Set Debug Level to 3 (hidden category) to see raw frame TX/RX hex. Remote logging (off by default) streams the log to shpdrivers.services and can be flipped at runtime via the Remote Logging On/Off/Toggle macros - no re-deploy needed. Port 9040 was chosen to avoid clashes with LIFX (9020) and RS-232 Toolkit (9030).

Troubleshooting

- Status stuck on Connecting: check the IP Address and that you can ping the CMX. A ~1.5s connect delay on load is normal.

- Nothing responds on UDP: confirm the IP and that UDP Port 5062 matches on both the unit and the driver (the listener binds the same port).

- Control works but feedback is stale/blank: check Feedback Transport. UDP can't do EQ state or channel names; HTTP needs the device web server reachable.

- EQ buttons or channel names blank: switch Feedback Transport to HTTP.

- Occasional missed command: the CMX DSP drops UDP under load; the driver already bursts commands to compensate. Raising Poll Interval slightly can also help under heavy traffic.

- IP conflict: make sure no other device shares the CMX IP.

- Control stops after ~2 hours: the free trial expired - enter a Licence Key. Monitoring keeps working.

- Use the port-9040 debug console with Debug Level 3 to watch raw TX/RX.

Support

Smart Home Programming

smarthomeprogramming.com.au

Please include your processor MAC (the MACForKey sysvar), the driver version (1.40), and your CMX model when requesting support or a licence key.

This driver requires a licence key tied to your RTI processor's MAC address.

  • Trial: 120-minute fully functional trial — no key required
  • Purchase: Visit https://smarthomeprogramming.com.au/store/ to buy a licence
  • Licence is per-processor — one key per XP processor
  • After the trial: only control commands are blocked — monitoring and feedback keep running so the UI still shows live device state
Please log in to leave a comment.
Loading comments...