Files
status-indicators/tools/abletonosc/install.sh
T
christianandClaude Opus 5.5 625d424bda LIGHT TIMING: the real offset up to a full 16th, no flag on a cue already on a solid hit, hold moves the cues
- Detection in 2.5 ms steps; where a hit starts is halfway up its rise; each song's cues on solid hits
  set its "on time"; a cue already on a solid hit is never named; "about a 16th" when it is
- Hold: moves the off cues onto their hit in the open set through a status panel command added to
  AbletonOSC (tools/abletonosc), keeping each cue's end; the key asks for a save until the set is saved

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:31:33 -04:00

30 lines
1.2 KiB
Bash

#!/bin/zsh
# Adds the status panel's commands to AbletonOSC on this Mac (the Tracks Mac) and reloads AbletonOSC.
# Run from NA Ingest: ssh tracks 'zsh -s' < install.sh (statuspanel.py copied next to AbletonOSC first)
# Reloading clears AbletonOSC's listeners: reconnect Companion's AbletonOSC connection afterwards.
set -e
D="$HOME/Music/Ableton/User Library/Remote Scripts/AbletonOSC/abletonosc"
cp /tmp/statuspanel.py "$D/statuspanel.py"
if ! grep -q "statuspanel" "$D/__init__.py"; then
cat >> "$D/__init__.py" <<'PY'
# The status panel's commands (status-indicators tools/abletonosc): registered with the track handler.
try:
import importlib as _importlib
from . import statuspanel as _statuspanel
_importlib.reload(_statuspanel)
class TrackHandler(TrackHandler):
def init_api(self):
super().init_api()
try:
_statuspanel.register(self)
except Exception:
logger.exception("statuspanel: not registered")
except Exception:
logger.exception("statuspanel: not loaded")
PY
fi
/usr/bin/python3 -c 'import socket; s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM); s.sendto(b"/live/api/reload\0\0\0\0,\0\0\0", ("127.0.0.1", 11000))'
echo "installed and reloaded"