{
  "capabilities" : [
    {
      "group" : "reading",
      "id" : "channelNames",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "status" : "supported"
        },
        "sq" : {
          "note" : "From the app port’s parameter dump (336-byte channel blocks, per allen-heath-sq-tools); the CQ’s equivalent is live-verified",
          "status" : "unverified"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Channel names",
      "usedFor" : "Input list, wireless auto-linking, Claude's channel lookup"
    },
    {
      "group" : "reading",
      "id" : "channelColors",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "status" : "supported"
        },
        "sq" : {
          "note" : "Read from the app port by analogy with the CQ (index at +16) and shown in the CQ’s colour order, which the SQ may not share",
          "status" : "unverified"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Channel colours",
      "usedFor" : "Input tints, \"the blue mic\""
    },
    {
      "group" : "reading",
      "id" : "channelSourcePatch",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "status" : "supported"
        },
        "sq" : {
          "note" : "The app port reports the input patch; not decoded yet",
          "status" : "planned"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Input patch (source)",
      "usedFor" : "Source row, patched/unpatched filter, input categories"
    },
    {
      "group" : "reading",
      "id" : "liveChanges",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "status" : "supported"
        },
        "sq" : {
          "note" : "The SQ pushes every NRPN change on its MIDI channel. Built from A&H’s SQ MIDI Protocol issue 5 (the CQ’s is its subset, live-verified); not yet run against a real SQ",
          "status" : "unverified"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Live change feed",
      "usedFor" : "Instant fader/mute/mix updates instead of a poll"
    },
    {
      "group" : "meters",
      "id" : "channelMeters",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "status" : "supported"
        },
        "sq" : {
          "note" : "Not in the MIDI protocol; the app port streams meters over UDP (format not decoded), and USB audio carries the inputs",
          "status" : "planned"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Channel input meters",
      "usedFor" : "Input levels, activity, level history, signal webhooks, reference-mic SPL"
    },
    {
      "group" : "meters",
      "id" : "channelOutputMeters",
      "support" : {
        "avantis" : {
          "note" : "The Avantis meters every input before its fader, at whichever point its console-wide meter setting picks — none of them after the fader",
          "status" : "unavailable"
        },
        "cq" : {
          "status" : "supported"
        },
        "sq" : {
          "note" : "The SQ’s MIDI protocol carries no meters",
          "status" : "unavailable"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "note" : "The X32 meters every channel’s input and its gate and compressor in bulk, but a post-fader level only for the one selected channel",
          "status" : "unavailable"
        }
      },
      "title" : "Channel output meters",
      "usedFor" : "Route protection's own-insert watch"
    },
    {
      "group" : "meters",
      "id" : "dynamicsMeters",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "The meter stream carries the compressor’s gain reduction, but the app shows gain reduction in the processing editor, which a CQ doesn’t get",
          "status" : "unavailable"
        },
        "sq" : {
          "note" : "The SQ’s MIDI protocol carries no meters",
          "status" : "unavailable"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Gate / compressor meters",
      "usedFor" : "Gain-reduction meters in the channel editor"
    },
    {
      "group" : "meters",
      "id" : "busMeters",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "The meter stream carries Main LR (mapped); the Outs and FX aren’t mapped yet",
          "status" : "planned"
        },
        "sq" : {
          "note" : "The SQ’s MIDI protocol carries no meters",
          "status" : "unavailable"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Bus meters",
      "usedFor" : "Stream / building feed meters, route protection's bus watch"
    },
    {
      "group" : "meters",
      "id" : "rta",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "The meter stream carries four 31-band spectra, likely the CQ’s own RTA; not mapped yet",
          "status" : "planned"
        },
        "sq" : {
          "note" : "The SQ’s MIDI protocol carries no meters",
          "status" : "unavailable"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Console RTA",
      "usedFor" : "Frequency balance from the board"
    },
    {
      "group" : "mix",
      "id" : "channelFader",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "status" : "supported"
        },
        "sq" : {
          "note" : "Built from A&H’s SQ MIDI Protocol issue 5 (the CQ’s is its subset, live-verified); not yet run against a real SQ",
          "status" : "unverified"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Channel faders",
      "usedFor" : "Scene capture/recall fades, drift, Claude's adjust"
    },
    {
      "group" : "mix",
      "id" : "channelMute",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "status" : "supported"
        },
        "sq" : {
          "note" : "Built from A&H’s SQ MIDI Protocol issue 5 (the CQ’s is its subset, live-verified); not yet run against a real SQ",
          "status" : "unverified"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Channel mutes",
      "usedFor" : "Scene capture/recall, drift, turn-off"
    },
    {
      "group" : "mix",
      "id" : "channelPan",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "status" : "supported"
        },
        "sq" : {
          "note" : "Built from A&H’s SQ MIDI Protocol issue 5 (the CQ’s is its subset, live-verified); not yet run against a real SQ",
          "status" : "unverified"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Channel pan",
      "usedFor" : "Channel editor, players"
    },
    {
      "group" : "mix",
      "id" : "dcaMasters",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "DCA 1–4: levels read and pushed live; level writes not yet tried. Its mute is worked out from its members (who’s in it comes from the app port), and a scene carries its level only — see below",
          "status" : "unverified"
        },
        "sq" : {
          "note" : "DCA 1–8 masters and mutes; a scene carries their levels only, for now (see below). Built from A&H’s SQ MIDI Protocol issue 5 (the CQ’s is its subset, live-verified); not yet run against a real SQ",
          "status" : "unverified"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "DCA masters",
      "usedFor" : "Scene DCAs, Mixes section"
    },
    {
      "group" : "mix",
      "id" : "dcaMuteState",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "On a CQ a DCA’s mute is an action on its members: it mutes or unmutes every one, whatever each was, and reads as muted only while all of them are (mute groups too; checked on a CQ-18T). The channel mutes already say it all, so scenes carry those",
          "status" : "unavailable"
        },
        "sq" : {
          "note" : "Not known yet whether an SQ’s DCA mute is a state of its own or, as on a CQ, an action on its members. Until an SQ is checked, scenes leave DCA mutes to the channel mutes — writing one could unmute channels a scene muted",
          "status" : "planned"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "DCA mutes of their own",
      "usedFor" : "Scenes recall a DCA's mute apart from its channels'"
    },
    {
      "group" : "mix",
      "id" : "muteGroups",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "Mute groups 1–4: like a DCA’s, the mute acts on the members, so its state is worked out from theirs (membership from the app port; a get always says off, A&H ID-1878). Writes not yet tried; no names",
          "status" : "unverified"
        },
        "sq" : {
          "note" : "Mute groups 1–8 (no names). Built from A&H’s SQ MIDI Protocol issue 5 (the CQ’s is its subset, live-verified); not yet run against a real SQ",
          "status" : "unverified"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Mute groups",
      "usedFor" : "Mixes section"
    },
    {
      "group" : "mix",
      "id" : "busMasters",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "Out 1–6 masters and mutes, FX 1–4 returns. Read live on a CQ-18T; writes use the same NRPN sets as the verified faders but haven’t been tried",
          "status" : "unverified"
        },
        "sq" : {
          "note" : "Aux 1–12 masters and mutes, FX 1–4 returns. Built from A&H’s SQ MIDI Protocol issue 5 (the CQ’s is its subset, live-verified); not yet run against a real SQ",
          "status" : "unverified"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Mix (bus) masters",
      "usedFor" : "Mixes section, bus editor, building-feed trim"
    },
    {
      "group" : "mix",
      "id" : "busSends",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "status" : "supported"
        },
        "sq" : {
          "note" : "Built from A&H’s SQ MIDI Protocol issue 5 (the CQ’s is its subset, live-verified); not yet run against a real SQ",
          "status" : "unverified"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Sends to mixes",
      "usedFor" : "Scene effect sends, players, send rows"
    },
    {
      "group" : "mix",
      "id" : "busSendSwitches",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "A CQ send has no on/off switch — only its level",
          "status" : "unavailable"
        },
        "sq" : {
          "note" : "The SQ’s assignments: each send’s on/off. Built from A&H’s SQ MIDI Protocol issue 5 (the CQ’s is its subset, live-verified); not yet run against a real SQ",
          "status" : "unverified"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Send on/off switches",
      "usedFor" : "Channel routes, talkback, route buttons"
    },
    {
      "group" : "mix",
      "id" : "mainFeeds",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "No LR-assign parameter in the CQ’s MIDI protocol",
          "status" : "unavailable"
        },
        "sq" : {
          "note" : "The SQ’s LR assignment per channel. Built from A&H’s SQ MIDI Protocol issue 5 (the CQ’s is its subset, live-verified); not yet run against a real SQ",
          "status" : "unverified"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Main-mix assigns",
      "usedFor" : "Channel routes (ears-only talkback)"
    },
    {
      "group" : "preamp",
      "id" : "preampGain",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "The CQ’s MIDI protocol has no parameter for it. Its app port reports gain, 48 V and polarity (mapped on a CQ-18T), but only as a read",
          "status" : "unavailable"
        },
        "sq" : {
          "note" : "Not in the SQ’s MIDI protocol; its app protocol carries it (others have reverse-engineered it), not attempted here",
          "status" : "unavailable"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Preamp gain",
      "usedFor" : "Preamp rows, pop-safe phantom, turn-off/on, players"
    },
    {
      "group" : "preamp",
      "id" : "phantomPower",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "The CQ’s MIDI protocol has no parameter for it. Its app port reports gain, 48 V and polarity (mapped on a CQ-18T), but only as a read",
          "status" : "unavailable"
        },
        "sq" : {
          "note" : "Not in the SQ’s MIDI protocol; its app protocol carries it (others have reverse-engineered it), not attempted here",
          "status" : "unavailable"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "48 V phantom",
      "usedFor" : "Pop-safe phantom toggle, turn-off/on"
    },
    {
      "group" : "preamp",
      "id" : "trimAndPolarity",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "The CQ’s MIDI protocol has no parameter for it. Its app port reports gain, 48 V and polarity (mapped on a CQ-18T), but only as a read",
          "status" : "unavailable"
        },
        "sq" : {
          "note" : "Not in the SQ’s MIDI protocol; its app protocol carries it (others have reverse-engineered it), not attempted here",
          "status" : "unavailable"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Trim & polarity",
      "usedFor" : "Channel editor input page, players"
    },
    {
      "group" : "processing",
      "id" : "channelProcessing",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "The CQ’s MIDI protocol has no parameter for it",
          "status" : "unavailable"
        },
        "sq" : {
          "note" : "Not in the SQ’s MIDI protocol; its app protocol carries it (others have reverse-engineered it), not attempted here",
          "status" : "unavailable"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Channel EQ / gate / dynamics",
      "usedFor" : "Channel editor, Presets for People, Claude's EQ/dynamics tools"
    },
    {
      "group" : "processing",
      "id" : "busProcessing",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "The CQ’s MIDI protocol has no parameter for it",
          "status" : "unavailable"
        },
        "sq" : {
          "note" : "Not in the SQ’s MIDI protocol; its app protocol carries it (others have reverse-engineered it), not attempted here",
          "status" : "unavailable"
        },
        "wing" : {
          "note" : "Bus EQ/dynamics writes haven’t been tried on the live board yet — it had no unnamed bus to test on",
          "status" : "unverified"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Bus EQ / dynamics",
      "usedFor" : "Bus editor"
    },
    {
      "group" : "processing",
      "id" : "channelInserts",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "The CQ’s MIDI protocol has no parameter for it",
          "status" : "unavailable"
        },
        "sq" : {
          "note" : "Not in the SQ’s MIDI protocol; its app protocol carries it (others have reverse-engineered it), not attempted here",
          "status" : "unavailable"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Channel inserts",
      "usedFor" : "Channel routes, route protection, insert FX"
    },
    {
      "group" : "effects",
      "id" : "effects",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "FX 1–4, named for the engine loaded (Easy Verb, Echo Verb …, read from the app port): sends ride a scene fade (live-verified); returns read live, return writes not yet tried. The CQ’s own FX master fader is the send master (4F 0D…), which the app doesn’t model",
          "status" : "unverified"
        },
        "sq" : {
          "note" : "FX 1–4 sends and returns (the SQ has 8 returns; 5–8 aren’t modelled). Built from A&H’s SQ MIDI Protocol issue 5 (the CQ’s is its subset, live-verified); not yet run against a real SQ",
          "status" : "unverified"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Effects (sends & returns)",
      "usedFor" : "Effect cards, scene FX sends/returns"
    },
    {
      "group" : "effects",
      "id" : "effectParams",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "The CQ’s MIDI protocol has no parameter for it",
          "status" : "unavailable"
        },
        "sq" : {
          "note" : "Not in the SQ’s MIDI protocol; its app protocol carries it (others have reverse-engineered it), not attempted here",
          "status" : "unavailable"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Effect parameters",
      "usedFor" : "FX editor, scene FX parameters, delay tempo"
    },
    {
      "group" : "io",
      "id" : "usbRouting",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "USB 1–16 are fixed to channels 1–16; the stereo pairs on 17–24 are assigned on the console",
          "status" : "unavailable"
        },
        "sq" : {
          "note" : "The SQ’s USB patch is set on the console (I/O › Outputs); not in its MIDI protocol",
          "status" : "unavailable"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "USB output routing",
      "usedFor" : "Post-EQ spectrum taps, a take patching a free USB output"
    },
    {
      "group" : "io",
      "id" : "channelRecording",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "Channels 1–16 from USB 1–16 (AHUsb), at the USB Source Point set to match the console; built from A&H’s user guide, not yet recorded from a CQ",
          "status" : "unverified"
        },
        "sq" : {
          "note" : "Channels 3–32 from the SQ’s standard USB patch — direct outs 3–32 on USB 3–32, Main LR on 1–2 — at the direct-out point set to match the console; a changed patch isn’t seen. Built from A&H’s SQ MIDI Protocol issue 5 (the CQ’s is its subset, live-verified); not yet run against a real SQ",
          "status" : "unverified"
        },
        "wing" : {
          "note" : "Each channel from the Wing’s 48-channel USB feed — raw where its routing sends the input — and a free USB output patched for one it doesn’t send; not yet run against the board",
          "status" : "unverified"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Channel recording",
      "usedFor" : "Channel Recorder takes, songs recording themselves"
    },
    {
      "group" : "io",
      "id" : "channelPlayback",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "A channel plays USB audio only once its Input Source is switched to USB/SD on the console (CONFIG › Inputs, stored in scenes) — the MIDI protocol can’t switch it",
          "status" : "unavailable"
        },
        "sq" : {
          "note" : "A channel plays USB audio only once its source is switched to the USB port on the console (Preamp › Source Select, or an input patch library) — the MIDI protocol can’t switch it",
          "status" : "unavailable"
        },
        "wing" : {
          "note" : "Each track into its channel’s ALT source, flipping only that switch; not yet run against the board",
          "status" : "unverified"
        },
        "x32" : {
          "status" : "supported"
        }
      },
      "title" : "Playback into channels",
      "usedFor" : "Playing a take back through its channels"
    },
    {
      "group" : "io",
      "id" : "socketMove",
      "support" : {
        "avantis" : {
          "status" : "supported"
        },
        "cq" : {
          "note" : "Input and output patching is set on the console (CONFIG › Inputs / Outputs) — the MIDI protocol can’t change it",
          "status" : "unavailable"
        },
        "sq" : {
          "note" : "Socket patching is set on the console (I/O › Inputs / Outputs) — the MIDI protocol can’t change it",
          "status" : "unavailable"
        },
        "wing" : {
          "status" : "supported"
        },
        "x32" : {
          "note" : "An X32 patches inputs to channels in blocks of eight, and its names and colours live on the channel — a move is the channel’s source and the output patch; not built yet",
          "status" : "planned"
        }
      },
      "title" : "Move a cable to another socket",
      "usedFor" : "Moving an input or output socket — its name, colour, preamp and every patch from it go along"
    }
  ],
  "consoles" : [
    {
      "blurb" : "Live meters, channel status, scene recall, and effects on the console.",
      "buses" : 16,
      "channels" : 40,
      "dcas" : 16,
      "id" : "wing",
      "muteGroups" : 8,
      "name" : "Behringer Wing",
      "shortName" : "Wing"
    },
    {
      "blurb" : "Faders, mutes, sends, DCAs and scene fades on a CQ-12T / 18T / 20B over its MIDI protocol; names and colours from its app port.",
      "buses" : 10,
      "channels" : 20,
      "dcas" : 4,
      "id" : "cq",
      "muteGroups" : 4,
      "name" : "Allen & Heath CQ-18T",
      "shortName" : "CQ-18T"
    },
    {
      "blurb" : "Faders, mutes, sends, routes, DCAs and scene fades on an SQ-5 / 6 / 7 over its MIDI protocol; names and colours from its app port.",
      "buses" : 16,
      "channels" : 48,
      "dcas" : 8,
      "id" : "sq",
      "muteGroups" : 8,
      "name" : "Allen & Heath SQ",
      "shortName" : "SQ"
    },
    {
      "blurb" : "Faders, mutes, pans, sends, routes, DCAs, preamps, meters and scene fades on an X32 (or M32) over OSC, with its USB channels for the recorder.",
      "buses" : 16,
      "channels" : 40,
      "dcas" : 8,
      "id" : "x32",
      "muteGroups" : 6,
      "name" : "Behringer X32",
      "shortName" : "X32"
    },
    {
      "blurb" : "Faders, mutes, pans, sends, routes, DCAs, mute groups, preamps, meters and scene fades on an Avantis or Avantis Solo, over the protocol Avantis Director speaks.",
      "buses" : 54,
      "channels" : 96,
      "dcas" : 16,
      "id" : "avantis",
      "muteGroups" : 8,
      "name" : "Allen & Heath Avantis",
      "shortName" : "Avantis"
    }
  ],
  "groups" : [
    {
      "capabilities" : [
        "channelNames",
        "channelColors",
        "channelSourcePatch",
        "liveChanges"
      ],
      "id" : "reading",
      "title" : "Reading the board"
    },
    {
      "capabilities" : [
        "channelMeters",
        "channelOutputMeters",
        "dynamicsMeters",
        "busMeters",
        "rta"
      ],
      "id" : "meters",
      "title" : "Meters"
    },
    {
      "capabilities" : [
        "channelFader",
        "channelMute",
        "channelPan",
        "dcaMasters",
        "dcaMuteState",
        "muteGroups",
        "busMasters",
        "busSends",
        "busSendSwitches",
        "mainFeeds"
      ],
      "id" : "mix",
      "title" : "The mix (scenes)"
    },
    {
      "capabilities" : [
        "preampGain",
        "phantomPower",
        "trimAndPolarity"
      ],
      "id" : "preamp",
      "title" : "Preamp"
    },
    {
      "capabilities" : [
        "channelProcessing",
        "busProcessing",
        "channelInserts"
      ],
      "id" : "processing",
      "title" : "Processing"
    },
    {
      "capabilities" : [
        "effects",
        "effectParams"
      ],
      "id" : "effects",
      "title" : "Effects"
    },
    {
      "capabilities" : [
        "usbRouting",
        "channelRecording",
        "channelPlayback",
        "socketMove"
      ],
      "id" : "io",
      "title" : "I/O"
    }
  ],
  "integrations" : [
    {
      "blurb" : "Live meters, channel status, scene recall, and effects on the console.",
      "category" : "console",
      "categoryTitle" : "Console",
      "consoles" : {
        "avantis" : true,
        "cq" : true,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "wing",
      "name" : "Behringer Wing",
      "needs" : [

      ]
    },
    {
      "blurb" : "Faders, mutes, sends, DCAs and scene fades on a CQ-12T / 18T / 20B over its MIDI protocol; names and colours from its app port.",
      "category" : "console",
      "categoryTitle" : "Console",
      "consoles" : {
        "avantis" : true,
        "cq" : true,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "cq",
      "name" : "Allen & Heath CQ",
      "needs" : [

      ]
    },
    {
      "blurb" : "Faders, mutes, sends, routes, DCAs and scene fades on an SQ-5 / 6 / 7 over its MIDI protocol; names and colours from its app port.",
      "category" : "console",
      "categoryTitle" : "Console",
      "consoles" : {
        "avantis" : true,
        "cq" : true,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "sq",
      "name" : "Allen & Heath SQ",
      "needs" : [

      ]
    },
    {
      "blurb" : "Faders, mutes, pans, sends, routes, DCAs, preamps, meters and scene fades on an X32 (or M32) over OSC, with its USB channels for the recorder.",
      "category" : "console",
      "categoryTitle" : "Console",
      "consoles" : {
        "avantis" : true,
        "cq" : true,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "x32",
      "name" : "Behringer X32",
      "needs" : [

      ]
    },
    {
      "blurb" : "Faders, mutes, pans, sends, routes, DCAs, mute groups, preamps, meters and scene fades on an Avantis or Avantis Solo, over the protocol Avantis Director speaks.",
      "category" : "console",
      "categoryTitle" : "Console",
      "consoles" : {
        "avantis" : true,
        "cq" : true,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "avantis",
      "name" : "Allen & Heath Avantis",
      "needs" : [

      ]
    },
    {
      "blurb" : "Battery, RF and audio health for SLX-D / QLX-D / ULX-D receivers.",
      "category" : "wireless",
      "categoryTitle" : "Wireless Mics",
      "consoles" : {
        "avantis" : true,
        "cq" : true,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "shure",
      "name" : "Shure Wireless",
      "needs" : [

      ]
    },
    {
      "blurb" : "Measure auditorium SPL and frequency balance from a dedicated audio feed.",
      "category" : "measurement",
      "categoryTitle" : "Room Measurement",
      "consoles" : {
        "avantis" : true,
        "cq" : true,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "audioMeter",
      "name" : "Audio Meter (SPL / RTA)",
      "needs" : [

      ]
    },
    {
      "blurb" : "Record channels from the console’s audio feed (USB or Dante) to disk — a snippet on demand, or every song — and play them back through the console to try EQs on.",
      "category" : "recording",
      "categoryTitle" : "Recording",
      "consoles" : {
        "avantis" : true,
        "cq" : true,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "channelRecorder",
      "name" : "Channel Recorder",
      "needs" : [
        "channelRecording"
      ]
    },
    {
      "blurb" : "Trigger scene recalls from any MIDI source — a keyboard, ProPresenter, the console's MIDI out.",
      "category" : "showControl",
      "categoryTitle" : "Show Control",
      "consoles" : {
        "avantis" : true,
        "cq" : true,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "midi",
      "name" : "MIDI Control",
      "needs" : [

      ]
    },
    {
      "blurb" : "Trigger scenes from slide changes and countdown timers on the presentation machine.",
      "category" : "showControl",
      "categoryTitle" : "Show Control",
      "consoles" : {
        "avantis" : true,
        "cq" : true,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "propresenter",
      "name" : "ProPresenter",
      "needs" : [

      ]
    },
    {
      "blurb" : "Connect Planning Center to pull the service plan, songs, and people.",
      "category" : "planning",
      "categoryTitle" : "Planning & Scheduling",
      "consoles" : {
        "avantis" : true,
        "cq" : true,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "pco",
      "name" : "Planning Center",
      "needs" : [

      ]
    },
    {
      "blurb" : "Remote-control the Spotify app playing walk-in music: playlist, play/pause, skip.",
      "category" : "showControl",
      "categoryTitle" : "Show Control",
      "consoles" : {
        "avantis" : true,
        "cq" : true,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "spotify",
      "name" : "Spotify",
      "needs" : [

      ]
    },
    {
      "blurb" : "POST to LAN devices when a channel starts or stops carrying signal.",
      "category" : "automation",
      "categoryTitle" : "Automation",
      "consoles" : {
        "avantis" : true,
        "cq" : true,
        "sq" : false,
        "wing" : true,
        "x32" : true
      },
      "id" : "webhooks",
      "name" : "Signal Webhooks",
      "needs" : [
        "channelMeters"
      ]
    },
    {
      "blurb" : "Let a button box on the network hold a channel on a saved route — a handheld to in-ears only.",
      "category" : "automation",
      "categoryTitle" : "Automation",
      "consoles" : {
        "avantis" : true,
        "cq" : false,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "routeButtons",
      "name" : "Route Buttons",
      "needs" : [
        "busSendSwitches"
      ]
    },
    {
      "blurb" : "Talkback Buttons route a mic to its Talkback route while held; a MacroPad, by USB or Wi-Fi, flashes who's calling.",
      "category" : "showControl",
      "categoryTitle" : "Show Control",
      "consoles" : {
        "avantis" : true,
        "cq" : false,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "talkbackPad",
      "name" : "Talkback Pad",
      "needs" : [
        "busSendSwitches"
      ]
    },
    {
      "blurb" : "Let Claude on this Mac see the board and measure what a channel is doing — you choose what it may touch. Set-up steps appear right here once it’s on.",
      "category" : "automation",
      "categoryTitle" : "Automation",
      "consoles" : {
        "avantis" : true,
        "cq" : true,
        "sq" : true,
        "wing" : true,
        "x32" : true
      },
      "id" : "mcp",
      "name" : "Claude (MCP)",
      "needs" : [

      ]
    }
  ],
  "schema" : 1
}
