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 anabl_link
instanceabletonlink.create_session_state()
: creates anabl_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.