Control Functions

Q-SYS Control 101 Training : Control Components

3 ) Simple Communication

12m 49s

4 ) Feature License Activation

4m 12s

5 ) Block Controller

19m 7s

7 ) Flow Control

34m 20s

8 ) Control 101 Conclusion

1m 42s

Lesson Description

Control Functions 7m 32s

Manipulate your controls using nearly 30 different options available in the Control Functions component.

Video Transcript

Control Functions 7m 32s
0:08
Now that we’ve explored the behavior of Control Pins and some of the basic
0:11
Control Components, it’s time to unleash the real workhorse of this programming
0:15
method: the Control Functions.
0:18
If you’re familiar with using Spreadsheets at all, you could consider the Control
0:22
Function component to be analogous to adding a formula in the cell of a spreadsheet.
0:27
Perhaps the cell’s formula adds up the cells above it, or applies a multiplier in order
0:32
to calculate tax. This same concept can be applied to controls in your Q-SYS design.
0:37
This component can be configured to perform a number of different types of functions,
0:41
including conditional statements, comparative validation, and-gates
0:45
and or-gates, just to name a few. Let’s drag one into the Schematic to start exploring its potential.
0:51
You might notice immediately that it isn’t named Control Function in your
0:55
Schematic. Its name is now “Value Sum,” which is simply the default selected
1:00
function. If you double-click this component, you’ll also notice that it has no
1:04
control panel at all. There’s nothing to adjust, no controls to set, this component
1:08
has a single job to do and it will do it, no matter what. You decide what that job
1:14
is by choosing a function here in the Properties. For some functions you may be
1:19
able to adjust how many inputs it has, while there are other functions
1:22
that require a specific number of channels.
1:25
There are about 30 different functions for you to choose from, and you may
1:29
notice that a bunch of them are Value based, and a bunch are Position based
1:33
– which means that these functions will perform their actions based on the
1:37
.Value or .Position parameter of the incoming controls. There are also a bunch
1:42
with the word “Logic” in their name – these ones are conditional statements,
1:47
which output either a true or false based on whether or not their conditions
1:51
are met by in the incoming controls.
1:54
Let’s take a look at some of these in action. I’m going to jump to some simple examples
1:58
that I’ve already setup. First up is the default function, Value Sum. This does exactly
2:03
what it sounds like, it adds up the Values of its incoming controls.
2:08
Here I have some custom integer knobs, and you can see that when I make
2:11
changes to them, it will add their values together and output that here. Congratulations,
2:16
you have the world’s most expensive calculator! Don’t forget that toggle buttons and
2:21
LEDS have values of 0 and 1, so you could also use a Value Sum function to add these as well.
2:27
For instance, here we have a Paging System and each Zone has an LED that will illuminate
2:33
when an announcement is playing in that area. You could use a Value Sum
2:38
to quickly display how many Zones are currently busy in your venue.
2:42
Some other basic mathematical functions that you could apply to Values include Value Product,
2:48
Value Quotient, Value Square, Value Square Root, Value Absolute Value, Value Average, etc.
2:56
There are also comparative functions, such as Value Maximum,
3:00
which will only output the greatest of all incoming Values.
3:04
Most of the Positional functions are the same as the Value functions, except
3:08
they look at a control’s Position. This may seem like a semantic difference at
3:12
times, but let me show you an example of how it could get you into trouble.
3:16
Here we have different types of decibel knobs – these two are Level Knobs,
3:20
while this one is a Level fader w/taper. They all have the same range but the
3:25
tapered fader scales its sensitivity so that the top of the range is much more
3:29
spread out than the bottom of the range. This makes it easier for someone to
3:33
make subtle changes here in the most audible range. If you passed the
3:38
greater of these two inputs, you’ll get different results if you use a Value or
3:42
Positional function. A Value Maximum will send the numerical decibel – see,
3:47
-20dB here equals -20dB here. But a Positional Maximum will look at the control’s position,
3:54
which is always on a range of 0 to 1, regardless of the Values within.
3:58
This appears to be a position of about .75, so the output’s position is also .75, but look at the
4:05
difference in Values. .75 on a tapered fader equals -2.85 dB, which is a whole
4:12
lot louder than -20dB. So be sure to pay attention to exactly what aspect of the input controls
4:19
you want to apply to the output controls.
4:22
Next let’s look at some of the Logic functions. The only possible outputs here
4:27
are a string of true or false, which is the same as a Value of 1 or 0. The inputs
4:32
should also all be true/false, so this is really designed to compare LEDs, toggle
4:37
buttons, and momentary buttons. “Logic AND” is an and-gate, meaning that it
4:42
will only output a Value of 1 if every single one of its inputs also has a Value of
4:47
1. 1 AND 2 AND 3 AND 4 – that satisfies the conditions. If you want to activate
4:54
a control only after a number of other criteria have already been met, you
4:58
might use Logic AND. Here we have a Softphone Controller, and we’ve exposed
5:03
the “Off Hook” and “Ringing(state)” LEDs. So if someone is already using the telephone,
5:09
meaning it’s “Off Hook” and a new caller dials in, meaning the phone is in the act of Ringing,
5:15
we can use a Logic AND to activate a special ring tone to tell the user that someone else is
5:20
trying to call in. If someone dials in and the phone is NOT off the hook, this does not satisfy the
5:27
condition of Logic AND so the special ring tone won’t be activated, and the
5:30
Softphone’s normal ringtone will suffice.
5:33
The Logic OR gate is the opposite of this – if ANY of its inputs has a Value of 1,
5:39
then the Logic OR will output a Value of 1. This works more like a funnel, in
5:44
which any number of inputs can be combined to have the same effect. There
5:48
are other variations of Logic functions – some that will only output a 1 when
5:52
an even number of inputs are 1, or when an odd number of inputs are 1, or
5:56
when a single input is 1. There’s also the Logic NOT, which outputs a 1
6:01
when its input is NOT 1, effectively inverting a 0 to a 1, or a 1 to a 0.
6:07
Since Trigger Buttons don’t have Values, Strings, or Positions, they generally
6:12
won’t be compatible with any of these Control Functions. The exception is the
6:17
Trigger Combiner, which connects multiple different triggers through an or-gate,
6:22
allowing any of the original triggers to activate the output trigger. This is much
6:27
like the Logic OR function, except it works with Triggers.
6:30
A word of warning, there are a couple of functions in here whose names
6:34
might not be self-explanatory. Do you know what “LOGIC NOT XOR” means?
6:40
Do you intuitively know the difference between “Value Maximum” and
6:44
“Value Greater”? When you first start using these – probably not. Don’t fret,
6:49
just press F1 to bring up the Help file, and you’ll find that each function is succinctly
6:54
explained with a single sentence. Value Greater doesn’t output the greater Value,
6:59
it outputs a 1 when Input 1’s Value is greater than Input 2. Got it. If you spend
7:05
a few minutes reading through these descriptions, you’ll quickly understand
7:08
all the different functions you have at your disposal.
7:11
Go ahead and return to the Control Training Worksheet for a couple of easy
7:14
exercises using these Control Functions. In the next section, we’ll take a look
7:19
at some more complicated processes that will require multiple Control Functions,
7:23
and other Control Components as well, all wired together.
7:26
Feel free to move on whenever you’re ready.