- Edited
Ableton's new open source SDK allows to easily synchronize devices over a local (wired or wireless) network. Regardless of whether you have any Ableton product in your setup, you can now enjoy bpm and phase synchronization between devices, making jams and sequencing a breeze.
More info here:
http://cdm.link/2016/11/free-jazz-now-ableton-link-sync-works-pure-data/
The [abl_link~]
Pd object wraps Ableton's SDK into a Pd external, thanks to the ongoing effort of the libpd
community.
I tried to compile the external on Bela and it compiled out of the box. Unfortunately, there were mode switches at every audio block and continuous dropout. A bit of investigation made me realize that these were due to the use of mutexes and clock services. Trying to wrap those with Xenomai calls as per the Xenomai manual caused issues, which I further dug down being more in general related to libstdc++
and the Xenomai posix skin, so I reported these to the Xenomai list.
At this point I had two options: either re-implementing Ableton's locks, tasks and clock services using the Xenomai native API, or moving the whole Link process to a separate thread, making the audio thread much lighter.
I went for the second option, which surely was easier, but I am not sure whether this may cause some imprecision in the timing, especially when the system is busy.
This seems to work and is now available for anyone who want to give it a try. It seems like it can be good fun.
Get the pre-compiled external, installation instructions and example patch here:
https://github.com/giuliomoro/abl_link/releases/tag/v0.0
Please report bugs here.