Channel Groups are an extremely powerful feature of Q-Sys. Despite being labelled as a "BETA" component, they work entirely as expected (we will cover edge cases below).
Channel Groups act similarly to containers - you can embed other components within them. What makes channel groups unique is that they virtually copy the embedded components for each "channel". A "channel" can have any number of audio & control pins.
A standard use case would be a set of audio input processsing. Rather than having all the components copied for each channel, you can put them inside a channel group once. The following images are functionality identical.
You can then select one or more channels within the channel group to manipulate. Notably, if you drag a control from those components out into your design, it will change when you select your channels. In the following video, I have set a different PEQ for each one of the channels. Observe the behaviour of the controls in the design.
Note that by turning off "Exclusive", you can select & adjust multiple channels at once. If you select two channels that have two different values for their controls, the inconsistent controls will appear with an orange warning.
You cannot drag the channel selection buttons into the design. But you CAN adjust the selected channel from the Channel Groups control pins. You have to enable them from "Properties -> Enable Control Pins". From there, you can change the selected channel based on the state of your design. The standard use case is to wire it up to a selector, like so:
Now that we've put all the pieces together, we can unlock the true power of channel groups. We can change the selected channel from a control, and the controls within the channel group change dynamically based on the selected channel. Consider a use case where you need to build a mixing UCI for a project. It would expose the controls for all standard processing to the end user.
- Without channel groups, you would need to create a separate layer for each channel, and then map the controls for that channel to the appropriate layer on the UCI. This can be a very time consuming process, and increases the chance that a control mapping gets misclicked.
- With channel groups, you only have to map the controls one single time for any quantity of channels. This decreases programming time and UCI complexity. Instead of having buttons that switch layers, you just have buttons that switch the selected channels.
This line of thinking can be expanded for control components in addition to audio components. Consider the following example: we want to provide the user with the ability to adjust the preamps of their channels. The catch is that some of the preamps are being adjusted via plugins (in this example, Shure AD4D) and others are the preamps on the Q-Sys core. This means that the preamps do not necessarily have the same range. We can get around this by adjusting the controls via their position, and then displaying the result back to the user with a text field.