v1.0.6: Allen & Heath console support (Qu, SQ, Avantis/dLive/GLD) and discovery/DCA fixes#19
Merged
Conversation
Qu shares the SQ MIDI-over-TCP control path (same A&H 'Soft' family, port 51325); all Qu models run the same 32-channel DSP and differ only in fader count. Adds ConsoleType::Qu16/24/32, capabilities, QuProtocol (reusing the SQ MIDI base), ProtocolFactory wiring, protocolId lookups, and allSupported so the console picker lists them. Verified against the official A&H SQ MIDI Protocol.
Recovered the real discovery wire contracts from the reference firmware and corrected every probe: - WING: raw 'WING?' to UDP 2222 (was an OSC probe the console ignores); parse the 'WING,<ip>,<name>,<model>,<serial>,<fw>' reply. - X32/M32: parse all OSC /xinfo args so M32 is no longer misdetected as X32. - Yamaha: replace the non-functional OSC/8000 probe with the real YSDP datagram on UDP 54330 (control stays SCP/TCP 49280). - Allen & Heath SQ/dLive/Avantis: two-stage discovery - broadcast the per-family 'Find' strings to UDP 51320, then an async TCP identify (SQ 51326 binary, dLive/Avantis 51321 SysEx) to resolve the model. Adds a raw-datagram + TCP-identify probe mechanism to ConsoleDiscoveryService (AnyIPv4 bind, per-interface broadcast, unicast probeHost fallback), a testable processDatagram seam, and a full discovery test suite.
Verified against the official A&H SQ MIDI Protocol (Firmware V2.0.3): - Scene recall was emitting a GLD-style SysEx; the SQ/Qu/GLD MIDI interface uses Bank Select (CC0) + Program Change (1-based scene, banks of 128). e.g. scene 156 -> B0 00 01 C0 1B. - DCA fader NRPN LSB base was 0x20 (invented); the Level table gives 0x67 (DCA1=0x67..DCA8=0x6E). Input level (MSB 0x40), input/DCA mutes, and the 4-CC NRPN framing were already correct and are now covered by byte-exact tests. The fader value is a 14-bit position; the console applies its own NRPN Fader Law (Linear/Audio Taper), so the linear encoding is the documented behaviour.
…Live/GLD) Replaces the invented [len][type][float] stub with the actual A&H property protocol recovered byte-exact from the reference firmware: - F0..F7 length-prefixed framing; subscribe-by-name handshake that learns each object's 2-byte handle from the reply; SET frames F0 00 00 <handle> 00 00 <op> <idx> 00 <disc> <val> F7. - Channel level/mute, DCA mute, scene recall with per-console opcodes (Avantis 0x25/0x26, dLive 0x30/0x31), firmware-gated variants (+6/+8), and dLive bank/spill addressing (op 0x12). - Exact per-0.1 dB lookup tables (not a formula), distinct per family. - GLD moved onto its real property protocol (op 0x16, own dB table) with a secondary MIDI socket for scene-recall MMC, matching the reference two-socket design; capabilities updated to ACE-TCP 51321. - DCA fader dropped (receive-only in the reference). Firmware wired from the discovered console. Byte-exact tests for every frame and both dB tables.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.