diff --git a/config.json b/config.json index 0078fd0..a3fa561 100644 --- a/config.json +++ b/config.json @@ -9,7 +9,7 @@ "10.6.3.222" ], "live_services": [], - "editing_code": "stingo serried warp" + "editing_code": "7381" }, "companion": { "host": "127.0.0.1", @@ -382,7 +382,8 @@ "kind": "task", "name": "Start OBS", "exe": "obs64.exe", - "elevated": true + "elevated": true, + "args": "--disable-shutdown-check" } ], "manual_done": { @@ -749,22 +750,46 @@ "label": "turn Companion's connection to that HyperDeck off and on (what gets a restarted deck green); never reboots the deck", "template": "hyperdeck", "params": {} + }, + "tascam_power": { + "kind": "local", + "template": "outlet_cycle", + "short": "TASCAM PWR", + "timeout": 300, + "reconnect": true, + "conn": "tascam", + "label": "power-cycle the Tascam through its smart plug when its control port does not answer (off 45 s, on, wait for it to come back), then reconnect Companion; its Dante card only comes back from the unit's own power button; never while a HyperDeck is recording", + "run": "/usr/bin/python3 \"$HOME/Library/Application Support/status-panel/settings/outlet.py\" cycle tascam --ping 10.1.11.74 --dante STUDIO-B-Tascam --wait 45", + "params": { + "outlet": "tascam", + "address": "10.1.11.74", + "wait_seconds": 45, + "dante": "STUDIO-B-Tascam" + } } }, "atem": { "host": "10.1.10.2", "node": "/Applications/Companion [0-9]*.app/Contents/Resources/node-runtimes/node22/bin/node", "library": "~/Library/Application Support/companion/modules/bmd-atem-*/node_modules/atem-connection", - "reference": "atem-reference.xml" + "reference": "atem-reference.xml", + "source_folder": "~/Library/CloudStorage/GoogleDrive-media@waterschurch.org/Shared drives/Waters Creative/Production Team/Backup/NA/ATEM" }, "auto_fix": { "windows": [ + { + "days": [ + "wed" + ], + "end": "21:00", + "start": "16:00" + }, { "days": [ "sun" ], - "start": "06:30", - "end": "13:30" + "end": "13:30", + "start": "06:30" } ], "after_seconds": 20, @@ -936,6 +961,282 @@ } ] }, + "ready_page": { + "page": 24, + "page_name": "24\\nReady", + "back_pos": [ + 3, + 0 + ], + "keys": [ + { + "id": "rd_tracks", + "label": "TRACKS", + "pos": [ + 0, + 1 + ], + "checks": [ + { + "type": "ready", + "item": "tracks", + "fix": "ready_recheck" + } + ] + }, + { + "id": "rd_foh", + "label": "FOH MIX", + "pos": [ + 0, + 2 + ], + "checks": [ + { + "type": "ready", + "item": "mix_foh", + "fix": "ready_recheck" + } + ] + }, + { + "id": "rd_boh", + "label": "BOH MIX", + "pos": [ + 0, + 3 + ], + "checks": [ + { + "type": "ready_manual", + "item": "mix_boh" + } + ] + }, + { + "id": "rd_lights", + "label": "LIGHTS", + "pos": [ + 0, + 4 + ], + "checks": [ + { + "type": "ready", + "item": "lights", + "fix": "ready_recheck" + } + ] + }, + { + "id": "rd_midi", + "label": "MIDI", + "pos": [ + 0, + 5 + ], + "checks": [ + { + "type": "midi_peer", + "host": "tracks", + "session": "NA Tracks", + "peer": "Lighting PC", + "tag": "FX LIGHTS", + "fix": "midi_reconnect", + "address": "10.1.10.206:5004" + }, + { + "type": "midi_peer", + "host": "tracks", + "session": "NA Tracks", + "peer": "SuperRack-LiveBox", + "tag": "TRK LIVEBOX", + "fix": "midi_reconnect", + "address": "10.1.13.140:5004" + }, + { + "type": "midi_peer", + "host": "tracks", + "session": "NA Tracks", + "peer": "Studio B Mac Studio", + "tag": "TRK STUDIO B", + "fix": "midi_reconnect", + "address": "\tStudio B Mac Studio\tlocal." + }, + { + "type": "remote", + "host": "tracks", + "cmd": "pgrep -xq Live", + "msg": "ABLETON NOT RUNNING", + "fix": "ableton", + "template": "mac_program", + "params": { + "host": "tracks", + "process": "Live" + } + } + ] + }, + { + "id": "rd_prop", + "label": "PROP", + "pos": [ + 1, + 1 + ], + "checks": [ + { + "type": "ready", + "item": "prop", + "fix": "ready_recheck" + } + ] + }, + { + "id": "rd_timecode", + "label": "TIMECODE", + "pos": [ + 1, + 2 + ], + "checks": [ + { + "type": "ready", + "item": "timecode", + "fix": "ready_ltc" + } + ] + }, + { + "id": "rd_bg", + "label": "BKGDS", + "pos": [ + 1, + 3 + ], + "checks": [ + { + "type": "ready", + "item": "backgrounds", + "fix": "ready_recheck" + } + ] + }, + { + "id": "rd_cross", + "label": "LED CROSS", + "pos": [ + 1, + 4 + ], + "checks": [ + { + "type": "ready", + "item": "led_cross", + "fix": "ready_led_cross" + } + ] + }, + { + "id": "rd_lineup", + "label": "LINEUP TV", + "pos": [ + 2, + 1 + ], + "checks": [ + { + "type": "ready", + "item": "lineup", + "fix": "ready_lineup" + } + ] + }, + { + "id": "rd_green", + "label": "GREEN ROOM", + "pos": [ + 2, + 2 + ], + "checks": [ + { + "type": "ready_manual", + "item": "greenroom" + } + ] + }, + { + "id": "rd_mics", + "label": "MICS", + "pos": [ + 2, + 3 + ], + "checks": [ + { + "type": "ready_manual", + "item": "mics", + "msg": "TAP WHEN SET" + } + ] + }, + { + "id": "rd_stage", + "label": "STAGE", + "pos": [ + 2, + 4 + ], + "checks": [ + { + "type": "ready_manual", + "item": "stage", + "msg": "HELIX, RISERS: TAP" + } + ] + }, + { + "id": "rd_trk_out", + "label": "TRACKS OUT", + "pos": [ + 3, + 1 + ], + "checks": [ + { + "type": "ready", + "item": "track_bundle", + "fix": "ready_copy_tracks" + } + ] + }, + { + "id": "rd_prop_out", + "label": "PROP OUT", + "pos": [ + 3, + 2 + ], + "checks": [ + { + "type": "ready", + "item": "prop_bundle", + "fix": "ready_recheck" + } + ] + }, + { + "id": "rd_all", + "label": "READY", + "pos": [ + 3, + 7 + ], + "kind": "ready" + } + ] + }, "tiles": [ { "id": "all", @@ -1158,7 +1459,8 @@ "type": "ping", "conn": "tascam", "host": "10.1.11.74", - "name": "TASCAM" + "name": "TASCAM", + "fix": "tascam_power" } ] }, @@ -1304,10 +1606,6 @@ { "id": "spotify", "label": "SPOTIFY", - "pos": [ - 2, - 7 - ], "hold_always": "spotify_play", "checks": [ { @@ -1316,6 +1614,15 @@ } ] }, + { + "id": "ready", + "label": "READY", + "pos": [ + 2, + 7 + ], + "kind": "ready" + }, { "id": "vista", "label": "VISTA", diff --git a/settings/outlet.py b/settings/outlet.py index cd4c1cb..826a938 100644 --- a/settings/outlet.py +++ b/settings/outlet.py @@ -166,7 +166,7 @@ def cycle(name, wait=8, ping=None, dante=None, ignore_live=False, data=None): if dante_has(dante): return True, "%s power-cycled; %s and its Dante card are back after %d s" % (name, ping, int(time.time() - t0)) time.sleep(5) - return False, "%s power-cycled; %s answers but its Dante card (%s) is not back after 180 s - press its power button off and on" % (name, ping, dante) + return True, "%s power-cycled; %s answers again, but its Dante card (%s) only comes back from the unit's own power button: press it off and on" % (name, ping, dante) def main(argv):