Skip to content

A library for communicating with Live via WebSockets, works both in NodeJS and in the Browser.

Notifications You must be signed in to change notification settings

ricardomatias/ableton-live

Repository files navigation

Ableton Live

A library for communicating with Ableton Live via WebSockets, works both in Node and in the Browser.

Requirements

  • Ableton Live 11
  • Max 4 Live

Installation

  1. Install package
npm install --save ableton-live
  1. Drag and drop external/LiveAPI.amxd to any track in Ableton Live (f.ex, Master Track)

  2. Done!

Usage

Browser

import { AbletonLive } from 'ableton-live';

NodeJS

// polyfill for a browser API compatible WebSocket
if (process) {
    global.WebSocket = require('ws');
}
import { AbletonLive } from 'ableton-live';
// or
const { AbletonLive } = require('ableton-live');

Example

import { AbletonLive } from 'ableton-live';

const live = new AbletonLive();

const main = async () => {
    try {
        await live.connect();

        const tracks = await live.song.children('tracks');
        const clips = await tracks[0].getClips();
        const notes = await clips[0].getNotes();

        notes.forEach(note => console.log(note.pitch));
    } catch (error) {
        console.error(error);
    }
};

main();

Documentation

Found at https://ricardomatias.net/ableton-live/

Credits

A loose fork of ableton-js, which was a great source of inspiration on how to approach handling Live's Object Model.

Development

When not receiving try running sudo lsof -i :send_port_number and make sure only Max is using it.