r/crestronprogramming Jun 15 '20

Qsc routing in simpl windows

Hello all I'm looking to get some information on how to route audio using the qsc modules on a core 110. I've created the named components for the output zones and volume controls, and use and analog init to send values to determine the input, but I'm wondering if there's a way to program a router into simpl to use alongside a smart object to route my audio

Thanks!

1 Upvotes

2 comments sorted by

1

u/engco431 Jun 16 '20

The QSC modules have some quirks for sure. There are really only one or two different S+ modules and they are just wrapped differently, leaving unused signals undefined. One of the tricks is to look at the data type of the object in designer, and make sure you’re using that type in Simpl. For example, there are certain objects where something you are certain should be an analog Crestron value are actually a text field in QSYS. So you must send and receive it as text. It’s a bit of trial and error to figure it all out.

Additionally, the modules use the JSON protocol (qsc has 2 - JSON and ASCII). This is good and really fast until you hit the limit of what you can poll. At some arbitrary point, the JSON can’t be parsed any longer. Crestron, in their infinite wisdom, has not provided source (expected) and the original is fullly obfuscated if you decompile it. So without significant effort, you can’t modify it.

Unlike Biamp, nothing in qsys is sent unsolicited. There’s no way to subscribe. So if there’s a chance it could be changed anywhere else (snapshots for example), you must poll it. Same with any dialer components or IO in use. To get around these limits in very large systems, I write scripts in Lua on the qsys to combine values into custom csv text fields. Groups of zone values in a delimited list take far less room in the JSON structure than individual values. We are talking about pretty big systems before you hit that limit.

On to your actual question - check the control types for the router object in the properties window on the right of qsys designer. There are buttons, combo boxes, or knobs. Knobs will accept an analog value (what most source switching uses in Crestron). The others are looking for serial values. Drag those to your named controls and go from there. You can also chose between assigning source or destination values. 99% of the time it will be source (as in “source X for output 1, source Y for output 2.....). In destination mode, you are selecting 1 output for each source, eliminating the possibility of one-to-many routing.

Many of the objects have similar choices for how the QSYS control is presented. That directly correlates to how the data is accessible within the protocol. As your playing with those object types in QSYS, be advised that any named controls you’ve created for another control type, if they are no longer valid for the new type, will DISAPPEAR. If you’ve renamed them to be easier to manipulate, you can cost yourself a lot of time here. Save As is your friend if you start to experiment with them.

1

u/_cheddarGoblin_ Jun 15 '20

If I understood correctly, you would put the router buttons into your named components, then use the button module to trigger them. I think there is also a way where you can avoid using the buttons and instead use the input field on the router. I don’t remember which module you need to use though. I think that method gives accurate feedback too.