home/ atoms/ abletonosc-live-reload-dev-workflow

AbletonOSC supports hot-reloading its own handler code by sending /live/api/reload, avoiding a full Live restart during development

During development of AbletonOSC-based tools, modifying the Python handler files normally requires restarting Ableton Live to pick up the changes. AbletonOSC avoids this with a /live/api/reload OSC message that calls importlib.reload() on all handler modules, then clears and rebuilds the full API handler registry (clear_api + init_api). Active handlers/listeners are cleared before the reload so stale callbacks don’t call deleted code. This makes the iterative loop much faster: edit a file, send /live/api/reload, test — no Live restart required. (Note: the CONTRIBUTING doc still references the old address /live/reload; the live handler is registered at /live/api/reload.)

Examples

In a terminal: ./run-console.py, then: /live/api/reload (no params). AbletonOSC logs ‘Reloaded code’ and all handlers are fresh. Unit tests also use this endpoint to reset state between test runs.

Assessment

When developing a custom AbletonOSC handler, what do you send to pick up code changes without restarting Live? What is cleared before the new handlers are registered, and why is clearing listeners important?

“AbletonOSC supports dynamic reloading of the handler code modules so that it's not necessary to restart Live each time the code is modified.”
corpus · abletonosc-osc-control-interface-for-ableton-live-live-objec · chunk 1