包详细信息

timeline-state-resolver-types

nrkno12.5kMIT9.3.0-release52.2

Have timeline, control stuff

mos, broadcast, socket, typescript

自述文件

Sofie Timeline State Resolver (TSR)

Node CI codecov

This is the Timeline State Resolver (TSR) library, part of the Sofie TV Automation System. This library orchestrates and controls different devices. Its input is a timeline data structure and a layer-to-device-map. Using this input, it resolves the expected state, diffs the state against current state, and sends commands to devices where necessary.

General Sofie System Information


Supported Devices

  • 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 (currently not supporting v29)
  • 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
  • Shotoku TR-XT camera robotics
  • Singular Live Graphics
  • Sofie Chef
  • Telemetrics camera robotics
  • Newtek Tricaster video mixers
  • VISCA over IP camera control
  • Arbitrary OSC compatible devices
  • Arbitrary HTTP (REST) compatible devices
  • Arbitrary TCP-socket compatible devices

Installation and Usage

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

Development

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.

There is a test application quick-tsr inside this repository which can be used to easily test changes made to this library.

Working with Types

Types that need to be consumed by external systems that have no need to interact with the TSR library itself should be written in the timeline-state-resolver-types package. Some types will be generated from JSON schemas, the schemas are composed under the $schemas subfolder in the specific integration's subfolder. (See the abstract integration for an example). The types can be generated with the yarn generate-schema-types command. The schemas themselves must be exported from the src/manifests.ts file, so they can be used by external systems to validate payloads and generate UI's.


The NRK logo is a registered trademark of Norsk rikskringkasting AS. The license does not grant any right to use, in any way, any trademarks, service marks or logos of Norsk rikskringkasting AS.

更新日志

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

9.3.0-release52.2 (2025-04-10)

Note: Version bump only for package timeline-state-resolver-types

9.3.0-release52.1 (2025-03-12)

Note: Version bump only for package timeline-state-resolver-types

9.3.0-release52.0 (2025-02-04)

Features

  • atem: add stinger support (d4378e1)
  • EAV-266: add more PTZ actions for obtaining values (bd336f2)
  • EAV-266: add return types to PTZ actions (5299a2b)
  • EAV-266: implement Panasonic PTZ actions (b7cccbf)
  • EAV-321: support browser source url in vMix (db67a61)
  • EAV-343: support index (list, photo, virtual set) in vMix (02db182)
  • EAV-410: add sisyfos action to load mixer preset (8895f87)
  • EAV-411: support setting text in vMix titles (41c1f93)
  • EAV-423: add actions to start and stop External in vMix (e002d0f)
  • EAV-464: add images support for GT titles in vMix (8905200)
  • http url interpolation SOFIE-3310 (#342) (01593a3)
  • SetSisyfosChannelState action implemented (685fbf9)
  • Sisyfos - remove re-sync channel functionality. (triggerValue has the functionality) (4e77eb2)
  • Sisyfos add support for mute, gain, selector in triggerValues. Refactor SET_CHANNEL (25c6516)

Bug Fixes

  • actions.json payload format (116bd76)
  • add mute, inputgain, inputselector to Sisyfos channel option types (5f5115e)
  • Sisyfos add triggerValue to TimelineContentSisyfosChannel (3cb6f70)
  • sisyfos: trigger value per channel (54734d5)

9.2.0-release52 (2024-08-19)

9.2.0 (2024-10-07)

Note: Version bump only for package timeline-state-resolver-types

9.2.0-alpha.0 (2024-09-09)

Features

  • allow sequential executionMode to paralelize multiple queues of Commands (84a53cd)

9.1.0 (2024-08-19)

Features

  • add "returnData" to action schema (529bcb3)
  • atem color generator support SOFIE-2968 (#322) (b7ceb69)
  • EAV-243: add OAuth (Client Credentials grant) and Bearer Token to HTTPSend (8fef807)
  • EAV-243: add oauth token path option for a broader support (76592f2)
  • EAV-269: add vMix input layers props and commands (1bcf056)
  • httpSend: Proxy support (6dc4c59)
  • HTTPSend: return response data from HTTP SendCommand action (#334) (d220c78)
  • refactor pharos device SOFIE-2488 (#333) (d57812c)
  • support timeline v9 (3ccc759)

Bug Fixes

  • add missing typings for atem dve (#305) (1758ffc)
  • CasparCG: add listMedia action (wip) (f4277ad)
  • EAV-269: default to vMix layers instead of deprecated overlays (dc719c8)
  • missing httpsend enums (920da05)
  • suppress quantel disconnect shortly (9b6621d)
  • update casparcg-connection dependency (e209ba8)

9.0.2 (2024-08-15)

Note: Version bump only for package timeline-state-resolver-types

9.0.1 (2024-04-02)

Note: Version bump only for package timeline-state-resolver-types

9.0.0 (2024-02-23)

Note: Version bump only for package timeline-state-resolver-types

9.0.0-release50.8 (2024-02-02)

9.0.0-release50.7 (2023-11-17)

Features

  • changes the logic for setting a pollInterval (a482e57), closes #277

Bug Fixes

  • remove unused casparcg useScheduling option (#294) (06d3c96)

9.0.0-release50.6 (2023-08-25)

Bug Fixes

  • httpSend: Use the same types for the sendCommand action as a timeline object (#269) (3385217)
  • vmix: fix scenario where the media load retry system would load clips into playlists twice (8ceddb2)

9.0.0-release50.5 (2023-07-03)

9.0.0-release50.4 (2023-07-03)

9.0.0-release50.3 (2023-07-03)

9.0.0-release50.2 (2023-07-03)

9.0.0-release50.1 (2023-07-03)

9.0.0-release50.0 (2023-07-03)

⚠ BREAKING CHANGES

  • DeviceType enum has been changed from a number-based to a string-based one

Features

  • add restart command to vMix inputs (e16e8c1)
  • DeviceType enum has been changed from a number-based to a string-based one (dd03bcc)
  • upgrade singular.live to API v2 (2bb5c4d)
  • Use strings for DeviceType enum (f1b95bc)
  • vMix: retry sending media load commands if the file wasn't found (4321aae)

Bug Fixes

  • add types support for vMix stingers 3 and 4 (44fa27d)

3.5.1 (2023-03-31)

⚠ BREAKING CHANGES

  • json schemas for device config and mappings (#237)

Features

  • json schemas for device config and mappings (#237) (d43f3dc)
  • replace makeready (5abe41e)
  • SOF-1254 add me_clean support for mix ouputs (7f3fb9c)
  • SOF-1254 add temporal priority to TriCaster (7133774)

9.0.0-release50.7 (2023-11-17)

Features

  • changes the logic for setting a pollInterval (a482e57), closes #277

Bug Fixes

  • remove unused casparcg useScheduling option (#294) (06d3c96)

9.0.0-release50.6 (2023-08-25)

Bug Fixes

  • httpSend: Use the same types for the sendCommand action as a timeline object (#269) (3385217)
  • vmix: fix scenario where the media load retry system would load clips into playlists twice (8ceddb2)

9.0.0-release50.5 (2023-07-03)

9.0.0-release50.4 (2023-07-03)

9.0.0-release50.3 (2023-07-03)

9.0.0-release50.2 (2023-07-03)

9.0.0-release50.1 (2023-07-03)

9.0.0-release50.0 (2023-07-03)

⚠ BREAKING CHANGES

  • DeviceType enum has been changed from a number-based to a string-based one
  • json schemas for device config and mappings (#237)

Features

  • add restart command to vMix inputs (e16e8c1)
  • DeviceType enum has been changed from a number-based to a string-based one (dd03bcc)
  • json schemas for device config and mappings (#237) (d43f3dc)
  • replace makeready (5abe41e)
  • SOF-1254 add me_clean support for mix ouputs (7f3fb9c)
  • SOF-1254 add temporal priority to TriCaster (7133774)
  • upgrade singular.live to API v2 (2bb5c4d)
  • Use strings for DeviceType enum (f1b95bc)
  • vMix: retry sending media load commands if the file wasn't found (4321aae)

Bug Fixes

  • add types support for vMix stingers 3 and 4 (44fa27d)

9.0.0-release50.6 (2023-08-25)

Bug Fixes

  • httpSend: Use the same types for the sendCommand action as a timeline object (#269) (3385217)

9.0.0-release50.5 (2023-07-03)

Note: Version bump only for package timeline-state-resolver-types

9.0.0-release50.4 (2023-07-03)

Note: Version bump only for package timeline-state-resolver-types

9.0.0-release50.3 (2023-07-03)

Note: Version bump only for package timeline-state-resolver-types

9.0.0-release50.2 (2023-07-03)

Note: Version bump only for package timeline-state-resolver-types

9.0.0-release50.1 (2023-07-03)

Note: Version bump only for package timeline-state-resolver-types

9.0.0-release50.0 (2023-07-03)

⚠ BREAKING CHANGES

  • DeviceType enum has been changed from a number-based to a string-based one
  • json schemas for device config and mappings (#237)

Features

  • add restart command to vMix inputs (e16e8c1)
  • DeviceType enum has been changed from a number-based to a string-based one (dd03bcc)
  • json schemas for device config and mappings (#237) (d43f3dc)
  • replace makeready (5abe41e)
  • upgrade singular.live to API v2 (2bb5c4d)
  • Use strings for DeviceType enum (f1b95bc)
  • vMix: retry sending media load commands if the file wasn't found (4321aae)

Bug Fixes

  • add types support for vMix stingers 3 and 4 (44fa27d)

8.1.2 (2023-12-21)

Bug Fixes

  • suppress quantel disconnect shortly (f04befb)

8.1.0 (2023-10-19)

Features

  • VizMSE action to send clear-commands (configured on the device settings) to all Engines in the Profile (38e313f)

8.0.0 (2023-10-05)

Features

  • atem audio routing control SOFIE-2512 (#274) (de9dfd1)

Bug Fixes

  • export lawo parametertype (65a73c4)

8.0.0-release49.0 (2023-03-21)

8.0.0-release48.2 (2023-03-21)

Features

Bug Fixes

  • change DeviceType.MULTI_OSC value (386ba6c)

7.5.0 (2023-02-28)

7.5.0-release47.7 (2023-02-24)

Features

  • vmix: add support for ListRemoveAll and ListAdd commands (4a7240f)
  • vmix: add support for starting and stopping VB.NET scripts (9f2d4ee)

8.0.0-release48.1 (2023-02-14)

7.5.0-release47.6 (2023-02-07)

7.5.0-release47.5 (2023-01-16)

7.5.0-release47.4 (2023-01-13)

Features

8.0.0-release48.0 (2022-12-12)

⚠ BREAKING CHANGES

  • refactor types to work better with typescript 4.7 (#227)

Features

  • import quick-tsr to this repository (bd42303)
  • refactor types to work better with typescript 4.7 (#227) (abe499c)
  • translations for actions (df4cb43)

Bug Fixes

  • add optional parameter to HTTPSend timelineObj: paramsType (979dc61)
  • add support for Node 18 (6242dd6)

7.5.0-release47.3 (2022-11-07)

7.5.0-release47.2 (2022-11-02)

7.5.0-release47.1 (2022-11-02)

Features

  • update for casparcg-connection rewrite (5dfdd23)

7.5.0-release47.0 (2022-10-28)

7.3.0 (2022-10-24)

Features

Bug Fixes

  • update SofieChef device API (514d827)

8.0.0-release49.0 (2023-03-21)

⚠ BREAKING CHANGES

  • resolve MSE show names to IDs using the directory

Features

  • Emit debug state (516a512)
  • multi osc device (b987680)
  • resolve MSE show names to IDs using the directory (e094dda)
  • SOF-1254 add TriCaster integration (06b129e)
  • SOF-1254 add TriCaster matrix support (dbb1b26)
  • Vmix preset actions (8b31294)
  • vmix: add support for ListRemoveAll and ListAdd commands (4a7240f)
  • vmix: add support for starting and stopping VB.NET scripts (9f2d4ee)

Bug Fixes

  • change DeviceType.MULTI_OSC value (386ba6c)
  • SOF-1254 improve types (0471a7b)
  • SOF-1254 type guards and make some properties optional (f8b8aab)

8.0.0-release48.2 (2023-03-21)

8.0.0-release48.1 (2023-02-14)

8.0.0-release48.0 (2022-12-12)

Features

  • import quick-tsr to this repository (bd42303)
  • translations for actions (df4cb43)
  • update for casparcg-connection rewrite (5dfdd23)

8.0.0-release48.1 (2023-02-14)

8.0.0-release48.0 (2022-12-12)

Features

  • import quick-tsr to this repository (bd42303)
  • translations for actions (df4cb43)
  • update for casparcg-connection rewrite (5dfdd23)

8.0.0-release48.0 (2022-12-12)

Bug Fixes

  • add optional parameter to HTTPSend timelineObj: paramsType (979dc61)
  • add support for Node 18 (6242dd6)

Features

  • import quick-tsr to this repository (bd42303)
  • translations for actions (df4cb43)
  • update for casparcg-connection rewrite (5dfdd23)

7.5.0 (2023-02-28)

Note: Version bump only for package timeline-state-resolver-types

7.5.0-release47.7 (2023-02-24)

Note: Version bump only for package timeline-state-resolver-types

7.5.0-release47.6 (2023-02-07)

Note: Version bump only for package timeline-state-resolver-types

7.5.0-release47.5 (2023-01-16)

Note: Version bump only for package timeline-state-resolver-types

7.5.0-release47.4 (2023-01-13)

Bug Fixes

  • add optional parameter to HTTPSend timelineObj: paramsType (979dc61)
  • add support for Node 18 (6242dd6)

7.5.0-release47.3 (2022-11-07)

Note: Version bump only for package timeline-state-resolver-types

7.5.0-release47.2 (2022-11-02)

Note: Version bump only for package timeline-state-resolver-types

7.5.0-release47.1 (2022-11-02)

Note: Version bump only for package timeline-state-resolver-types

7.5.0-release47.0 (2022-10-28)

Bug Fixes

  • update SofieChef device API (514d827)

Features

7.4.0-release46.1 (2022-09-27)

7.4.0-release46.0 (2022-09-26)

Bug Fixes

  • index datastore references by path (9b48d72)
  • invert warnOnEmptySlots to suppressEmptySlotWarnings (edcd7b0)
  • move all references to the root of the tl obj (130b6c3)
  • put 'em back to make linter happy (e83a5ed)
  • types: remove unsupported/manual transport statuses (b362072)
  • update typings with datastore references (2c0074b)

Features

  • HyperDeck: add "warnOnEmptySlots" option (233a413)
  • Hyperdeck: add support for play and goto commands (50e9e15)
  • timeline datastore prototype (e122e8b)

7.3.0 (2022-10-24)

Note: Version bump only for package timeline-state-resolver-types

7.3.0-release44.2 (2022-09-29)

Note: Version bump only for package timeline-state-resolver-types

7.3.0-release44.1 (2022-09-22)

Note: Version bump only for package timeline-state-resolver-types

7.3.0-release44.0 (2022-07-04)

7.1.0-release42.1 (2022-04-29)

Features

  • SOF-752 show init and cleanup (44264b0)

Reverts

  • Revert "7.1.0" (8ce054c)
  • Revert "test: Rename package on publish" (855f772)

1.0.2-release37.1 (2021-09-02)

7.1.0-release42.1 (2022-04-29)

Features

  • SOF-752 show init and cleanup (44264b0)

Reverts

1.0.2-release37.4 (2021-11-08)

1.0.2-release37.3 (2021-10-14)

Reverts

  • Revert "test: Rename package on publish" (855f772)

1.0.2-release37.1 (2021-09-02)

7.0.0 (2022-06-27)

Note: Version bump only for package timeline-state-resolver-types

7.0.0-release41.2 (2022-04-28)

Bug Fixes

  • move the types DeviceStatus, StatusCode to timeline-state-resolver-types (4d84179)
  • obs: add missing mapping type to MappingOBSAny (2ff5522)

7.0.0-release41.1 (2022-04-12)

Bug Fixes

  • move the types DeviceStatus, StatusCode to timeline-state-resolver-types (4d84179)
  • obs: add missing mapping type to MappingOBSAny (2ff5522)

7.0.0-release41.0 (2022-03-21)

Note: Version bump only for package timeline-state-resolver-types

6.4.0-release39.1 (2022-02-03)

Note: Version bump only for package timeline-state-resolver-types

6.3.0 (2022-01-26)

Bug Fixes

  • Updated links to match the changed repo name (6fe910f)

6.3.0-release38.0 (2021-12-17)

Note: Version bump only for package timeline-state-resolver-types

6.2.0 (2021-12-08)

Note: Version bump only for package timeline-state-resolver-types

6.2.0-release37.4 (2021-09-30)

Bug Fixes

  • emitting of 'debug' events should only be done if the debug property is truthy. (5d015a1)

6.2.0-release37.1 (2021-09-21)

Features

  • map sisyfos channel by its label (afcf056)
  • purge unknown elements from the viz-rundown upon activation (cff4d0c)

6.2.0-release37.0 (2021-09-13)

Note: Version bump only for package timeline-state-resolver-types

6.1.0-release36.0 (2021-07-12)

Features

  • OBS: Support OBS Live Video Production Software (#187) (f2fe81a)
  • resend failing http commands (cb2ee39)