A wrapper for the Ableton Link library, a technology that synchronizes musical beat, tempo, and phase across multiple applications running on one or more devices. Applications on devices connected to a local network discover each other automatically and form a musical session in which each participant can perform independently: anyone can start or stop while still staying in time. Anyone can change the tempo, the others will follow. Anyone can join or leave without disrupting the session.
For further details, see Ableton Link.
This is my first shot at wrapping a C++ library for Rust. Also, I'm pretty much a C/C++ noob. So expect some rough edges.
I'm not totally sure about the all the design choices, especially the with_app/audio_session_state
- methods. If you see a better way, PR's are welcome.
This has only been tested on macOS and seems to compile on Linux as well. Don't know about Windows or others...