Products Designed for Themed Entertainment

New WinScript Feature: Scheduled Sequence Triggers

Published 10/27/20

With the newly released WinScript Live 5.10.0, a new “Scheduled Triggers” feature has been added!

Alcorn McBride devices equipped with our SyncCore technology leverage industry-standard synchronization methods such as NTP, PTP, and GPS to share a precisely synchronized “real world” System Clock. For products like the V16X, RidePlayer, and BinloopX, this technology adds an incredible level of triggering precision because these devices can coordinate with one another to execute show control events at a specific System Clock time. The precision in which these events are executed is only limited by the accuracy of the shared System Clock, which can be within microseconds or even nanoseconds of each other under ideal conditions.

Until now, this synchronization feature was only used internally by our show control engine to coordinate our devices with one another. The new Scheduled Triggers feature opens capability for third-party systems, enabling them to schedule sequences based upon the same shared NTP, PTP, or GPS System Clock.


The System Clock

It’s important to understand that all SyncCore-enabled devices (V16X, RidePlayer, BinloopX) maintain an extremely precise System Clock that can be shared via NTP, PTP, or GPS. This System Clock is key to the operation of the Scheduled Trigger feature. Since we use industry standard methods, other devices that support NTP, PTP, and GPS clock synchronization can also share their clock sources with Alcorn McBride devices.


Scheduling Sequence Triggers

Fundamentally, this feature relies on the ability to schedule sequences to trigger based upon the System Clock. The diagram below illustrates how this concept works to ensure synchronous triggering across multiple devices:

In this example, the scheduling device adds scheduled triggers to two other Alcorn McBride devices; Device A is scheduled to trigger its sequence named ‘Sequence A’ and Device B is scheduled to trigger its sequence named ‘Sequence B’. Both of these triggers are scheduled to occur when the System Clock reaches a value of 11:23:12.16

As you can see, these triggers can be schedule ahead of time to avoid delays that can be potentially introduced by factors like network latency. As long as the devices receive the commands ahead of time, they will prepare to trigger and then wait until the execution time occurs.

This diagram also illustrates that once sequences are started; they operate their own clock that increments independently from the System Clock. Normally, this clock starts at 00:00:00.00, but users have the option to trigger a sequence at an offset if they wish. This enables the user to ‘seek’ to a position in the middle of a sequence.


Scheduled Trigger Dashboard

Now that we understand the core concept of scheduled triggers, let’s dive into the details of how this feature works. Each Alcorn McBride SyncCore-enabled device will have a Scheduled Trigger list that is designed to be dynamically edited. Functionally, this list will contain information such as the following:

Though functionality is included to modify this behavior, the typical use case is very simple. Triggers are added with a scheduled execution time. Once the System Clock reaches the scheduled value, the trigger is executed, marked as ‘Complete’, and then is removed from the list.

Triggers can be added, updated, and deleted from this list at any time using a UI provided within our WinScript Live software or via remote network commands from an external device. When updated or deleted, triggers are referenced using their UUID or by selecting them directly within the WinScript user interface.

Triggers can also be enabled or disabled at any time, which determines whether or not the trigger executes when the scheduled time occurs. If a trigger is disabled during its execution time, it will be marked as ‘Skipped’, not executed, and then removed from the list.


Sequence Processing and Timing

When using this feature, it’s important to consider the timing in which Sequences are processed within the show control engine. The processing interval (a.k.a. scan rate) of our show control engine is based on the system frame clock configured by the WinScript programmer. This is typically a rate like 60, 59.94, 50, 48, 47.952, 30, 29.97, 25, 24, or 23.976 frames-per-second. For example, a show control script configured to operate at 60fps would process sequences (and sequence triggers) every 16.666ms.

When PTP, NTP, and GPS are being used to synchronize the System Clock of an Alcorn McBride show controller, we adhere strictly to the SMPTE-2059 specification which dictates the system clock values where frame transitions will occur. In other words, it is very possible to schedule a sequence to trigger at a System Clock value that is not aligned with the SMPTE-2059 interval and in between frame boundaries. When this is the case, the sequence will not trigger at the scheduled time, but will be aligned to the nearest frame edge.

This diagram illustrates the reaction of a scheduled trigger that is not aligned to the frame clock established with SMPTE-2059:

Even though the trigger was scheduled for 01:02:03.029, sequence execution did not begin 01:02:03.033 as that is the nearest frame edge. In another example, if the trigger was scheduled for 01:02:03.017, it would actually be triggered at 01:02:03.16 (again, at the nearest frame edge). Essentially, on every frame edge, WinScript looks backwards in time half a frame and forwards in time half a frame, and executes any non-complete events in that window.

If the system issuing the scheduled triggers is doing so in accordance with the SMPTE-2059 spec, it is possible to precisely schedule sequence triggering like in this diagram:

Using this Feature in WinScript Live

To use this feature, you will need a SyncCore-enabled device with firmware 5.10.0 or greater. The system clock of your Alcorn product should be synchronized with the device that will be sending it commands using PTP, NTP, or GPS. Sequences can then be started, paused, or reset by sending commands per the Scheduled Sequence Triggers Protocol, found in Appendix D of our Show Control User Guide. This document is bundled with WinScript Live. Simply go to Help > Help Topics.

It is possible to view existing triggers on the Alcorn device using the Scheduled Triggers Dashboard (see below.) From this dashboard you can also add, modify, disable, enable, and delete triggers on the device.

If you have any additional questions, please contact [email protected]