Skip to content

Grouping tools: honest error, not cryptic AttributeError - #5

Merged
Ziforge merged 1 commit into
mainfrom
honest-grouping
Sep 9, 2026
Merged

Ziforge merged 1 commit into
mainfrom
honest-grouping

Conversation

@Ziforge

@Ziforge Ziforge commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Track grouping isn't in the LOM in most Live versions (GUI-only). Guard create_group_track/group_tracks with hasattr and return a clear error instead of throwing. 🤖 Generated with Claude Code

create_group_track / group_tracks call song.create_group_track(), which is
not in the LOM in most Live versions (track grouping is GUI-only). Guard with
hasattr and return a clear 'GUI-only, use Cmd+G' error; keep the real path for
any version that does expose it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Ziforge
Ziforge merged commit f4c8cd6 into main Sep 9, 2026
@Ziforge
Ziforge deleted the honest-grouping branch September 9, 2026 01:34
Ziforge added a commit that referenced this pull request Sep 9, 2026
…es (#6)

Addresses the tool-surface audit in issue #3 (verified on Live 12.4). Tools that
referenced Live Object Model members that don't exist now either work or return
an honest {"ok": false} instead of a no-op ok:true or a misleading "not available".

Honest "not exposed by the Live Object Model" errors:
- freeze_track / unfreeze_track / flatten_track (only read-only is_frozen/
  can_be_frozen exist; no freeze trigger, no Track.flatten())
- get/set_track_delay (no Track.delay)
- get/set_track_annotation, get/set_clip_annotation (no annotation member)
- get/set_clip_follow_action, set_follow_action_time (no Clip.follow_action_*;
  set_clip_follow_action no longer falsely returns ok:true)
- get/set_groove_amount (no Track.groove_amount; groove is per-clip Clip.groove)
- delete_take_lane (no Track.delete_take_lane())
- get/set_metronome_volume (Song.metronome is on/off bool, not a volume)

Made real:
- send_midi_cc / send_program_change now send via c_instance.send_midi(...) (a
  Remote Script sends MIDI through the control-surface layer, not Song.send_midi)
- clip fades read/write clip.sample.sample_env_fade_in/out (audio clips only),
  with an honest error otherwise

Grouping already fixed in #4/#5. Routing/sub-routing already made real in #4.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant