Skip to main content

BSS Soundweb London

Controls Harman BSS Soundweb London BLU-series digital signal processors (BLU-100, BLU-160, BLU-800, BLU-806, BLU-320, BLU-DAN and relatives) over the published London DI third-party control protocol on TCP port 1023.

One GEM device represents the DSP. Each zone maps to a gain object inside the DSP's design file, giving you level, mute and state feedback per zone. Preset recall is device-wide.

info

This driver controls a DSP that has already been designed and commissioned. It does not create, edit, or discover audio objects — the signal flow lives in the design file authored in Audio Architect (or the legacy London Architect), and GEM addresses objects that design already contains.

Prerequisites

  • The BLU device must be commissioned with its design file loaded and running.
  • TCP 1023 must be reachable from the GEM server. There is no login — the DI protocol is unauthenticated, and the device accepts multiple simultaneous connections.
  • You need the HiQnet object address of every gain block you intend to control. Read it off the object in the design file.
warning

Because the control port is unauthenticated, the DSP's control VLAN should not be reachable from untrusted networks. Anyone who can open TCP 1023 can change gain, mute, and recall presets.

Finding an object address

In the design file, each processing object carries a HiQnet address printed as 0xnnnnvvbbbbbb:

PartWidthMeaning
nnnn2 bytesHiQnet node address of the unit
vv1 byteVirtual device03 for audio processing objects
bbbbbb3 bytesObject ID within that virtual device

So 0x083203000100 is node 0832, virtual device 03, object 000100. That 12-hex-digit string is what goes in the zone address.

caution

London Architect displays node, virtual device, and object in hex, but state-variable IDs in decimal. When cross-referencing the design file against this page, don't mix the two.

Setup steps

  1. Go to /admin/devices and create a device with driver bss_soundweb_london.
  2. Set DSP IP to the BLU device's address. Leave TCP Port at 1023.
  3. Save and enable the device.
  4. Create one zone per gain object at /admin/zones, setting Address to that object's 12-hex-digit HiQnet address.
  5. Reload the device. On connect the driver subscribes to gain and mute on every zone — a subscribe returns the current value immediately and then on every change, so zones populate without polling.

Attribute reference

Device

AttributeRequiredDefaultPurpose
ipyesLAN IP or hostname of the BLU device.
portno1023London DI control port.
send_acknotrueReply with ACK to every well-formed inbound message. See Acknowledgement below.
volume_stepno5Percentage change applied by volume_up / volume_down.

Zone

Zones need only an Address. The driver writes state onto each zone as subscriptions report:

AttributeMeaning
stateon when unmuted, off when muted.
mute_stateon when muted, off when unmuted.
levelGain as 0–100% of the object's designed range.
gain_stateAbsolute gain in dB, when a raw gain update arrives.
polarityPolarity invert flag.

Zone address format

The 12-hex-digit HiQnet address of a gain object — 083203000100. A leading 0x and : separators are both accepted, so 0x0832:03:000100 parses identically.

Commands

CommandArgumentsNotes
on / offaddressUnmute / mute the gain object.
mute_on / mute_offaddressExplicit mute control.
set_leveladdress, levelGain as 0–100% of the object's designed range.
volume_up / volume_downaddressRelative change by volume_step percent.
set_gainaddress, gainAbsolute gain in dB, e.g. -12.5.
set_polarityaddress, valuePolarity invert, 0 or 1.
set_svaddress, sv, valueEscape hatch — set any state variable to a raw integer.
subscribe / unsubscribeaddressManage feedback for a zone.
presetpresetRecall a venue preset by index.
param_presetpresetRecall a parameter preset by index.

Level vs gain

set_level and set_gain are two different things, and the difference matters when commissioning:

  • set_level sends a percentage and lets the DSP map it. 0% is whatever minimum that object was designed with — commonly −80 dB, but it is design-dependent. This is the right command for a room volume control.
  • set_gain sends absolute dB using the protocol's sub-ranged gain law (linear at 10000 per dB down to −10 dB, logarithmic below). Use it when you need a specific, repeatable value.

The driver converts in both directions, so set_gain -12.5 means −12.5 dB regardless of the object's range.

Known limitations

  • Object addresses are design-file-specific. A zone address is only meaningful against the design currently loaded on the DSP. Re-addressing objects in Audio Architect invalidates existing zone addresses, and the DSP silently ignores messages for objects that don't exist — a wrong address looks identical to a dead command.
  • Only gain-object state variables are modelled (gain 0, mute 1, polarity 2). Anything else — meters, source selectors, logic, router objects — must go through set_sv with a raw SV ID and integer value, with no scaling or feedback applied. Meter subscriptions with periodic rates are not exposed.
  • Discovery is not possible. The protocol has no object enumeration; addresses must be read from the design file by hand.
  • String state variables (DI_SETSTRINGSV) are not implemented.
  • Venue vs parameter preset semantics were not verified against hardware. They are separate commands with separate numbering, and each unit is individually configured whether to respond at all.

Acknowledgement

If the device's Acknowledge property is enabled, it re-sends any unacknowledged message once per second, indefinitely. In GEM this looks exactly like a stuck subscription — the same value arriving over and over.

The driver replies with ACK to every well-formed message by default, which stops that loop. The vendor documentation is internally inconsistent about whether acknowledgement applies over Ethernet at all (one section says TCP makes it unnecessary; the FAQ describes the retry behaviour as configurable per device), so acknowledging is the safe default. Set send_ack to false if a site needs the raw behaviour.

The DSP also acknowledges your messages, and that cannot be disabled — bare ACK bytes therefore appear between frames on the wire. The driver skips them.

Troubleshooting

SymptomCheck
Connects, but nothing respondsConfirm the zone address matches an object in the design file currently loaded. The DSP silently ignores addresses it doesn't recognise.
State updates repeat once per secondThe device's Acknowledge property is on and something isn't acknowledging. Leave send_ack enabled, or turn Acknowledge off on the device.
Levels look wrong at the extremesset_level is a percentage of the object's designed range — 0% is that object's minimum, not a fixed −80 dB. Use set_gain for absolute dB.
Mute appears invertedMute is 0 = unmuted / 1 = muted. This encoding comes from Harman's support material rather than the Interface Kit itself; confirm on first commissioning.
Preset recall does nothingEach unit is individually configured whether to respond to preset recall. Confirm venue vs parameter preset — separate commands, separate numbering. Preset IDs are the index in the design tree and are fixed once created (deleting a preset does not renumber the rest).
Checksum mismatch warnings in the logSomething is corrupting the stream — usually a serial-over-IP gateway rewriting bytes. The DI protocol is binary and must pass through untouched.

See also

  • Devices — creating and enabling the DSP device.
  • AV Zones — mapping gain objects to rooms.