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:
2026-10-26 15:26:07 -04:00
co-authored by Claude Opus 5.5
parent a3b38cbd5d
commit 47a2c12a12
5 changed files with 216 additions and 64 deletions
+21 -10
View File
@@ -205,7 +205,10 @@ other special service `Projects/NA/<date> NA <plan title> Project`.
"5- SALVATION" did with 3 songs); more: slots are added like the last one. A song too long for its slot pushes the
loop locators, loop cues and later slots along in whole bars, so a loop never fires inside a song.
4. **Tempo map** and one **TEMPO** label clip per tempo (`128.00 BPM`). The tempo is the one the song's audio was
cut at; a different PCO tempo is named in the log.
cut at; a different PCO tempo is named in the log. The label clips **lead the song tempo** (Live's leader /
`IsSongTempoMaster`): Live plays the tempo their warp markers say, over the tempo map, so each clip's markers are
made for its BPM. (Until 2026-10-26 they kept the base set's 143 under every name, so 261101 played, and was
consolidated, at 143 throughout.)
5. **Waves Tune** key cue at every locator (minor keys use their relative major).
6. **Each song from Finished Songs** at its locator, in its PCO key if that version exists, else the nearest key:
then its **pitched** stems are transposed the PDF's way (warp on, Complex Pro, formants 0, transpose). Drums,
@@ -222,15 +225,23 @@ other special service `Projects/NA/<date> NA <plan title> Project`.
9. **Consolidate, warp off** (in Live, `ready.start_consolidate`): the PDF's order is warp on, Complex Pro,
formants 0, transpose, **consolidate, warp off**. The first four are in the set file; for the last two the job opens
the set in Live (when another set is open, and never while Live plays; Live asks about unsaved changes itself, and
the job gives up after 3 minutes: **OPEN ... IN LIVE**, hold again), then for every clip still transposed: selects
it in the arrangement, clicks Edit › Consolidate (Live renders it with Complex Pro into
`Samples/Processed/Consolidate`), turns the new clip's warp off, and at the end clicks File › Save Live Set. An
unpitched clip found transposed (a set built before 2026-10-26) only goes back to 0 with warp off. A clip that is
not where the saved set has it (changed in Live since) is left and named. The key shows **CONSOLIDATING 12/49**;
ROUTING and IN EARS show START IN LIVE meanwhile (the job holds AbletonOSC's answers on the Tracks Mac), and once
it is done NA Ingest hands AbletonOSC back to Companion. A hold of START does this for this week's sets that are
already there too. Uses the status panel's AbletonOSC commands (`clip`, `select_clip`, `set_clip` in
`tools/abletonosc/statuspanel.py`).
the job gives up after 3 minutes: **OPEN ... IN LIVE**, hold again). Then, one track at a time, for every pitched
track with a clip still transposed: it selects the track and clicks **Edit › Freeze Track, then Flatten Track**,
which renders the clip exactly as it plays (transposed, Complex Pro, at the set's tempo there) into
`Samples/Processed/Freeze`; it turns the new clip's warp off and names it the way Consolidate does
(`Piano [2026-10-26 143736]`, so routing and Finished Songs still know the stem). Not Edit › Consolidate itself: a
script cannot select one clip in Live's arrangement, and Edit › Select Loop selects every track, so Consolidate
also merged the SECTIONS markers and lighting cues (tested on a copy 2026-10-26). The song stems carry no devices,
so the flattened audio is what Consolidate makes. An unpitched clip found transposed (a set built before
2026-10-26) only goes back to 0 with warp off. A clip that is not where the saved set has it (changed in Live since)
is left and named. At the end the groups it unfolded are folded again and File › Save Live Set is clicked (about
10 s a track). The key shows **CONSOLIDATING 12/44**; ROUTING and IN EARS show START IN LIVE meanwhile (the job holds
AbletonOSC's answers on the Tracks Mac), and once it is done NA Ingest hands AbletonOSC back to Companion. A hold of
START does this for this week's sets that are already there too. Uses the status panel's AbletonOSC commands
(`clip`, `select_clip`, `set_clip`, `refold` in `tools/abletonosc/statuspanel.py`; a track with no name of its own
shows its number in Live, "56-Piano" for the file's "5-Piano", so names are matched without it).
**The tempo matters**: a transposed clip is warped, so it is rendered at the tempo Live plays there. With the
TEMPO label clips leading at a wrong tempo (step 4) a song is rendered at the wrong length.
Every audio file is copied into the new project (as Collect All and Save does) with an `Ableton Project Info` folder
(Live finds no audio without it: 2026-10-22). A set that is already there is never touched; a new one is built as