Skip to main content

An interposer between the SRComp REST API and OSC controlled devices.

Project description

srcomp-live

A bridge between the SRComp REST API and OSC controlled devices. OSC is a de-facto standard for theatrical automation. Being able to directly interface these to SR's automation software allows for using industry standard tools such as Qlab, MagicQ & OBS.

Installation

srcomp-live can be installed directly from PyPi with:

pip install srcomp-live

If you (wrongly) believe that YAML is a better configuration format, support for YAML files can be included by running:

pip install srcomp-live[yaml]

This will provide the srcomp-live command that is used to interact with the package.

Configuration

Here is an example configuration file that sets a theoretical lighting controller to red 10 seconds before the start of a match and white if the match ends unexpectedly.

{
    "api_url": "http://compbox.srobo/comp-api/current",
    "api_type": "srcomp",
    "devices": {
        "lighting": "192.168.0.2:8000"
    },
    "actions": [
        {
            "time": -10,
            "device": "lighting",
            "message": "/set_color/{match_num}",
            "args": ["#FF0000"],
            "description": "Set the color of the lighting to red"
        }
    ],
    "abort_actions": [
        {
            "device": "lighting",
            "message": "/set_color",
            "args": ["#FFFFFF"],
            "description": "Set the color of the lighting to white"
        }
    ],
    "match_slot_lengths": {
        "pre": 60,
        "match": 150,
        "post": 90
    }
}

The configuration contains a number of sections. The api_url key is the URL of the API endpoint to access to get information about the current match. The api_type key is the type of API to use, currently only srcomp is supported.

The devices section contains a list of devices that can be controlled by the system. Each device is given a name and an address to send OSC messages to. The name is used in the actions and abort_actions sections to specify which device to send the action to.

The actions section contains a list of the actions that will be executed within the match. The keys available in each action are listed below.

Key Description
time The relative number of seconds after the start time of the match to execute this action
device The name of the device configured in the devices section to send this action to
message The OSC message to send
args A list of one or more arguments to send along with the OSC message
description A description to include in the log message when executing the action

The abort_actions section has the same set of keys as the actions section, except for the time key. These actions are all executed if the system detects a match unexpectedly end or the time within a match decrease. This can be used to stop sound effects and set lighting to an out of match state when match is delayed.

The match_slot_lengths section contains the lengths of the different sections of a match slot in seconds. These are used to validate that the actions fall within the match slot and to allow test-mode to correctly simulate the match.

Templating

The active match number can be included in the OSC message or arguments by using the {match_num} template. This will be replaced with the current match number when the action is executed.

To allow templating the match number into integer and float arguments, the template string {<match_num:int>} or {<match_num:float>} can be used. This will be replaced with the current match number when the action is executed, but as a number rather than a string.

Running

Once the configuration file has been created, there are a few tools available to test this configuration. To try out the configuration, you can use the command:

srcomp-live --test-mode <config>

This will run the configuration in test mode, where the actions will be executed as if they were being run during a match, without needing to connect to the SRComp API.

If you want to test the abort actions, you can use the command:

srcomp-live --test-abort <config>

This will run all the configured abort actions, and then exit.

To run the configuration, where the actions will be executed based on the current match state, you can use the command:

srcomp-live <config>

When running in normal mode, the program will continue to run until it is stopped with Ctrl+C.

While running, the program will log messages to the console. These messages will include a message a few seconds before each action is performed and a message when the action is run. If the program detects that a match has unexpectedly ended or the time has gone backwards, it will log a warning message.

Useful cues

Program Action OSC Message
MagicQ Jump to Cue /pb/<playback>/<cue>
MagicQ Activate playback /pb/<playback>/go
MagicQ Release playback /pb/<playback>/release
QLab Connect to workspace [/workspace/<id>]/connect <password-string>
QLab Run cue [/workspace/<id>]/go
QLab Run specific cue [/workspace/<id>]/go/<cue>
QLab Stop cue [/workspace/<id>]/stop
QLab Immediately stop all cues [/workspace/<id>]/hardStop/[/workspace/<id>]/panic
QLab Jump to cue [/workspace/<id>]/select/<cue>

See also:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

srcomp_live-0.9.1.tar.gz (17.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

srcomp_live-0.9.1-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file srcomp_live-0.9.1.tar.gz.

File metadata

  • Download URL: srcomp_live-0.9.1.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for srcomp_live-0.9.1.tar.gz
Algorithm Hash digest
SHA256 e178e3dc5fb07f7a82593dd27805078a8a72fdd96956b0aedf9a90462faefcc1
MD5 b4436e3a36bd9e9732622f14889c4058
BLAKE2b-256 d5f7841abb276bde11821e2ce257d185044448b08f012e778d4823a488fa82f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for srcomp_live-0.9.1.tar.gz:

Publisher: test_build.yml on WillB97/srcomp-live

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srcomp_live-0.9.1-py3-none-any.whl.

File metadata

  • Download URL: srcomp_live-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 15.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for srcomp_live-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 054df0d0326a89bac7a9fd894977d17028ce0a44fad8d844ac2f0e779df82556
MD5 980beb05a94958db4db979c1152f32f5
BLAKE2b-256 c2edaf195b246ef2cf2ce58f1dba9f6161c0a88a196f4cacc44013c45636f8f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for srcomp_live-0.9.1-py3-none-any.whl:

Publisher: test_build.yml on WillB97/srcomp-live

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page