Skip to content

tv2/v-connection

Repository files navigation

Sofie TV Automation Media Sequencer Engine connection library

Library to enable the Sofie TV Automation system to control a Vizrt Media Sequencer Engine (MSE), to be implemented in Node.js with Typescript.

This library is currently experimental. It currently contains:

Abstract

This library bridges the Vizrt Media Sequencer Engine and typescript to all the Sofie TV Automation system to control graphics generation.

Supported devices

Prerequisites

Building

Having checked out this project from git, install packages and build the native extension:

yarn install

Build the typescript interface module:

yarn build

This package has automated tests that run with jest. Test with:

yarn test

Importing

Add this module to your project with one of:

npm install @tv2media/v-connection
yarn add @tv2media/v-connection

Import into your project with one of:

const { createMSE, MSE } = require('@tv2media/v-connection')
import { createMSE, MSE } from '@tv2media/v-connection'

Use factory createMSE to create a connection to a running MSE, e.g.:

let mse: MSE = createMSE('hostname.domain', restPort, wsPort)

Note that restPort and wsPort are optional. If omitted, the default port numbers will be used.

Usage

This version of the library assumes the following setup are has been done within an MSE in advance:

  • handlers describing connections to VizEngines have been created.
  • handlers for external elements, e.g. pilot database, have been created (typically named namespace_...).
  • a profile has been created to specify the relationship between channel names and engines and to represent the state of a running show.
  • one or more shows that contain scenes and master templates that can be used be this library to build internal element instances.

Given that setup, the steps to use the library are:

  1. Create an MSE instance (see above) to manage all communications with the MSE server.
  2. Discover the details of available shows, Viz Engines and profiles.
  3. Use the MSE to create a rundown, a v-connection concept that represents the linking of its own MSE playlist, a show and a profile.
  4. Add all the graphical elements to be used in the rundown.
  5. Activate the rundown and initialize heavy graphical elements to pre-load them.
  6. Query elements to check they are loaded and send commands to take graphics in and out, or continue through their animation states.
  7. During an active rundown, create new elements and initialize each one as required. Take care not to affect engine output. Repeat steps 6 & 7 as required.
  8. Deactivate a rundown and then purge all associated elements and clean up the VizEngine renderers.

Disclaimer

This library is in no way associated with, or endorsed by, Vizrt.