Beispiele für Systemintegrationen

Überblick über das Q-SYS-Steuerungsprotokoll

1. Natives Protokoll

  • Q-SYS kommuniziert extern über QRC (Q-SYS Remote Control Protocol) – eine WebSocket-JSON-API, die standardmäßig Port 1710 verwendet.
  • Es unterstützt außerdem die Steuerung durch Drittanbieter über:
    • Lua-Skriptmodule (benutzerdefinierte Skripte im Q-SYS Designer),
    • TCP-/UDP-Netzwerkverbindungen sowie
    • HTTP-JSON-API (auf Core 510i, Core Nano, Core 110f usw. über /jsonrpc).

Integration des dMix 128 mit Q-SYS

Der dMix 128 stellt bereits eine OSC-(UDP)- und/oder WebSocket-JSON-Steuerungsschnittstelle bereit – auf beide kann Q-SYS zugreifen.

Option A – Am einfachsten: OSC-Integration (empfohlen)

Q-SYS unterstützt das native Senden und Empfangen von OSC über den Block „Control Script“ oder einen „Lua Script Node“.

Beispiel für einen Lua-Codeausschnitt innerhalb eines Q-SYS-Skriptblocks:

local udp = UdpSocket.New()
udp:Connect("192.168.1.120", 8000) -- dMix 128 IP and OSC port

-- Set fader level to -10 dB (0.316 normalized)
udp:Send("/a.1.mix 0.316\n")

-- Mute channel 1
udp:Send("/a.1.mute 1\n")

-- Recall scene 3
udp:Send("/scene/load 3\n")

Ihr dMix-System würde sofort reagieren, da diese Nachrichten seiner OSC-Zuordnung (Keymap) entsprechen.

💡 Dies ermöglicht die direkte Steuerung von Fadern, Stummschaltungen (Mute) und Szenenaufrufen über jedes Q-SYS-Bedienpanel, jede Taste oder jedes Logikereignis.

Option B – WebSocket-JSON-Integration

Wenn Ihr dMix 128-Server eine WebSocket-Schnittstelle bereitstellt (für die Steuerung über die Browser-GUI), kann Q-SYS ebenfalls eine WebSocket-Verbindung öffnen und JSON-Nachrichten senden.

Beispiel für JSON (bei Verwendung Ihrer Go-Backend-API):

{
  "cmd": "set",
  "key": "a.1.mix",
  "value": 0.75
}

Q-SYS Lua-WebSocket-Beispiel:

local ws = WebSocketClient.New()
ws:Connect("ws://192.168.1.120:8080/ws")

ws:Send('{"cmd":"set","key":"a.1.mix","value":0.75}')

Diese Methode ist flexibler (ermöglicht Szenennamen, Stereogruppen und Metering-Rückmeldungen), ist jedoch etwas komplexer in der Konfiguration.

Option C – Verwendung von QRC-JSON (umgekehrte Richtung)

Wenn Sie den dMix 128 zur Steuerung von Q-SYS verwenden möchten, können Sie JSON-RPC-Aufrufe an Q-SYS senden:

{
  "jsonrpc":"2.0",
  "method":"Component.Set",
  "params":{
    "Name":"GainControl1",
    "Controls":[{"Name":"Gain","Value":0.5}]
  },
  "id":"1"
}

Ziel-URL:

ws://<qsys-ip>:1710

Empfohlener Integrationsplan

Zweck Verbindung Port Nachrichtenformat Beispiel Hinweise
Steuerung von dMix 128-Fadern, Mute-Funktionen und Szenen über Q-SYS OSC UDP 8000 /a.1.mix 0.75 Straightforward
Bidirektionale Steuerung / GUI-Synchronisierung WebSocket JSON 8080 {"cmd":"set","key":"a.1.mute","value":1} Bidirektional
Steuerung von Q-SYS über dMix QRC JSON-RPC 1710 Q-SYS JSON Component.Set

Wenn Sie mir Ihr Q-SYS Core-Modell nennen (z. B. Core 110f, Core Nano oder Core 510i) und mitteilen, wie die Verbindung hergestellt werden soll (Ethernet oder lokales Subnetz), kann ich Ihnen ein sofort einsatzbereites Lua-Skript für den Q-SYS Designer erstellen, das direkt mit der OSC- oder WebSocket-Schnittstelle Ihres dMix 128 kommuniziert.
Möchten Sie, dass ich dieses Lua-Skript generiere (einschließlich Beispielen für Pegelsteuerung, Stummschaltung und Szenenaufruf)?

Wir haben drei sofort einsatzbereite Q-SYS-Lua-Skripte erstellt, die mit der WebSocket-Schnittstelle des dMix kommunizieren (unter Verwendung nullbasierter Schlüssel wie a.0.mix, a.0.mute sowie Szenenaufrufen).
Funktional sind sie identisch (die Q-SYS-Lua-Laufzeitumgebung verhält sich auf diesen Core-Modellen einheitlich), wurden jedoch modellbezogen beschriftet, um die Organisation Ihrer Projektdateien zu erleichtern.

Was ist enthalten

  • Verbindet sich mit (ws://dmix.local:8080/wskann am Anfang der Datei angepasst werden).
  • Automatische Wiederverbindung mit exponentiellem Backoff sowie Keep-Alive-Ping-Nachrichten.
  • Steuerungszuordnung (kann bei Bedarf einfach erweitert werden):
    • Kanal 1 Pegel ↔ a.0.mix(Float 0 bis 1)
    • Kanal 1 Mute ↔ a.0.mute (0/1)
    • Kanal 2 Pegel ↔ a.1.mix
    • Kanal 2 Mute ↔ a.1.mute
    • Szenennummer (Ganzzahl) + Szene aufrufen (Taste) → sendet {"cmd":"set","key":"scene/load","value":<n>}
  • Optionaler Handler für eingehende Rückmeldungen: Wenn dMix Aktualisierungen wie „{"evt":"update","key":"a.0.mix","value":0.51}“ sendet, wird das entsprechende Q-SYS-Steuerelement automatisch aktualisiert.

Pin-Namen für den Q-SYS Designer (genau wie angegeben)

  • Kanal 1 Pegel (Gain 0 bis 1)
  • Kanal 1 Mute (Toggle)
  • Kanal 2 Pegel (Gain 0 bis 1)
  • Kanal 2 Mute (Toggle)
  • Szenennummer (Integer)
  • Szene aufrufen (Taste)
  • (Optional) Connect (Taste), um eine manuelle Wiederverbindung zu erzwingen.

Hinweise / Anpassungen

  • dMix verwendet nullbasierte Kanalindizes (a.0. entspricht Kanal 1).
  • Um weitere Kanäle hinzuzufügen, duplizieren Sie die Einträge in der MAP-Tabelle und erhöhen Sie den Index entsprechend (a.2.mix, a.2.mute usw.).
  • Falls Ihr Backend ein leicht abweichendes JSON-Format erwartet, passen Sie die Funktionen dmix_set() und recall_scene() im oberen Bereich des Skripts entsprechend an.

Hier ist ein weiteres Beispiel für einen 8-Kanal-Mixer mit Stummschaltung (Mute), Panorama (Pan) und Master-Pegel.

Hier sind drei Q-SYS-Lua-Skripte für 8 Kanäle mit Pegel-, Mute- und Pan-Regelung sowie einer Master-Pegelsteuerung, die alle über die WebSocket-Schnittstelle mit dem dMix kommunizieren.

  • Core 110f – dMix WebSocket (8 Kanäle)
  • Core Nano – dMix WebSocket (8 Kanäle)
  • Core 510i – dMix WebSocket (8 Kanäle)

Pin-Namen für den Q-SYS Designer (genau wie angegeben)

Für jeden Kanal 1 bis 8:

  • Kanal N Pegel (Gain 0 bis 1)
  • Kanal N Mute (Toggle)
  • Kanal N Pan (Dial 0 bis 1 – 0 = Links, 1 = Rechts; Mitte bei 0,5)

Global:

  • Master-Pegel (Gain 0 bis 1)
  • Szenennummer (Integer)
  • Szene aufrufen (Taste)
  • (Optional) Verbinden (Taste)

Hinweise

  • Die WebSocket-URL ist standardmäßig oben in jeder Datei auf „ws://dmix.local:8080/ws“ eingestellt – passen Sie sie bei Bedarf entsprechend an.
  • Master fader key defaults to m.mix. If your backend uses something else (e.g., lr.mix or main.mix), change MASTER_KEY near the top.
  • Die Skripte enthalten eine automatische Wiederverbindung mit exponentiellem Backoff, regelmäßige Ping-Nachrichten sowie eine optionale Feedback-Zuordnung, sofern Ihr dMix-Server Aktualisierungen wie die folgenden sendet:
{
  "evt":"update",
  "key":"a.0.mix",
  "value":0.51
}

Fügen wir nun einen Notfallbefehl hinzu, der die Kanäle 1 bis 7 stummschaltet und sicherstellt, dass Kanal 8 aktiv und auf einem hohen Pegel eingestellt ist. Dieses Skript wird als separates Skript bereitgestellt.

Hier ist ein separates „Notfall“-Skript für jedes Core-Modell. Beim Betätigen der Notfalltaste in Q-SYS wird Folgendes ausgeführt:


  • Kanäle 1–7 stummschalten (a.0..a.6.mute = 1, Pegel auf 0,0 gesetzt)
  • Kanal 8 aktivieren und auf hohen Pegel setzen (a.7.mute = 0, Pegel standardmäßig auf 1,0 eingestellt)

Zusätzlich stehen Ihnen eine optionale Reset-Taste sowie ein Drehregler zur Verfügung, mit dem Sie den Notfall-Lautstärkepegel bei Bedarf anpassen können.

Downloads:

Pin-Namen für den Q-SYS Designer (genau wie angegeben)

  • Emergency (Taste) – löst die Notfallaktion aus.
  • Reset (Taste) – optional; setzt die Kanäle 1–8 auf einen Pegel von 0,5 zurück und hebt die Stummschaltung auf.
  • Emergency-Lautstärkepegel (Drehregler 0 bis 1) – optional; überschreibt den Standardwert von 1,0.
  • Connect (Taste) – optional; stellt manuell eine WebSocket-Verbindung her.

Hinweise

  • Die Skripte verbinden sich mit ws://dmix.local:8080/ws
    und verfügen standardmäßig über Keep-Alive-Funktionen sowie eine automatische Wiederverbindung.
  • Die Schlüssel basieren auf Ihrem dMix-Mapping:a.N.mute (0/1) und a.N.mix 0 bis 1), wobei N mit 0 beginnt (nullbasierte Nummerierung).

Wir können außerdem eine Master-Stummschaltung (Master Mute) bzw. ein Ducking für den Notfallmodus hinzufügen oder eine zeitgesteuerte Freigabe implementieren (z. B. automatische Rücksetzung nach 30 Sekunden).

To this download added Master mute/duck and a timed latch (auto-reset after 30s), plus state snapshot/restore, and built separate scripts for each core.

Downloads

Was dies bewirkt

  • Beim Betätigen der Notfalltaste:
    • Kanäle 1–7 → stummschalten und Pegel auf 0,0 setzen
    • Kanal 8 → Stummschaltung aufheben und Pegel auf LOUD_LEVEL setzen (Standardwert: 1,0)
    • Master → entweder stummschaltenm.mute=1) oder absenken (Ducking über (m.mix=DUCK_LEVEL, Standadwert: 0,2 undm.mute=0)
    • Automatische Rücksetzung nach 30 Sekunden (konfigurierbar)
    • Der vorherige Zustand von Kanal 1–8 sowie des Masters (Pegel/Stummschaltung) wird gespeichert und beim Zurücksetzen wiederhergestellt.

Konfiguration (kann am Anfang des Skripts angepasst werden)

  • DMIX_WS_URL – Standardwert ws://dmix.local:8080/ws
  • LOUD_LEVEL – wie laut Kanal 8 im Notfall sein soll (0 bis 1)
  • DUCK_MODE – „duck“ oder „mute“
  • DUCK_LEVEL – Master-Pegel während des Duckings (0 bis 1)
  • MASTER_LEVEL_KEY / MASTER_MUTE_KEY – anpassen, falls Ihr Backend andere Schlüssel verwendet.
  • AUTO_RESET_SEC – Standardwert: 30; setzen Sie den Wert auf 0, um die zeitgesteuerte Verriegelung zu deaktivieren.

Q-SYS-Steuerungs-Pins (die Namen müssen exakt übereinstimmen)

Erforderlich:

  • Emergency (Taste)

Optional/Empfohlen:

  • Reset (Taste) – manuelle Freigabe vor Ablauf des Timers.
  • Emergency-Lautstärkepegel (Drehregler 0 bis 1) – überschreibt den Wert von LOUD_LEVEL in Echtzeit.
  • Master-Ducking aktivieren (Toggle) – EIN = Ducking, AUS = Stummschaltung.
  • Duck Level (Drehregler 0 bis 1) – legt den Ducking-Pegel fest, wenn Ducking aktiviert ist.
  • Spiegelungen für eine präzise Zustandswiederherstellung (optional, aber empfehlenswert):
    • Master-Pegel (Gain 0 bis 1), Master Mute (Toggle)
    • Kanal N Pegel / Kanal N Mute für N = 1–8
  • Connect (Taste) – stellt manuell eine WebSocket-Verbindung her.

Ein Komplettpaket steht unten als sofort einsatzbereites Q-SYS Scriptable Controls „Component Kit“ mit Pin-Definitionen und Readme-Datei zur Verfügung.

Bundle herunterladen:

Download: dmix_qsys_bundle_v1.zip

Was ist enthalten

  • 8-Kanal-Steuerungsskripte (Core 110f, Core Nano, Core 510i): Pegel-, Mute- und Pan-Regelung für Kanal 1–8 sowie Master-Pegel und Szenenaufruf.
  • Notfall-Skripte (mit Verriegelungsfunktion) für alle drei Core-Modelle: Stummschaltung von Kanal 1–7, Aktivierung von Kanal 8 mit hohem Pegel, Master-Ducking oder Master-Stummschaltung, automatische Rücksetzung nach 30 Sekunden sowie Speicherung und Wiederherstellung des vorherigen Zustands.
  • manifest.json – genaue Pin-Listen und Standardwerte
  • README.md – Schritt-für-Schritt-Anleitung für die Einrichtung im Q-SYS Designer

Kurzanleitung zur Installation (Zusammenfassung)

  1. Fügen Sie einen Scriptable-Controls-Block in Ihr Schaltbild ein.
  2. Legen Sie die Anzahl der Steuerelemente fest und benennen Sie die Pins exakt gemäß den Vorgaben. manifest.json
  3. Fügen Sie den entsprechenden Lua-Code in den Skript-Editor des Blocks ein.
  4. Passen Sie bei Bedarf die Variable DMIX_WS_URL an (ws://dmix.local:8080/ws)
  5. Auf Ihren Core übertragen.

BSS / Harman HiQnet

Wir haben zwei praktikable Optionen, abhängig davon, mit welchen Geräten Sie kommunizieren möchten:

1) Soundweb London (BLU-80/BLU-160/BLU-100/BLU-3xx, etc.)

Verwenden Sie London Direct Inject (DI) über TCP. Dies ist der vorgesehene Weg für die Steuerung durch Drittanbieter und deutlich einfacher als die direkte Verwendung von HiQnet.

  • Transport/Ports: TCP 1023 für die DI-Steuerung; Telnet auf Port 23 (praktisch für Tests). HiQnet-Erkennung und -Steuerung verwenden ebenfalls TCP/UDP-Port 3804 (für DI wird dieser jedoch nicht benötigt).
  • Dokumentation: „Soundweb London Drittanbieter-Steuerung / London DI Kit“ erläutert die Nachrichtenstruktur und enthält Beispiele.
  • Schnelle Prüfmöglichkeit: Telnet-Anmeldung mit bssaudio / monkey; der Befehl help zeigt die verfügbaren Befehle an.

So verbinden Sie dMix mit Soundweb (empfohlen)

  1. Abonniert Ihre dMix-Ereignisse (z. B. a.N.mix, a.N.mute).
  2. Öffnet eine TCP-Verbindung zum Soundweb-System über Port 1023.
  3. Übersetzt jedes Ereignis in die entsprechende DI-Nachricht für den jeweiligen Parameter (Pegel/Stummschaltung), unter Verwendung der Objekt- und Parameter-IDs aus Ihrem Audio-Architect-Projekt.

Tipp: Notieren Sie sich in Audio Architect die Objektinstanz- und Steuerungs-IDs der Zielblöcke (Pegel, Stummschaltung, Router-Kreuzpunkte). Diese IDs werden direkt den DI-Nutzdaten zugeordnet, die Sie senden. Der Harman DI-Leitfaden enthält die genauen Byte-Strukturen und Beispiele.

2. Allgemeines HiQnet (über Soundweb hinaus: Crown-Endstufen, JBL-Prozessoren usw.)

Sie können HiQnet direkt über Port 3804 (TCP/UDP) verwenden. Dies ist komplexer, wird jedoch offiziell dokumentiert.

  • Dokumentation: „HiQnet Third-Party Programmer Documentation“ (behandelt Nachrichtenformate, Übertragungsprotokolle, Befehlstypen sowie Open-Loop- und Closed-Loop-Steuerung). HiQnet Audio Architect
  • Ports/Firewall: Stellen Sie sicher, dass TCP/UDP-Port 3804 freigegeben ist (bei einigen Geräten zusätzlich FTP während Firmware-Updates).
  • Wann verwenden: Wenn Sie Nicht-Soundweb-HiQnet-Geräte (z. B. Crown-Endstufen) direkt von dMix aus steuern möchten, ohne Audio Architect zu verwenden.

Welche Lösung sollten Sie wählen?

  • Steuerung von Soundweb London: Verwenden Sie London DI über TCP-Port 1023. Dies ist eine unkomplizierte und offiziell unterstützte Methode für die Steuerung durch Drittanbieter.
  • Steuerung anderer HiQnet-Geräte: Implementieren Sie HiQnet über Port 3804 gemäß dem Programmierhandbuch. Rechnen Sie dabei mit einem höheren Aufwand für Nachrichtenstrukturierung und Zustandsverwaltung.

Minimales Bridge-Konzept (Übersicht)

  • Eingabe: dMix WebSocket-JSON (z. B. {"cmd":"set","key":"a.0.mix","value":0.73})
  • Ausgabe: DI-Datenpaket an das Soundweb-Pegelobjekt für Kanal 1.
  • Geräteerkennung: Nicht erforderlich; die IP-Adresse des BLU-Geräts ist bereits bekannt.
  • Rückmeldung: Optional können Messwerte oder Parameter über DI abgefragt bzw. abonniert und anschließend als {"evt":"update", ...} an dMix zurückgesendet werden.

(Die genauen DI-Datenbytes hängen von den Objekt- und Steuerungs-IDs Ihres Projekts ab. Diese können Sie in Audio Architect ermitteln; Beispiele finden Sie im DI-Kit-PDF.)

Netzwerk-Checkliste

  • Öffnen Sie 1023/TCP für jedes Soundweb-System zur DI-Steuerung; 23/TCP ist optional für Tests per Telnet.
  • Wenn Sie zusätzlich die HiQnet-Geräteerkennung oder -Steuerung verwenden, öffnen Sie TCP/UDP-Port 3804 (sowie TCP-Port 21 und die Ports 49152–50152 für Firmware-Updates bzw. FTP).

Download:

Download: dmix_hiqnet_bridge_v1.zip

(Enthält main.go, config.example.json und eine README-Datei.)

Funktionsumfang

  • Abonniert den dMix-WebSocket (evt:"update"-Nachrichten wie {"key":"a.0.mix","value":0.73}).
  • Für jeden zugeordneten Schlüssel erstellt die Anwendung ein DI-/HiQnet-Datenpaket auf Basis einer Hex-Vorlage und sendet dieses per TCP an Ihr BSS-Gerät.
  • Stellt die Verbindung sowohl zum dMix-WebSocket als auch zur BSS-TCP-Sitzung bei Bedarf automatisch wieder her.

Konfiguration (IP-Adresse kann allgemein gehalten oder später festgelegt werden)

  • Legen Sie in der Datei config.example.json folgende Einstellungen fest:
    • dmix_ws_url: e.g. ws://dmix.local:8080/ws
    • bss_host: leave "127.0.0.1" for now; swap to your BLU device later
    • bss_port: 1023 (typical for London DI; change if you target raw HiQnet)
    • mappings: map dMix keys → frame templates (hex + tokens)

Unterstützte Vorlagenplatzhalter:

  • {VAL_F32_LE}{} → float32 little-endian
  • {{VAL_U8}} → 0–255 byte
  • {{VAL_I16_BE}}, {{VAL_I16_LE}} → 16-bit signed

Optionale lineare Skalierung pro Zuordnung:

"scale": {
  "mode": "linear",
  "in_min": 0.0, "in_max": 1.0,
  "out_min": -80.0, "out_max": 10.0
}

Beispiel für eine Zuordnung (Header und IDs werden entsprechend Ihrem Projekt angepasst)

{
  "key": "a.0.mix",
  "frame_template": "AA 55 12 34 56 {{VAL_F32_LE}} CC",
  "scale": {"mode":"linear","in_min":0.0,"in_max":1.0,"out_min":-80.0,"out_max":10.0}
},
{
  "key": "a.0.mute",
  "frame_template": "AA 55 12 34 57 {{VAL_U8}} CC"
}

The AA 55 ... CC bytes are placeholders—fill them using the London DI or HiQnet docs for your object/parameter.

Erstellen und Ausführen

cd dmix_hiqnet_bridge_v1
go build -o bridge main.go
./bridge -config ./config.example.json

Auf Wunsch kann ich außerdem Folgendes bereitstellen:

  • Einen DI-Prüfsummen-Platzhalter (Checksum Helper), falls Ihr Datenpaket eine Prüfsumme erfordert.
  • Einen BSS→dMix-Abfragepfad für die bidirektionale Synchronisation (Parameter auslesen und als evt:"update" an dMix zurücksenden).
  • Eine vorkonfigurierte Konfigurationsdatei, wenn Sie die Objekt- und Parameter-IDs der gewünschten Pegel- und Stummschaltungsblöcke bereitstellen.

Hier finden Sie eine Übersicht der gängigsten Installations-Audio-Systeme und der Möglichkeiten, wie dMix mit ihnen kommunizieren kann:

1. QSC Q-SYS

Marktanteil: Besonders stark vertreten in den Bereichen Corporate AV, Stadien, Flughäfen und Hotellerie.

Protokoll: QRC WebSocket-JSON (Port 1710) sowie Lua-Skripting innerhalb von Q-SYS Designer.

Status: Bereits unterstützt – Ihre dMix-WebSocket-Bridge in Kombination mit Lua-Skripten eignet sich hierfür ideal.

Next step: Package an official Q-SYS “dMix Plugin” (.qplug) for Designer.

2. BSS Soundweb London / HiQnet

Marktanteil: Stark im Bereich fest installierter Audiosysteme vertreten – älter, aber nach wie vor weit verbreitet.

Protokoll: London DI (TCP-Port 1023) und HiQnet (Port 3804).

Status: Bridge-Prototyp bereits umgesetzt (unsere HiQnet-Bridge).

Nächster Schritt: Bidirektionales Feedback hinzufügen und Parametervorlagen veröffentlichen.

3. Biamp Tesira / Audia

Marktanteil: Weit verbreitet in Unternehmenskonferenzräumen, Behörden und Bildungseinrichtungen.

Protokoll: Tesira Text Protocol (TTP) über TCP (Port 23).

• Einfache, menschenlesbare ASCII-Befehle wie:

SET "Room1_Mic1_Gain" 0.55
GET "Room1_Mic1_Mute"

Integration: Sehr einfach – dMix-WebSocket ⇄ TCP-Bridge zur Übersetzung von JSON ↔ TTP.

Attraktives Zielsystem: Die neuen AVB-Geräte von Biamp ergänzen sich hervorragend mit Ihrem AES67-Netzwerk.

Symetrix Radius / Prism / Edge

Marktanteil: Häufig in mittelgroßen Installationen wie Gotteshäusern und Bildungseinrichtungen anzutreffen.

Protokoll: SymNet Control Protocol (ASCII) über TCP (Port 48631).

• Beispiel: SET 12 0.75\r\n (wobei 12 die Steuerungs-ID darstellt).

Integration: Sehr einfache Zuordnung zu dMix-Schlüsseln (ähnlich wie bei unserer Q-SYS-Integration).

Niedrig hängende Frucht: Gute Gelegenheit für eine frühe Partnerschaft.

5. Peavey MediaMatrix NION

Marktanteil: Häufig in Stadien, großen Veranstaltungsstätten und auf Kreuzfahrtschiffen eingesetzt.

Protokoll: NWare Text Control (Telnet-ähnliche ASCII-Kommunikation) sowie SNMP.

Bridge: Ähnlich wie bei Biamp – ein JSON⇄Text-Übersetzer.

6. Atlas IED BlueBridge / BluBlox (umgelabelte BSS-Systeme)

Protokoll: Dasselbe London-DI-Protokoll, bereits zuvor beschrieben.

7. Extron DSP- und Steuerungsprozessoren

Marktanteil: Weit verbreitet in Bildungseinrichtungen, Unternehmen und Behörden.

Protokoll: SIS (Simple Instruction Set) ASCII über TCP oder serielle Schnittstellen.

Beispiel:

1*Vol!   (set volume)
1V!      (query volume)

Bridge: Kleiner dMix ⇄ SIS-Proxy zur Steuerung von Pegel- und Stummschaltungsfunktionen.

Ideal für Steuerungspanels in kleinen Besprechungs- und Konferenzräumen.

8. Crestron & AMX

Marktanteil: Weit verbreitet in professionellen Steuerungs- und Automatisierungssystemen für Unternehmen.

Protokoll: TCP/IP-ASCII, HTTP/JSON oder serielle Kommunikation mit Drittanbietergeräten.

Integrationsweg: Das Crestron-/AMX-Modul sendet HTTP- oder WebSocket-Befehle direkt an dMix (keine zusätzliche Bridge erforderlich).

Großer Vorteil: Veröffentlichen Sie einen Crestron SIMPL+-Treiber oder einen Crestron-HTML5-Treiber für dMix.

9. Dante-fähige DSP-Systeme (z. B. Powersoft, Lab Gruppen PLM+, Yamaha DME)

Marktanteil: Weit verbreitet in großen Veranstaltungs- und Performance-Locations.

Protokolle:

  • Dante Device Protocol (für die Verwaltung von Abonnements und Verbindungen)
  • Yamaha DME: proprietäre TCP-API.
  • Powersoft Armonía+: JSON API (port 5000)

Integration: Fokus auf AES67-/Dante-Interoperabilität sowie Pegel- und Szenenabruf über JSON oder OSC.

10.Allen & Heath dLive / Avantis (Installationsmodus)

Protokoll: AHNet TCP/UDP JSON (nicht offiziell dokumentiert, wird jedoch von der Director-App verwendet).

Eine experimentelle Integration für die szenenübergreifende Synchronisation in hybriden Systemen ist möglich.

11. Bose ControlSpace ESP / EX

Protocol: CSZ / ControlSpace Serial over Ethernet (CSP) — ASCII commands.

Beispiel:

SET 1 Gain 0.25

Ideal für die Synchronisation von Pegel- und Stummschaltungsfunktionen.

12. Harman BLU DA / Crown DCi / JBL Netzwerk-Endstufen

Protokoll: HiQnet sowie Harman Audio Architect JSON- und XML-Kommunikation (Port 3804).

Bereits durch Ihre HiQnet-Bridge unterstützt.

13. Rane HAL / RAD

Protokoll: Rane HAL ASCII über TCP (Port 4999).

Einfache Textbefehle, die sich problemlos auf JSON abbilden lassen.

14. Shure Microflex / P300 / IntelliMix

Protokoll: HTTP REST API + JSON, WebSocket updates for mutes, gains, meters.

Besonders saubere Integration – dMix kann Shure-Mikrofone direkt über REST spiegeln und steuern.

15. RTI / Control4 / Savant

Protokoll: Typically IP ASCII / HTTP JSON; these act as the master.

dMix kann dieselbe WebSocket-JSON-Schnittstelle bereitstellen (diese ist bereits vorhanden).

Zusammenfassungstabelle

Hersteller / Plattform Protokoll Port Integrationsaufwand
Q-SYS | QRC JSON (WebSocket) | 1710 | Vollständig integriert
BSS / HiQnetDI / 38041023 / 3804Prototype
Biamp TesiraTTP (ASCII)23Easy
SymetrixSymNet (ASCII)48631Easy
ExtronSIS (ASCII)variesEasy
CrestronHTTP / WebSocketanyEasy
BoseCSP ASCII1024Easy
ShureREST / WebSocket80 / 443Modern
PowersoftJSON5000Modern
RaneASCII4999Easy

Empfehlung: Diese Bridges sollten als Nächstes entwickelt werden.

  1. Biamp Tesira (TCP-Port 23) → das einfachste Zielsystem mit großem Marktpotenzial.
  2. Symetrix SymNet → schneller Erfolg, da das Integrationsmuster dem von Biamp sehr ähnlich ist.
  3. Shure P300 / MXA → moderne JSON-basierte Schnittstelle, ideal für professionelle Mikrofonarrays im Unternehmensumfeld.
  4. Extron SIS → integriert dMix in Unterrichtsräume, Besprechungsräume und Konferenzumgebungen.
  5. Crestron-/AMX-Module → erhöhen die Attraktivität für Systemintegratoren; Veröffentlichung in den jeweiligen Treiberbibliotheken wird empfohlen.

Hier finden Sie ein sofort einsatzbereites Paket mit minimalen Bridge-Vorlagen für die wichtigsten Installations-Audio-Plattformen. Alle Vorlagen sind an den dMix-WebSocket-Update-Stream angebunden und bewusst generisch gehalten, sodass Sie die jeweilige plattformspezifische Befehlssyntax einfach ergänzen können.

Download: dmix_installs_bridge_samples_v1.zip

Inhalt des Pakets (Ordnerstruktur)

  • tesira_ttp/ – Biamp Tesira (TTP over TCP)
    ASCII like SET "Mic1_Gain" {{VAL}} (you fill in instance/control names).
  • symetrix_symnet/ – Symetrix (TCP 48631)
    ASCII like SET <controlID> {{VAL}} (use Composer IDs).
  • extron_sis/ – Extron SIS (TCP/Seriell)
    Beispielmakros für Lautstärke- und Stummschaltungsfunktionen (gerätespezifisch).
  • crestron_amx_gateway/ – HTTP helper gateway
    Exposes /set endpoint so Crestron/AMX can call GET /set?a.0.mute=1 → forwards to dMix WS.
  • bose_csp/ – Bose ControlSpace (CSP ASCII)
    ASCII like SET 1 Gain {{VAL}}.
  • shure_rest/ – Shure (REST/JSON)
    HTTP PUT/PATCH with a json_template you define (MXA, P300, IntelliMix).
  • powersoft_json/ – Powersoft (generic JSON)
    HTTP POSTs with scaling to dB; adapt to your Armonía+/API layout.
  • rane_hal/ – Rane HAL (TCP 4999)
    ASCII control strings (fill per HAL programmer’s guide).
  • common/ – Gemeinsame Go-WebSocket-Hilfsbibliothek.

Jede Beispielvorlage enthält:

  • main.go – die kompakte Bridge-Anwendung.
  • config.example.json – set device IP/port + mappings
  • README.md – Hinweise und Informationen zur jeweiligen Zielplattform.

Erstellen und Ausführen (Beispiel)

cd tesira_ttp
cp config.example.json config.json  # edit for your IP, mappings
go build -o bridge main.go
./bridge -config ./config.json

Zuordnung und Skalierung

  • Ordnen Sie dMix-Schlüssel (a.N.mix, a.N.mute, a.N.pan, m.mix usw.) den jeweiligen Gerätebefehlen über command_template oder json_template zu.
  • Optional linear scaling converts 0..1 → dB/percent/etc.

Hier finden Sie ein v2-Paket, das jeder Bridge eine bidirektionale Rückmeldung hinzufügt, sodass dMix auch Statusänderungen übernimmt, die direkt auf externen DSP- oder Verstärkersystemen vorgenommen werden.

Download: dmix_installs_bridge_samples_v2_twoway.zip

Neu in Version 2 (Highlights)

  • Pro-Zuordnung konfigurierbare Feedback-Abfragen (ASCII oder REST) mit frei einstellbaren Abfrageintervallen.
  • Regex parsers for ASCII replies (Biamp, Symetrix, Extron, Bose, Rane).
  • JSON-path extraction for REST replies (Shure, Powersoft).
  • Sendet{"evt":"update","key":"…","value":…} zurück an Ihren dMix-WebSocket, sodass Benutzeroberfläche und Server stets synchron bleiben.
  • (If your backend expects a different envelope, tweak common/PushUpdate.)

Enthaltene Vorlagen mit bidirektionaler Synchronisation

  1. Biamp Tesira (TTP) – TCP (häufig Port 23)
    Beispiel für die Feedback-Konfiguration:
    "feedback": { "query": "GET \"Mic1_Gain\"", "interval_ms": 1000, "regex": "([-0-9.]+)" }
  2. Symetrix SymNet — TCP 48631, SET/GET <controlID> …
  3. Extron SIS – TCP/Seriell, gerätespezifische Makros; Beispiel für Abfragen und passende Regex-Ausdrücke enthalten.
  4. Bose ControlSpace (CSP ASCII) – TCP-basierte ASCII-Kommunikation mit einfachen GET-Beispielen.
  5. Rane HAL – TCP-Port 4999; Beispielbefehle für GET und SET sowie entsprechende Auswertungslogik enthalten.
  6. Shure (REST/JSON) — GET state with json_path (e.g., channels.1.gain) and PATCH/PUT for control.
  7. Powersoft (REST/JSON) – ähnlicher JSON-basierter Ansatz (Pegel in dB, Stummschaltung als Boolescher Wert).
  8. Crestron-/AMX-HTTP-Gateway – unverändert (fungiert als generisches WebSocket-Gateway; keine zyklische Abfrage erforderlich).

Verwendung

  1. Wählen Sie einen Ordner (z. B. tesira_ttp_tw) und kopieren Sie die Datei config.example.json nach config.json.
  2. Bearbeiten Sie die IP-Adresse, den Port, die command_template-Einträge sowie die Feedback-Einstellungen entsprechend Ihren konkreten Objekten und IDs.
  3. Erstellen und Ausführen:
go build -o bridge main.go
./bridge -config ./config.json

Beobachten Sie, wie die Werte in der dMix-Benutzeroberfläche durch die Feedback-Abfragen automatisch den Änderungen auf dem jeweiligen Gerät folgen.

Tipps

  • Verwenden Sie Skalierungsblöcke, um dMix 0..1 ➜ device units (dB, %).
  • Passen Sie interval_ms mit Bedacht an (typischerweise zwischen 500 und 2000 ms).
  • Falls Ihr Gerät eine Authentifizierung erfordert, fügen Sie im REST- oder ASCII-Code entsprechende Header oder Anmeldeschritte hinzu (lässt sich einfach erweitern).

Wir unterstützen Integratoren gerne mit weiteren Informationen und Anleitungen zur Integration des dMix128 in ihre bestehende Infrastruktur.