< Previous | Contents | Next >
The software API (application programming interface) providing network A/V support in NewTek products is called AirSend™. Various systems and software (both native and third-party) also take advantage of AirSend to send and receive control instructions and tally (on air) notification.
AirSend supports more than just a/v data transfer. For example, one form of information available to network sources connected is tally (on-air) notification. Beyond this, though, AirSend also provides the ability to transmit commands between NewTek live production systems and other connected sources. This provides extremely powerful capabilities.
Note: AirSend is just one way for external systems and software tp communicate with and control NewTek live production systems. For example, control applications can also be prepared using simple TCP/IP commands. The NewTek Developer Network program provides members with SDKs detailing the various communication methods available.
EXAMPLE – CONTROLLING 3PLAY
Let’s consider a simple example taking advantage of the potential this ability offers. Using TriCaster’s Macro system, it is easy to take advantage of AirSend to send instructions from TriCaster to 3Play via the Macro system. Such a macro could actually perform sequential operations on both systems, and be assigned to a shortcut keystroke or other macro trigger for convenient execution with a single user interaction.
When both ‘parties’ to the network ‘conversation’ have been prepared using the AirSend API, as in this case, there is no need for complicated configuration. TriCaster ’knows’ which network source is connected to its network inputs, and automatically creates the necessary bi-directional communication channel.
For example, 3Play network outputs typically appear in TriCaster’s Network Input source selectors as something like “3Play(A)” and “3Play(B)”. If you select “3PlayA” as the active source for TriCaster’s “Net 1” input, a communication channel between 3Play’s A channel and Net 1 is automatically opened. Unique shortcut entries in the macro identify which Network Input the instructions specified will be directed to.
When examined in TriCaster’s Macro Editor, a typical macro entry of this type might look as follows:
Delay (ms) | Shortcut | Value | Key 1 | Value 1 |
0 | net1 | clip_play | speed | .5 |
The shortcut “net1” defines which Network Input will be addressed.
Additional entries on the same line constitute an instruction that will be performed when the macro is executed.
The Value “clip_play” commands the target source to play the currently selected clip (in our example, the current clip selected on 3Play’s channel A)
The Key 1 entry “speed” sets the playback speed to the value which follows next on the line, “.5” in our example. This will cause playback to occur at 50% speed.
It is entirely possible to create more complex macros that combine AirSend commands of the sort just mentioned
17.6.1 DEFAULT AIRSEND COMMANDS
As mentioned earlier, the macro shortcut entry “net1” addresses a controllable network source connected to the first network input on a NewTek live production system. TriCaster has a second network input, which you can send commands to using the shortcut entry “net2”.
The AirSend API also allows third-party developers to implement custom commands suited to their requirements. These, when provided, can be used in macros just like ‘NewTek native’ commands, even benefiting from the same automatic communication channel configuration. Documentation supplied with third-party products will provide information on custom commands that have been included.
By default, third-party products generally support the AirSend commands discussed next, included in the NewTek product macro system.
CLIP_STORE
Delay (ms) | Shortcut | Value | Key 1 | Value 1 |
(ms) | net1 or net2 | clip_store | index | ID |
This command stores a custom local reference ID for the current clip (the one currently visible at on the network input). The value ID can be a string. ID is global and shared across your system (it is not stored per system output, if you have multiple).
For example:
Delay (ms) | Shortcut | Value | Key 1 | Value 1 |
.0001 | net1 | clip_store | index | AAA1 |
The entry above will ‘remember’ the current clip with the name “AAA1”. (The default for ID is an empty string, which is a valid storage target.)
CLIP_RESTORE
Delay (ms) | Shortcut | Value | Key 1 | Value 1 |
(ms) | net1 or net2 | clip_restore | index | ID |
This command cues up content previously stored with a specified ID value on the upstream source channel assigned to the network input designated.
For example:
Delay (ms) | Shortcut | Value | Key 1 | Value 1 |
.0001 | net1 | clip_restore | index | AAA1 |
The clip previously indexed as “AAA1” (using clip_store) is restored on the source system output channel connected to Net 1. The playhead is set to the beginning of the clip. (If the indexed clip is not located, nothing occurs.)
CLIP_ SELECT
Delay (ms) | Shortcut | Value | Key 1 | Value 1 |
(ms) | net1 or net2 | clip_select | index | # |
Select a page (or clip) defined by the value assigned to index. This may be a number specifying a particular page or at times, another property.
For example, sending a “clip_select” command to 3Play with a suitable numeric value assigned as the “index” key selects a specific Play List tab by index (assuming Play List mode is active. On the other hand, in Clip List mode, if the value for “index” was “0-023” the clip referred to would be selected.
For example:
Delay (ms) | Shortcut | Value | Key 1 | Value 1 |
.0001 | net1 | clip_select | index | 4 |
This would select the fourth Play List tab on the 3Play output (A or B) connected to Net 1.
CLIP_ MOVE
Delay (ms) | Shortcut | Value | Key 1 | Value 1 |
(ms) | net1 or net2 | clip_ move | distance | # |
Move the specified number of pages forwards or backwards from the current page.
For example:
Delay (ms) | Shortcut | Value | Key 1 | Value 1 |
.0001 | net1 | clip_move | distance | -1 |
The entry above would select the previous clip on the source connected to Net 1.
CLIP_ PLAY
Delay (ms) | Shortcut | Value | Key 1 | Value 1 | Key 2 | Value 2 |
(ms) | net1 or net2 | clip_ play | speed | # | position | # |
You can specify “speed”, “position” or both keys (the order of keys is not important).
When “position” is not specified, play begins at the current frame. The value for position is specified in seconds, while speed is expressed as a playback rate value (1.0 = 100%).
For example:
Delay | Shortcut | Value | Key 1 | Value 1 | Key 2 | Value 2 |
.0001 | net1 | clip_ play | speed | -.5 | position | 10 |
This entry would play a clip backwards at 50% speed from a position 10 seconds into the clip.
CLIP_ SCRUB
Delay (ms) | Shortcut | Value | Key 1 | Value 1 |
(ms) | net1 or net2 | clip_ scrub | distance | # |
This command will move the playhead backward or forward by a distance of # seconds. For example:
Delay (ms) | Shortcut | Value | Key 1 | Value 1 |
.0001 | net1 | clip_scrub | distance | 5 |
The entry above would advance the playhead five seconds further into a clip displayed on the source connected to Net 1.
NOTES: The software associates values with their key name, thus key can be entered in any order. The following are valid formats for numeric entries: “+0.1”, “0.1”, “.1”, “-0.1”.
17.6.2 AIRSEND™ AND YOUR CONTROL SURFACE
For your convenience, a set of AirSend commands have been pre-assigned to TriCaster 8000CS, 860CS and 460CS. Details can be found in the individual section of Chapter 22 (Control Surfaces) dealing with each of these external control surfaces.