tv2 / sisyfos-audio-controller

Intelligent Audio for Automation systems
Other
41 stars 15 forks source link

Sisyfos Audio Controller

Node CI

Audiomixer control build for intelligent automation.

You use the fader for the level, and PGM on/off for fade-in/out. TAKE NEXT crossfades from NEXT to PGM

It´s fast to see what faders are on-aie, and whether they are PGM level or Voiceover level

GUI with open channelstrip:

These are the functions on each channel:

These are the functions on the channelstrip:

(You open the channelstrip by clicking on the channel label) The features on the channelstrip depends on the Mixer Protocol.

Full Channelstrip:

(You open the channelstrip by clicking on the "Full Ch.Strip" in the normal channelstrip)

The Advanced channelstrip has all the features the seleced Mixer Protol supports. (Example: Midas M32)

If you need a MiniMonitorView for a client:

Run webpage with

localhost/?view=minimonitor

If you need a Microphone Tally View for a client:

Run webpage with

localhost/?view=mic-tally
Microphone Tally View

Routing of Faders to Channels

Routing of Faders to multiple channels or a single channel are possible. This way Sisyfos can control some or all channels on a mixer. And a single fader can be used for E.G. a 5.1 (on 6 mono faders)

Load/Save Routing

Routing setups can be stored in STORAGE. So it´s possible to have different Routings dependent of what setup the Audio mixer is using.

Run as Docker: (On linux)

docker pull tv2media/sisyfos-audio-controller:develop
docker volume create sisyfos-vol
sudo docker run --mount source=sisyfos-vol,target=/opt/sisyfos-audio-controller/storage --network="host" --restart always tv2media/sisyfos-audio-controller:develop

Run as Docker: (On windows)

docker pull tv2media/sisyfos-audio-controller:develop
docker volume create sisyfos-vol
docker run --mount source=sisyfos-vol,target=/opt/sisyfos-audio-controller/storage -p 1176:1176 -p 5255:5255 --restart always tv2media/sisyfos-audio-controller:develop

Install Local node host:

(Be aware that a server reload will quit server and you need an external source to restart)

git clone https://github.com/tv2media/sisyfos-audio-controller.git
cd sisyfos-audio-controller
yarn
yarn build
yarn start

Log levels:

When running Sisyfos you can define the log level by setting the environment variable LOG_LEVEL to one of the following log levels:

Open GUI in browser:

localhost:1176 (or whatever ip you use for Sisyfos Nodejs/Docker)

Important - To enable settings:

localhost:1176/?settings=1

To see the MiniMonitorView:

localhost:1176/?minimonitor=1

If you want to disable the VU meters:

localhost:1176/?vu=0

Settings:

Show PFL Controls:

As NEXT has been implemented, and PFL usually only work on on channel at a time, the PFL is only working correctly on 1:1 routed setups (And with the CasparCG protocol)

(Mixer presets are stored in MixerProtocolPresets.js)

Following preset name are possible:

Skaarhoj panels:

Skaarhoj in RAW panel mode is supported for rotary buttons including labels.

The monitor sends are the same as those on the Channel Strip.

Automation Support:

It´s possible to control the Producers-Audio-Mixer from an automationsystem, for it to act as middleware.

Set state:

To set the state send these OSC commands from you Automation to ProducersAudioMixer Port: 5255:

Set channel to PGM (optional: indiviaul fadetime):

(the integer defines: 0 - Off, 1 - Pgm On, 2 - Voice Over) (if second is missing it will take default fade value) /ch/1/mix/pgm - integer: { 0, 1 or 2 } - float { fadetime in ms }

Set channel to PST:

/ch/1/mix/pst - integer: { 0, 1 or 2 } (the integer defines: 0 - Off, 1 - Pgm On, 2 - Voice Over)

Mute channel:

/ch/1/mute - integer: { 0, 1 } (the integer defines: 0 - Mute off, 1 - Mute On)

Set channel faderlevel:

(the first defines the fader level) (if second is missing it will take default fade value) /ch/1/mix/faderlevel - float {between 0 and 1} - float { fadetime in ms }

Set channel label:

/ch/1/label - string {name of channel}

Inject Command:

Pass a command directly from Automation to Audiomixer /inject

Crossfade between PGM and PST:

/take

Set snap 1-xx to PST:

/snap/1

Fade all channels to black (mute)

/fadetoblack

Clear all pst buttons

/clearpst

Hide or show channel strips on GUI:

/ch/{value1}/visible - integer { 0 or 1 }

Get state:

Get full state of all channels:

/state/full - returns a json string with an array of channels: { pgmOn: boolean, pstOn: boolean, faderLevel: boolean }

Get state channel PGM:

/state/ch/1/mix/pgm - returns pgm state integer { 0 or 1 }

get state channel PST:

/state/ch/1/mix/pst - returns pgm state integer { 0 or 1 }

Get state channel faderlevel:

/state/ch/1/mix/faderlevel - float {between 0 and 1}

get state channel Mute:

/state/ch/1/mute - returns mute state integer { 0 or 1 }

Get state group PGM:

/state/ch/1/mix/pgm - returns pgm state integer { 0 or 1 }

get state group PST:

/state/ch/1/mix/pst - returns pgm state integer { 0 or 1 }

Get state group faderlevel:

/state/ch/1/mix/faderlevel - float {between 0 and 1}

Check connectivity

/ping/{value} In response to a ping, sisyfos will reply with /pong and the provided value OR 'offline' if Audiomixer is not connected

Localization:

Localization can be found in: /client/i18n.ts

If we end up with a huge amount of translations we move the translations to seperate files, but for now we keep it simple.