UCI Toolbox

Video Transcript

00:06
When you first start building user control interfaces,
00:09
you're likely gonna just drag the controls you need straight outta the control panels of the components and drop them onto your UCI page.
00:16
And honestly, 90% of the time, that's how I do it.
00:19
But different people have different workflows.
00:21
So what if you're tasked with building the user interface for clients, but the engineer who's designing the signal processing hasn't completed their task yet.
00:30
Or what if you're planning out your UCI ahead of time, but you just haven't added all the components to your schematic page yet?
00:36
That's where the UCI toolbox comes in.
00:39
The UCI toolbox is kind of like a real toolbox.
00:42
It's a, it's a box full of tools, which I know a lot about 'cause I'm a, I'm a manly, I'm a manly man.
00:48
I bust out the old, uh, the old toolbox all the time.
00:52
You know, three to three, three to seven, three to three to eight, eight times a day, every hour.
00:56
I'm just, I'm tool boxing tool, boxing it up.
00:58
They call me the box.
01:00
I can't even stop 'em.
01:01
They just call me that.
01:02
So, let's look at the tools in the UCI toolbox.
01:05
You'll find it as a second tab in the UCI editor window.
01:09
Here you'll see a variety of objects and graphic tools that you can add to your UCI.
01:13
You might consider these controls to all be blank.
01:16
It's like a light switch that isn't actually wired to anything yet.
01:20
You can place it on your UCI and edit its appearance and then wait to connect it later.
01:25
When you're ready, you'll see that pretty much every type of control available in Q-SYS is represented here.
01:31
Different types of buttons, knobs with various ranges and units of measurements, text boxes,
01:38
faders with different visual styles, non-interactive indicators like a basic LED or text field,
01:45
and the same graphic tools that are available in your schematic elements library.
01:50
As you add these to your UCI, you'll see they also populate as individual items in your layer window.
01:56
The icon will show you what type of control it is with a description and the name of the control as well.
02:02
In fact, any control added from the UCI toolbox has a property called control name, which lets you give that control a custom friendly name to help you identify it.
02:11
This is very useful for organizing your controls in the layer window, and it's also a way that you can target that control using scripting, which I'll demonstrate a little later on.
02:20
If you were to add controls to your UCI from control panels without using the toolbox,
02:25
you'll notice those controls do not have a control name property.
02:29
But their preassigned name is still shown in the toolbox window.
02:33
You'll also likely notice the other major difference between these two controls now.
02:37
They all have a show hide checkbox, which lets you toggle them between visible and invisible,
02:43
and they all have a lock unlock checkbox, which prevents you from accidentally editing them after you're happy with their location.
02:50
But the toolbox controls have one more box.
02:53
The link box.
02:54
Currently, none of these controls are linked to anything, so they have a crossed out link icon.
03:00
In order to make these controls operable, you'll need to click on the link icon and find the control you want to link it to.
03:08
This list populates with all the components in your design, which might be pretty daunting in a larger design.
03:14
Being disciplined in naming your schematic pages,
03:17
separating content across different pages,
03:20
and giving your components custom code names could be the key to making the toolbox a worthwhile use of your time.
03:26
And do be careful because there's nothing preventing you from linking a text field to a mute button,
03:33
which probably isn't gonna be very helpful if you're not sure which control you want to link to.
03:38
Remember that you can hover your mouse over any control in emulation mode to learn its name.
03:43
Your UCI toolbox control isn't doing what you think it should be doing, you probably linked it to the wrong control in the schematic.
03:51
Either way, you'll see that the link icon changes to a completed chain link once it has been assigned apparent.
03:57
So keep an eye out for any unlinked controls if your UCI isn't behaving properly.
04:02
There's one graphic tool available in the UCI toolbox that isn't available in your right side pane.
04:07
It's called the Flex Box.
04:09
When you add a flex box to your UCI, it may look a lot like a group box,
04:14
but this is actually a dynamic container used for making quick work of auto arranging your controls.
04:20
For instance, it's pretty common when building UCI for you to have a number of similar buttons;
04:26
such as navigation buttons or source selection options for HDMI, routing, et cetera.
04:31
And you invariably end up spending a lot of time nudging those buttons around on your UCI and distributing them,
04:38
and the moment they're perfect is guaranteed to be the same moment that the client tells you that they need two more buttons they forgot to tell you about.
04:44
So sorry.
04:45
Thanks for your hard work, and don't worry, that's only gonna change 10 more times before you're done.
04:50
Well, instead of meticulously rearranging all your buttons, every time there's a change,
04:55
just drag all these controls into your flex box.
04:58
They will automatically rearrange themselves into a grid within the flex box,
05:02
and you'll see that the flex box is now an expandable item in your UCI editor window.
05:07
Much like a page or a layer.
05:09
In its properties, you can determine if you wanted to display its contents in a row or a column,
05:15
and whether or not that choice should wrap to create multiple rows and columns based on the size of the flex box.
05:21
You can adjust the gap between all the objects to space them out a bit, as well as choose the manner in which they are aligned within their rows and columns.
05:29
Veterans of CSS may recognize many of these terms because the flex box is essentially an HTML feature for displaying objects, which has been lifted into Q-SYS.
05:38
So yes, this can save you a lot of time when organizing your UCI since it automatically updates whenever you add or remove another item.
05:47
But the best part is that it does this automatic rearrangement.
05:50
While the design is running as well, in later trainings after Q-SYS level one,
05:55
you'll learn how you can programmatically change a controls visibility from true to false using custom coding.
06:02
Let's say you have a conference room with an HDMI cable.
06:05
A user could use to connect their laptop, but if there's no laptop connected,
06:09
I wanna hide that HDMI source as an available option on the UCI, so nobody selects it.
06:14
If those source selection buttons are in a flex box,
06:17
the remaining controls will automatically readjust to distribute the available options rather than presenting the user with an awkward gap where the button once was.
06:26
Now one last thing to talk about.
06:28
There's another tab in the UCI editor window called variables.
06:33
This is definitely a more advanced topic, but I don't wanna just gloss over it and pretend it's not there.
06:37
After all, if it was meant to be ignored, we would've named it Patrick's emails.
06:41
So, no, since we're talking about the toolkit, let's spend a little bit of time on this too.
06:45
This is a place where you can store variables, which could be applied to objects in your UCI, created by the toolkits.
06:52
However, doing so does require some Lua scripting, so I'm only gonna skim the surface of the topic here.
06:59
Here's an example.
07:00
Let's say there's a text field on your UCI that you may wanna change later on.
07:04
I'll add a read only text box and name it whenever I want: Mr. Texty.
07:10
Then I'll create a variable using the plus button and name it whenever I want to as well: Mr. Very.
07:17
I could then select the UCI script tab to write some code that would associate these together.
07:24
This is a Lua editor window where you can write any kind of code you want to govern your UCI,
07:29
and like I said, that's an advanced topic, so you don't need to follow along with me on this one.
07:33
Just watch.
07:35
I'm gonna say that the control Mr. Texty string, that's its text, basically is defined by the UCI variable, Mr. Vary string.
07:46
I'm actually gonna wrap that code into a function called: update Mr. Texty.
07:50
I will then run this function when the script first runs,
07:54
and I'll run it a second time whenever the UCI variable, Mr. Vary event handler is triggered,
08:00
which basically means that if anyone changes the variable, it will run this function and update the text.
08:06
So here I'll save this to the core and run.
08:09
And now when I change the variable, the text on my UCI updates, that's handy.
08:14
But the real power of UCI variables is that they can be accessed through the core manager, and by extension, Q-SYS Reflect.
08:22
So from anywhere in the world, an administrator with access to this core could update this variable, and the UCI would update accordingly.
08:31
Now, that may seem silly for just changing a word on the UCI, but this is just a basic example to show you what this tab does.
08:39
If writing Lua code was way too terrifying for you, don't worry.
08:42
There's no Lua in level one training.
08:45
But after you complete Q-SYS level one training, you should check out Control 1 0 1 and our control and UCI training series,
08:52
where the fundamentals and intermediate courses focus on building control automation that doesn't involve a single line of code.
09:00
On the other hand, if you're intrigued to see more Lua, you should take our advanced control in UCI training course,
09:06
which guides you through everything you need to know to write more complex script using amongst other things, these UCI variables.
09:14
Alright?
09:14
Hopefully your brains aren't fried, and again, there's no more scripting or UCI variables on the level one exam,
09:20
but you might wanna use some of what you learned about the UCI toolbox when building your UCIs.
09:25
Thanks for watching, and we'll see you next time.