Skip to main content

RTI AD-4x / AD-8x (TCP)

Driver: rti_ad8

Multi-zone audio control for the RTI AD-4x and AD-8x audio distribution amplifiers over the amp's native TCP control port. Each amplifier output becomes a GEM zone with independent power, mute, volume, bass, treble, and input selection, and the driver polls every zone for its current state as soon as it connects.

This is the lower-overhead path and is the right default for most installs. There is also an HTTP variant — RTI AD-4x / AD-8x (HTTP) — that drives the same amplifier through its web interface on port 80. The TCP driver holds one persistent connection and gets every change confirmed by the amp; the HTTP driver opens a new connection for every poll and every command, which the amp's small network stack handles less gracefully. Prefer this driver.

What it does​

  • Per-zone power, mute, and volume, plus bass and treble tone control and physical-input selection.
  • Global "all zones on / off" and "mute / unmute all" one-shot commands.
  • On every connect, reads every configured zone, then keeps reading them in the background — one zone every few seconds, a full pass every status_interval (60 s by default) — so changes made at a keypad or the front panel show up in GEM.
  • Every command is answered by the amp with the zone's full status, so GEM shows what the amp actually did, not what it was asked to do.
  • Watches its own connection and recovers it automatically — see One control session.

Prerequisites​

  • An RTI AD-4x (4 outputs) or AD-8x (8 outputs) audio distribution amplifier on the LAN with IP/telnet control enabled.
  • A reachable IP address for the amp. Reserve it on the router by DHCP or set it static so it does not move.
  • TCP control port open — the factory default is 23.

Setup steps​

  1. Confirm the amp answers on its control port — from a machine on the same LAN, a telnet session to <amp-ip> on port 23 should connect.

  2. Open Devices, add a new device, and choose the RTI AD-8x Audio Distribution driver (rti_ad8).

  3. Enter the amp's IP Address. Leave TCP Port at 23 unless your amp was moved to a non-default port.

  4. Add one Zone for each amplifier output you want to control. Set each zone's Address to the plain 1-based output number:

    • AD-4x → 1 through 4
    • AD-8x → 1 through 8

    Enter the number as-is (1, 2, …). GEM zero-pads it to two digits on the wire automatically — do not type 01.

  5. Save and enable the device. On connect the driver requests status for every zone (about one second apart), so give a large system a few seconds to fully populate. After that, power/mute/volume changes made anywhere — GEM, a keypad, or the front panel — surface on the zone.

Placing the device

The amp lives in the AV subsystem, and each output zone belongs there too. Because the driver supports AV zones, you can also surface each output as an AV Zone to get the volume / mute / source controls on the AV pages and touchpanels.

Attribute reference​

Device​

NameRequiredDefaultDescription
ipyes—LAN IP of the RTI amplifier.
portno23TCP control port. Only change it if the amp was moved off the default.
volume_db_minno-62The dB level GEM volume 0 maps to. See Volume scale.
status_intervalno60000Time (ms) to read every zone once in the background. 0 turns the sweep off; the connection check still runs.

The device also inherits the standard TCP tuning attributes (reconnect timing, command throttle, status/ping intervals). The defaults are correct for RTI hardware — leave them alone unless you are troubleshooting a specific timing problem.

Zone​

No required zone attributes beyond the Address. Set the address to the 1-based output number (1-4 on AD-4x, 1-8 on AD-8x).

Reflected attributes (read-only)​

The driver writes these onto each zone from the amp's status replies — after the connect-time sweep and after each command. You never set them by hand; they appear once the device is connected.

TargetNameTypeNotes
Zonepower_statestringon / off.
Zonemute_statestringon / off.
Zonevolumeint0-100 (GEM scale).
ZoneinputintThe amp's physical input feeding the zone (1-8).
Devicecontrol_local_portintInternal — the local port of the current control session, kept so a lost session can be cleared after a restart.

Commands​

All per-zone commands take the zone's address (the 1-based output number). GEM pads it to two digits before sending, so pass the plain number. A per-zone command sent with no address, or a value that is missing where the command needs one (a blank volume, input or tone level), is answered with an error and nothing is sent to the amp.

CommandArgsNotes
zone_on / zone_offaddressPower one output on or off.
power_toggleaddressToggle one output's power.
mute_on / mute_offaddressMute control for one output.
mute_toggleaddressToggle mute for one output.
volumeaddress, volumeSet volume 0-100 (GEM scale); converted to the amp's dB range internally. Values outside 0-100 are clamped. level is accepted in place of volume.
volume_up / volume_downaddressStep the volume up or down by one amp step.
set_bassaddress, levelBass tone control. Range follows the amp firmware.
set_trebleaddress, levelTreble tone control. Range follows the amp firmware.
set_inputaddress, inputRoute a physical amplifier input to the zone. input is the 1-based input number wired on the amp.
all_on / all_off—Power every output on or off in one shot (amp-side broadcast, no address).
mute_all / unmute_all—Mute or unmute every output in one shot.
request_statusaddressAsk the amp for one zone's current power / mute / input / volume.
passthroughcommandSend a raw RTI ASCII command string exactly as typed, for a control the driver does not expose.

Volume scale​

GEM presents volume as 0-100. On the wire the amp takes attenuation in whole dB, from 0 (loudest) to -78 (quietest). The driver converts in both directions.

  • Default: -62..0 dB. This is the mapping the driver has always used, so existing sliders, macros and scenes keep their meaning. Anything quieter than -62 dB (set from a keypad, say) reads as 0.
  • Full range: set the device attribute volume_db_min to -78. GEM 0 then maps to the amp's quietest step. This also matches the scale the HTTP driver uses, so set it when you move a site from the HTTP driver to this one and the same numbers keep the same loudness.
  • A dB step is coarser than a GEM step, so neighbouring slider positions can land on the same dB value.
  • Setting the volume of a zone that is off turns the zone on. That is the amp's behaviour, not GEM's.

Selecting a source (input)​

The AD-4x/AD-8x is an input-switching audio matrix: any of its physical inputs can feed any output. To route an input to a zone, send set_input with the zone's address and the physical input number wired on the amp — for example from a macro, a UI button, or an AV-zone source mapping.

info
zone.input vs zone.source

set_input addresses the amp's own physical input number. That is separate from GEM's zone.source, which is an internal reference to a configured AV Source and is owned by the AV-routing logic. When you wire up source selection, drive set_input with the amp input number — do not put a raw amp input number into zone.source.

One control session​

The amp accepts one telnet connection at a time and refuses every other one while it is held. That has two consequences:

  • Nothing else may hold port 23: not an RTI programming tool, and not a second controller. While something else holds it, GEM cannot connect, and its log says amp refused the connection — another client holds its single control session.
  • If GEM's connection ends without the amp noticing (the controller loses power, or the network drops at the wrong moment), the amp keeps holding the dead session. It does not time it out, even after 20 minutes. The driver recovers from this by itself: it remembers which local port its session used and reconnects from that same port, which makes the amp drop the dead session. The log shows reconnecting from previous local port to clear a held session, followed by a normal connect.

The driver also sends a zone status query whenever the line has been quiet for 20 seconds. If the amp stops answering for a minute, GEM marks the device disconnected and reconnects, so a dead link cannot pass for a live one.

Troubleshooting​

SymptomCheck
Device won't connect; log says the amp refused the connection.Something else holds the amp's single control session: close any RTI setup tool or other controller on port 23. A session GEM itself lost is cleared automatically. If none of that applies, power-cycle the amp.
A zone never updates or ignores commands.Confirm the zone Address is the plain 1-based output number (1-4 or 1-8), entered without leading zeros. GEM pads it for you; a pre-padded or out-of-range address will not match a real output.
Quiet zones read 0, or the slider range feels compressed.The default map is -62..0 dB. Set volume_db_min to -78 for the full range. See Volume scale.
Power or mute state lags behind reality.Changes made outside GEM show up within one status_interval sweep (60 s by default). Lower status_interval, or send request_status for the zone.
TCP vs HTTP

Use this rti_ad8 TCP driver. It holds one steady connection, gets each command confirmed with the zone's real state, and recovers its own session. The rti_ad8x_http driver opens a fresh connection for every poll and command, and under bursts (a volume drag, an all-off) the amp's network stack starts dropping and resetting them. Keep it only as a fallback if the telnet port is unavailable.

  • Devices — add and configure the amplifier.
  • Zones — one zone per amplifier output.
  • AV Zones — surface each output on the AV control pages.
  • RTI AD-4x / AD-8x (HTTP) — the web-interface variant of this same amplifier.