START: render transposed clips with Freeze/Flatten, TEMPO leader clips at their own tempo
Tested in Live on copies of 261101 (2026-10-26): - Edit > Consolidate cannot be aimed at one clip from a script (no LOM selection; Edit > Select Loop selects every track, so Consolidate merged the SECTIONS markers and lighting cues). Each pitched track is now Freeze Track + Flatten Track (same audio: the stems have no devices), warp off, named like Consolidate names it; the Freeze tail clips and "(Freeze)" track names are removed. Groups unfolded to select, refolded. - The TEMPO label clips lead the song tempo (IsSongTempoMaster): START renamed the base set's 143 clip without its warp markers, so Live played 261101 at 143 and consolidating rendered songs at the wrong length. lead_tempo() makes the markers match the BPM. - AbletonOSC commands match Live's numbered/stamped track names; new refold and drop_tails commands. - A run that stopped picks up flattened clips; START's look runs before the ROUTING/IN EARS reads. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+7
-6
@@ -1848,6 +1848,13 @@ def look(cfg, now=None, data_dir=None, sources=None):
|
||||
lines["track_bundle"] = eval_track_bundle(rc, al)
|
||||
except Exception as e: # noqa: BLE001
|
||||
failed(["tracks", "mix_foh", "lights", "keys", "tune", "light_timing"] + (["track_bundle"] if rc.get("locations") else []), e)
|
||||
# START first: while it consolidates in Live it holds AbletonOSC's answers on the Tracks Mac.
|
||||
if start_on(rc):
|
||||
try:
|
||||
services = src["services"]()
|
||||
lines["start"] = eval_start(rc, services, src["start"](services), now)
|
||||
except Exception as e: # noqa: BLE001
|
||||
failed(["start"], e)
|
||||
if rc.get("tracks_host") and rc.get("ableton_osc") and start_in_live():
|
||||
for k in ("routing", "ears"):
|
||||
lines[k] = Line()
|
||||
@@ -1862,12 +1869,6 @@ def look(cfg, now=None, data_dir=None, sources=None):
|
||||
lines["lineup"] = eval_lineup(rc, plan, src["lineup"]())
|
||||
except Exception as e: # noqa: BLE001
|
||||
failed(["lineup"], e if isinstance(e, ReadyError) else ReadyError("LINEUP UNREACHABLE"))
|
||||
if start_on(rc):
|
||||
try:
|
||||
services = src["services"]()
|
||||
lines["start"] = eval_start(rc, services, src["start"](services), now)
|
||||
except Exception as e: # noqa: BLE001
|
||||
failed(["start"], e)
|
||||
if ((cfg.get("resi_events") or {}).get("pco_specials")) and not sources:
|
||||
try:
|
||||
LAST["resi_specials"] = resi_specials(rc, now)
|
||||
|
||||
Reference in New Issue
Block a user