"Link is a technology that keeps devices in time over a local network, so you can forget the hassle of setting up and focus on playing music."
https://www.ableton.com/en/link/
overtone.ableton-link
is a glue between the official open source c++ library and Clojure via JNA.
This library provides precompiled binaries which have been tested on various computers.
Special thanks to 2bbb for his wonderful node-abletonlink
- Windows x86_64 on JVM x86_64
- OsX x86_64 on JVM x86_64
- Linux x86_64 on JVM x86_64
(other platforms upon request, open a ticket)
For Windows and Machintosh, make sure to accept the firewall dialog that appears as you enable ableton-link,
for linux users that use firewall, make sure that port 20808
is open, with iptables this would be
iptables -A INPUT -p tcp --dport 20808 -j ACCEPT
service iptables restart
(to make iptable rule permanent, please use google)
enable-link
:[boolean] => nil
If passed true, will enable link and network discovery, false for turning link off.link-enabled?
:[] => booolean
Returns true if link is enabled.get-beat
:[] => number
Reads from the clock and returns the current beat value.set-beat-now
:[number] => nil
Sets the current beat to a given value next time when all peers in sessions are togeather on same phase, if there's only one client in session, this will take effect immedietly.set-beat-at
:[beat<number> timestamp<number>] => nil
Sets the beat to a given value at a given timestamp, the timestamp should be in microseconds.set-beat-and-quantum-now
:[beat<number> quantum<number>] => nil
Sets the current beat and quantum to a given value next time when all peers in sessions are togeather on same phase, if there's only one client in session, this will take effect immedietly.set-beat-and-quantum-at
:[beat<number> quantum<number> timestamp<number>] => nil
Sets the current beat and quantum to a given value at a given timestamp, the timestamp should be in microseconds.set-beat-force
:[number] => nil
USE WITH CAUTION, this will set the current beat for all in session on a give value, will take effect immedietly and could cause disconinuity (may be anti-social behaviour).get-phase
:[] => number
Reads from the session and returns the phase of the beat.get-bpm
:[] => number
Reads from the session and returns the current bpm valueset-bpm
:[number] => nil
Commits new bpm value to the session, takes effect immedietly.get-num-peers
:[] => number
Reads from the session and returns the number of peers connected.set-quantum
:[number] => nil
Commits new quantum to the session, quantum is the quantization of a bar, similar to division of a musical time signature.
Overtone's Ableton-Link is licensed under GPLv3+