RTI Multi-Z AMP (AMP-x-125)
Driver: rti_amp
Zone control for RTI's Multi-Z DSP matrix amplifiers: AMP-2-125, AMP-4-125, AMP-8-125 and the Dante models AMP-2-125D, AMP-4-125D, AMP-8-125D. The driver talks to the amp's control API on TCP port 7621. That is the same API the amp's own web interface uses, so the web UI can stay open while GEM is connected.
These amps are not the older AD-4x / AD-8x distribution amps. For those, use RTI AD-4x / AD-8x.
What it does
- Amp power: wake the amp from standby, or put it into standby.
- Zones created for you: when the device connects, it creates a GEM zone for each amp zone that doesn't have one, named after the zone names on the amp.
- Per zone: volume, gain in dB, mute, and source selection. Zone off clears the zone's source; zone on restores the last source it had.
- Whole amp: all off, mute all, and unmute all.
- Routing: which zone each amplifier output plays, output mute, and input trim.
- Live state: the amp pushes every change to GEM as it happens. That includes changes made in the web UI, from RTI or another controller, or through the GPIO volume inputs. GEM also re-reads all zones every five minutes as a safety net.
- Device info: reports the amp's model, firmware, serial number and standby state, plus the names of its zones and inputs.
How the amp is organised
The amp's DSP has three layers, all configured in its web UI:
- Inputs: analog 1-8, S/PDIF 1-2, Dante 1-4 on D models, and mixes 1-8, which blend inputs together.
- Zones A-H: each zone plays one source at one volume. This is what GEM controls.
- Outputs 1-8: the amplifier channels. Each output amplifies one zone (left, right or both channels). By default output 1 plays zone A, output 2 plays zone B, and so on. Two outputs can share a zone, for example a stereo pair or two speakers in one room.
Set up the outputs, zones and sources in the amp's web UI first. GEM then drives the zones.
Source IDs
set_input takes the amp's source ID:
| Source | ID |
|---|---|
| Analog 1-8 | 100-107 (a bare 1-8 also works) |
| S/PDIF 1-2 | 200, 201 |
| Dante 1-4 (D models) | 300-303 |
| Mix 1-8 | 500-507 |
| No source (zone off) | 0 |
Names such as spdif1, mix3 and dante2 are accepted as well. A source that doesn't exist on your model is rejected by the amp. For example, Dante on a non-D amp is logged as E101: Invalid channel.
Prerequisites
- The amplifier on the LAN, with a DHCP reservation or a static IP.
- Outputs and zones configured in the amp's web UI.
Setup steps
The device's Setup tab shows the amp as a grid of analog inputs 1-8 by amp zones A-H (sized from the model, so an AMP-4 shows A-D, and the count is not editable there) with what each zone is playing now — a zone on S/PDIF or Dante shows no dot, since only analog inputs are on the grid — and does steps 3-4 below for you: Create routing macro makes one macro that runs set_input with the selected source and room, and Create source makes an AV source per analog input with that macro as its On Macro. Sources on S/PDIF, Dante or a mix are still set up by hand. The Outputs list shows an AV zone against an amp zone only when this amp is its volume device (what sync_av_zones writes), so another amp's zone A never appears here; assigning an AV zone to an output makes this amp its volume device, after asking if it had another. Turn on Route on click to route from the grid. See Devices — Setup Tab.
-
Open Devices, add a device, and choose RTI Multi-Z AMP (AMP-x-125) (
rti_amp). -
Enter the amp's IP Address. Leave TCP Port at
7621. -
Save and enable the device. The device reports its model and the names of its zones and inputs within a second or two.
-
Check the zones. On connect the driver creates one GEM zone per amp zone under the av subsystem, named after the zone names on the amp, with the zone letter as the Address. It does this every time it reads the zone list, but only for amp zones that have no GEM zone. A zone you disable is never re-created. To manage zones by hand instead, set
auto_create_zonestofalseand add zones with the Address set to the zone letter,AtoH. The sync_zones command runs the same creation on demand.The av subsystem must exist. Without it, no zones are created and the log says
av subsystem not found. -
Run sync_av_zones to add those zones to AV Zones, with this amp as the volume device.
-
For each AV source, set its audio command to
set_inputwith the source ID.
Attribute reference
Device
| Name | Required | Default | Description |
|---|---|---|---|
ip | yes | none | LAN IP of the amplifier. |
port | no | 7621 | Control API port. |
volume_db_min | no | amp's zone minimum (-80 dB) | The zone gain that GEM volume 0 maps to. See Volume scale. |
volume_db_max | no | amp's zone maximum (0 dB) | The zone gain that GEM volume 100 maps to. |
auto_create_zones | no | true | Create a GEM zone for each amp zone that has none. Set to false to manage zones by hand. |
status_interval | no | 300000 | How often (ms) every zone is re-read as a safety net. 0 turns it off; push updates still arrive. |
Zone
Set the zone Address to the amp zone letter:
- AMP-2:
A-B - AMP-4:
A-D - AMP-8:
A-H
The numbers 1-8 are also accepted and mean A-H.
Reflected attributes (read-only)
| Target | Name | Notes |
|---|---|---|
| zone | volume | 0-100, mapped from the zone gain. |
| zone | gain_db | Zone gain in dB, as the amp reports it. |
| zone | mute_state | on / off. |
| zone | input | Current source ID. 0 means no source. |
| zone | input_name | The name of the current source, as set on the amp. |
| zone | power_state | on when the zone has a source, off when it has none. |
| zone | last_input | The last source the zone had. zone_on uses it to restore the source, even after GEM restarts. |
| device | model, firmware_version, serial_number | From the amp. |
| device | power_state | on, or off when the amp is in standby. |
| device | system_state | on or standby, as the amp reports it. |
| device | signal_in, signal_out | The amp's signal-detect state. |
| device | zone_names, input_names | JSON maps of the names set on the amp. |
| device | last_error | The last command the amp rejected, with its reason. |
Commands
| Command | Arguments | What it does |
|---|---|---|
power_on / power_off | none | Wake the amp from standby / put it into standby. |
volume | address, volume (0-100) | Set zone volume. |
volume_up / volume_down | address, step (dB, default 2) | Nudge zone gain. |
set_gain | address, gain (dB) | Set zone gain directly. |
mute_on / mute_off / mute_toggle | address | Zone mute. |
set_input | address, input | Select the zone's source. |
zone_on / zone_off | address | Restore the last source / clear the source. |
all_off, mute_all, unmute_all | none | Every zone at once. |
set_output_source | output (1-8), zone (A-H) | Route an amplifier output to a zone. |
output_mute_on / output_mute_off | output | Mute or unmute one amplifier output. |
set_input_gain | input, gain (-15 to +15 dB) | Input trim. |
request_status | none | Re-read everything now. |
sync_zones, sync_av_zones | none | Create GEM zones and AV zones from the amp. |
passthrough | command | Send a raw API line, such as GET ZONE-A.*. Available to admins only. |
Volume scale
Each zone has a gain range on the amp: -80 dB to 0 dB unless it was changed in the web UI. GEM volume 0-100 maps linearly across that range, so 50 is -40 dB.
The bottom of that range is effectively silent. To make the whole slider useful, set volume_db_min, for example to -60, and GEM volume 0 becomes -60 dB. volume_db_max caps the top in the same way. Neither setting can go past the zone's own limits on the amp.
volume_up and volume_down move the gain in dB steps and ignore these settings, apart from the amp's limits.
Known quirks
- No per-zone power. The amp has no zone on/off. GEM treats a zone with no source as off:
zone_offsets its source to none, andzone_onputs back the last one. As a result,power_statereads on for any zone with a source selected. - Every zone starts "on". Out of the box every zone has a source (zone A on Analog 1, zone B on Analog 2, and so on), so every zone reads on until it is turned off once.
- Standby also happens on its own. Besides
power_onandpower_off, the amp drops into standby after a period without signal and wakes on audio. Both are set in its web UI under power settings. The devicepower_statefollows the amp whichever way it changed.
Troubleshooting
| Symptom | Check |
|---|---|
last_error shows E101: Invalid channel | The source ID doesn't exist on this model. Dante sources exist on D models only. |
| The slider does nothing across its lower half | The zone runs down to -80 dB. Set volume_db_min, for example to -60. |
| A zone reads on though nobody turned it on | It has a source selected on the amp. Send zone_off once. |
| The device never connects | Check that TCP port 7621 on the amp is reachable from GEM. |