Commit Graph

4 Commits

Author SHA1 Message Date
valknar ac6a049516 Fix Ableton Live detection: add root __init__.py and harden Manager init
Live scans the Remote Scripts folder for __init__.py with create_instance()
at the *root* of the script folder. Our create_instance was buried inside
the AbletonOSC/ subpackage, so Live never found it.

Also:
- Inner AbletonOSC/__init__.py: guard import with try/except for pytest compat
- Manager: use show_message() (Live status bar) instead of log_message()
- Manager: wrap OSCServer.start() in try/except OSError so a port conflict
  surfaces as a readable status message instead of a silent crash
- Manager: run handler init inside component_guard() as required by the
  Ableton ControlSurface framework
- Manager stub: add show_message, schedule_message, component_guard no-ops
  so out-of-Ableton tooling/tests don't break

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 12:46:42 +02:00
valknar caaa055c8a Fix build backend to use setuptools.build_meta
setuptools.backends.legacy is not available in older pip environments;
switch to the standard setuptools.build_meta and add wheel to requires.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 12:38:10 +02:00
valknar 08e4b9e8bd Add comprehensive README with full OSC API reference
Documents every endpoint across all 13 handlers: song, track,
return_track, clip, clip_slot, device (incl. rack chains, drum pads,
sub-device params), scene, view, application, browser, groove.
Includes protocol reference, indexing rules, listener pattern,
installation steps, network config, and architecture overview.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 12:31:41 +02:00
valknar aad042650e Initial implementation: full Ableton Live 11 OSC remote script
Covers all major Live API objects with get/set/listen/method handlers:
song, track, return_track, clip, clip_slot, device (incl. rack chains
and drum pads), scene, view, application, browser, groove.

Zero external runtime dependencies — OSC encoded/decoded in osc_server.py.
Wildcard * support for track/scene indices. Listener callbacks fire to
matching /get/ addresses for bidirectional state sync.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 12:27:47 +02:00