git.s-ol.nu lua-abletonlink / main
main

Tree @main (Download .tar.gz)

abletonlink

Lightweight Lua wrapper of the Ableton Link C API (abl_link).

API

The module follows the C API very closely. See the abl_link.h for comments for the various methods.

The module table has three members:

  • abletonlink._VERSION: a string like "1.0.0"
  • abletonlink.create(number bpm): creates an abl_link instance
  • abletonlink.create_session_state(): creates an abl_link_session_state instance

abl_link instances have the following methods:

  • link:is_enabled() -> bool
  • link:enable(bool?) (defaults to true)
  • link:is_start_stop_sync_enabled() -> bool
  • link:enable_start_stop_sync(bool?) (defaults to true)
  • link:num_peers() -> int
  • link:clock_micros() -> int
  • link:capture_audio_session_state(session_state output)
  • link:commit_audio_session_state(session_state input)
  • link:capture_app_session_state(session_state output)
  • link:commit_app_session_state(session_state input)
  • link:destroy(): Destroys this instance. Calling any other method on a destroyed instance causes an error. This is automatically called in __gc.
  • link:set_*_callback are not currently implemented.

abl_link_session_state instances have the following methods:

  • session_state:tempo() -> number
  • session_state:set_tempo(number bpm, int at_time)
  • session_state:beat_at_time(int time, number quantum) -> number
  • session_state:phase_at_time(int time, number quantum) -> number
  • session_state:time_at_beat(number beat, number quantum) -> int
  • session_state:request_beat_at_time(number beat, int time, number quantum)
  • session_state:force_beat_at_time(number beat, int time, number quantum)
  • session_state:set_is_playing(bool, int at_time)
  • session_state:is_playing() -> bool
  • session_state:time_for_is_playing() -> int
  • session_state:request_beat_at_start_playing_time(number beat, number quantum)
  • session_state:set_is_playing_and_request_beat_at_time(bool, int time, number beat, number quantum)
  • session_state:destroy(): Destroys this instance. Calling any other method on a destroyed instance causes an error. This is automatically called in __gc.