Skip to content

Python SDK Guide 🐍

The Pybleton Python SDK provides an asynchronous, strictly-typed wrapper around Ableton's Live Object Model (LOM).

💡 Quick Example

import asyncio
from pybleton import Pybleton

async def main():
    # Connect via OSC to Ableton Live
    live = await Pybleton.connect(host="127.0.0.1", send_port=11000, recv_port=11001)

    # Access LiveSet properties
    print(f"Current Tempo: {live.set.tempo} BPM")

    # Traverse Tracks and Devices
    vocal_track = live.set.tracks["Vocal Lead"]
    reverb_device = vocal_track.devices["Reverb"]

    # Set parameter values asynchronously
    decay_param = reverb_device.parameters["Decay"]
    await decay_param.set_value(2.5)

    # Fire a clip
    await vocal_track.clips[0].fire()

    await live.disconnect()

if __name__ == "__main__":
    asyncio.run(main())

🏗️ LOM Class Hierarchy

  • Pybleton: Top-level SDK client entry point.
  • LiveSet: Manages song-level parameters (tempo, signature, tracks).
  • Track: Represents individual Audio, MIDI, or Return tracks.
  • Device: Audio FX, MIDI FX, or Instruments loaded on a track.
  • Parameter: Individual controllable device parameters with min/max validation.
  • Clip: Audio or MIDI clips inside clip slots.