This is a part of the Sofie TV News Studio Automation System.
This library orchestrates and controls different devices. Its input is a timeline data structure and a layer-to-device-map. Using the input, it resolves the expected state, diffs the state against current state and sends commands to devices where necessary.
- CasparCG - using the casparcg-connection library
- Blackmagic Design ATEM vision mixers - using the atem-connection library
- Blackmagic Design Hyperdeck record/playback devices - using the hyperdeck-connection library
- Lawo audio mixers - using the emberplus library
- OBS Studio live video production software
- Panasoniz PTZ cameras
- Pharos light control devices
- Sisyfos audio controller
- Quantel video server
- vMix software vision mixer
- VizRT MediaSequencer graphics system - using the v-connection library
- Arbitrary OSC compatible devices
- Arbitrary HTTP (REST) compatible devices
- Arbitrary TCP-socket compatible devices
This is a mono-repo containing the TSR library, and a separate typings-only library (timeline-state-resolver-types). Contrary to what your editor might say, the typings-only library cannot use dependencies from the main library.
Check the main timeline-state-resolver package for instructions on using the library and more information
When creating features that span the timeline-state-resolver and timeline-state-resolver-types packages - such as when creating a PR for supporting a new device - you will need to link the two packages together. To do that, after checking out a branch run:
yarn
yarn lerna link
This will link the types package to the main library so that you can use your new type definitions during development.
Note, that your IDE may not pick up your new type definitions until you build the types package.