Repository inventory

mikecfisher/ableton-lom-skill

Skills indexed from this repository, with install-style signals scoped to the repo.
1 skills1 GitHub stars0 weekly installsGitHubOwner profile

Overview

This skill is a comprehensive Ableton Live Object Model (LOM) API reference tailored for developing Remote Scripts in Python targeting Live 12.3. It maps core objects (Song, Track, Clip, Device, DeviceParameter, Scene, ClipSlot, MixerDevice, Chain, RackDevice, Browser, and specialized devices) with property types, access modes, observability, method signatures, and canonical paths. Use it to build, extend, or debug control surface integrations and Python automation for Ableton Live.

How this skill works

The skill describes the Live object hierarchy and exposes canonical paths like "live_set tracks 0 devices 1 parameters 2" so you can locate and manipulate objects. It documents property access modes (read-only, read-write, observable), listener patterns, threading rules, and common code patterns for iterating tracks, adding listeners, and changing parameters. Version-specific notes for Live 12.3 (Python 3, insert_device/insert_chain, AB Compare) are included to ensure compatibility.

When to use it

  • Building or extending Ableton Remote Scripts in Python
  • Creating MCP or network servers that control Ableton Live programmatically
  • Developing hardware control surface integrations and mappings
  • Automating Live sessions, clips, devices, and song transport
  • Debugging or reverse-engineering Live object relationships and canonical paths

Best practices

  • Schedule all state changes on Ableton's main thread (use schedule_message) to avoid crashes
  • Prefer observable properties and add_..._listener callbacks for reactive UIs
  • Validate object existence (has_clip, device indices) before accessing attributes
  • Use canonical paths to reason about object locations and reproduce operations reliably
  • Test scripts with backups of Live Sets and keep a separate development set

Example use cases

  • Create a control surface script that maps encoder/slider input to device parameters and updates when parameters change
  • Implement a script that auto-arms or mutes tracks based on scene selection and transport state
  • Build an MCP server that exposes Live's Song and Device APIs over a network for remote control
  • Automate clip creation and MIDI note insertion via Clip and ClipSlot methods
  • Load and configure instruments or effect chains using insert_device and insert_chain calls

FAQ

This reference targets Live 12.3. Many API elements are present in Live 11+, but features like insert_device/insert_chain and some Live 12 additions may be missing in older versions.

How do I avoid thread-related crashes when modifying Live state?

Always schedule state modifications on the main thread using schedule_message or the ControlSurface scheduling helpers; do not modify Live objects from background threads or async callbacks.

1 skills

More from this maintainer
Other repositories and skills published under the same GitHub owner.
Skills library
Jump back to the full directory or explore grouped topics.
Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational