0:08
Welcome back. In the last section, we set up some simple Gain controls in the Named Controls Bin,
0:14
and then accessed our design using Windows Telnet Client.
0:17
Now it’s time to start issuing controls to the design.
0:21
All of the commands we’re going to issue will be short acronyms,
0:24
and you can find a complete list of available commands and what they stand for in the Help file.
0:30
Just look for External Control Protocol in the Search bar.
0:35
The first command we’re going to use is “sg” which stands for “status get.”
0:40
Press Enter and you should immediately get an “sr” or “status response”
0:45
followed by the name of the Q-Sys Design, which in our case is “ECP Tutorial,”
0:50
an unreadable alphanumeric string followed by one space one.
0:54
Just so you know, the strange letters and numbers are a randomly generated “Design ID”,
0:58
which can be stored and then used to determine if the design has changed over time.
1:03
This is regenerated each time a design is redeployed or emulated.
1:07
After this ID, final two numbers represent which Core is active in a redundant system.
1:12
If you are not running a redundant Core then both will be “1.”
1:16
If you did have a redundant Core, then the first number represents your Primary Core
1:20
and the second number represents your Secondary Core.
1:22
Whichever is active will be a “1” and the other will be a “0.”
1:27
The “sg” command is a good way to establish that you’ve made a connection to your design.
1:32
Let’s get to changing those gain controls.
1:34
We’ll use the “csv” command, which stands for “Control Set Value.”
1:40
This control then needs two different parameters – the name of the control to change,
1:45
and the desired value to change it to.
1:47
Ours is named GainGain, and the value is -10, with each parameter separated by a space.
1:54
You might remember earlier that I mentioned that if you have a space in the name of your control,
1:59
you’ll have to do some extra work later. That comes in to play now.
2:02
You have to put quotations marks around a name of a control that has a space in it.
2:08
That way the command knows that the space is part of the control’s name, and not the next parameter.
2:13
Also, the names of the controls are case-sensitive, and be sure to type it correctly the first time.
2:20
If you make a mistake and hit backspace in Telnet, you’ll receive an error when you launch the command.
2:26
For this reason, it’s a good idea to not give your controls unnecessarily long names.
2:31
Alright, let’s hit enter to issue this command. You instantly get a response of ‘cv “GainGain”
2:38
“-10.0dB” -10 0.75’. So what does this mean?
2:43
“cv” is a response reporting back to us the control value now that we’ve issued our command.
2:49
The name of the control in question is “Gain Gain” and it tells us its current status in three different ways:
2:55
a string, a value and a position. These are all different representations of the same knob setting,
3:02
and you can parse any or all of these. The string is text based,
3:06
it shows exactly what the control within Q-Sys designer says on its dB scale.
3:11
The value is a purely numerical representation of the control’s status.
3:16
The position represents the control’s location in a range between 0 and 1.
3:21
Controls that toggle between on and off would show a 0 as off and a 1 as on.
3:26
For a fader, 0 would by all the way down and 1 would be all the way up,
3:31
so anything in between will be represented by a floating-point number between 0 and 1. .5, for instance,
3:37
would be if the knob was set to the middle. In this case, -10dB equates to .75 or 75%.
3:45
When we changed this control, we used the “csv” command to set its value to -10.
3:51
If you wanted to set its string or its position, then you would use the c ss”
3:56
(the Control Set String command) or “csp” (the Control Set Position command).
4:02
Be sure that the type of command you’re issuing matches the information that you’re sending.
4:06
For instance, if you sent a control string position command of 0, the control wouldn’t be set to 0dB,
4:13
it would be set all the way down to -100dB because that’s the bottom of the position range.
4:18
Let’s use these commands to activate our Mute button.
4:22
Type “csp (or control set position) GainMute 1’ and Enter”
4:29
This time, it reports back a control value for GainMute as “muted” 1 1”.
4:36
This means the control’s string is “muted”. Its value is 1 or “on”, and its position is also 1.
4:43
If you go back to Q-Sys Designer and look at your Gain component,
4:46
you’ll notice the controls have indeed been affected by our commands.
4:49
Feel free to split your screen as you issue some more commands to see it in action.
4:54
One topic we get asked about frequently is how to implement a volume “bump” feature using the protocol.
5:00
This might not seem very obvious, but to do this, you use the Control Set String command with “++1”
5:06
or “--1”. The 1 can be substituted with any other value you’d like to jump by.
5:12
We’ve also recently added the alternate notation “+=1” and “-=1”,
5:17
which work the same as the other strings.
5:19
In the command line, type, ‘css (control set string) GainGain “++1”.
5:27
The protocol will recognize that this string is not the explicit control value
5:32
and instead it will increment or decrement the control by the specified amount.
5:36
Watch the control when you press Enter, and you’ll see that it increases in level by 1dB.
5:41
There are many other commands listed in the Help File for the External Control Protocol.
5:45
Now that you have an understanding of the basics of this protocol,
5:48
the other commands will make much more sense.
5:50
Some useful ones I’d like to point out are the csvr command, or Control Set Value Ramp,
5:57
which lets you input an amount of time for a control to gradually change values,
6:02
rather than just popping immediately to the destination value.
6:05
If you’d like to activate a trigger such as a Play trigger, which doesn’t have a value,
6:10
you would use the “ct” command, or Control Trigger.
6:13
And if you want to load or save Snapshots, you could use the ssl or sss commands
6:20
Snapshot Load and Snapshot Save.
6:23
And if you want to tell Q-Sys that you’re a sixteen-year old girl, you could type “brb lol,”
6:29
and it will respond with “yolo!”
6:32
Okay, that one’s not real. But you can look around this help file to see even more examples.
6:36
We have overlooked one very simple command – the “cg” or Control Get command.
6:42
There are many situations in which you may be interested in
6:46
knowing a control’s status without sending it a change command first.
6:51
Let’s type “cg GainGain” and Enter. You’ll get the same response you would get
6:56
after changing the control … it shows the control’s string, value and position.
7:00
If your control system will be doing all the polling of Q-Sys,
7:04
this is really all you need to do to monitor each Named Control in the system.
7:08
Polling a few controls periodically may not be a challenge,
7:11
but what if you have dozens or hundreds of controls to poll?
7:15
That amount of “CG” commands can get very burdensome to program and maintain.
7:20
The good news is that ECP has two very useful features to greatly simplify polling.
7:25
In the next video we’ll take a look at these two features: Change Groups and Change Group Scheduling.
7:30
Let’s take a quick break, and move on to the next video whenever you’re ready.