/beat-carabiner

A minimal tempo bridge between Pioneer Pro DJ Link and Ableton Link in Clojure.

Primary LanguageClojureEclipse Public License 2.0EPL-2.0

beat-carabiner

a blue carabiner

project chat

A Clojure library for bridging Pioneer Pro DJ Link networks and Ableton Link.

License

Note

🚧 This project is undergoing major changes. It has become a library that manages the binding between Ableton Link and Beat Link, incorporating two years of improvements to Beat Link and Beat Link Trigger, so that it supports sync in both directions, from DJ Link to Ableton Link (as it always has), and also the reverse. To eliminate duplication of work, and make sure everyone is always getting the latest code, Beat Link Trigger is now using this new library instead of having its own copy of the code.

The ability to run beat-carabiner as a standalone project for use in headless environments like the Raspberry Pi has moved to a new project, Open Beat Control. In addition to all the features that used to be available in the original Beat Carabiner project, it makes Beat Link features available to other programs (such as Max/MSP, Max4Live, and Pure Data) using Open Sound Control. A few features have been chosen initially to prove the concept, and more will be added over time.

Caution

Although you can still download an old standalone version of beat-carabiner from the Releases page here, it is no longer documented or supported, and we encourage you to switch to Open Beat Control (and read its user guide), because it gives you many new features for Ableton Link synchronization alone, as well as its other capabilities.

Usage

  1. Set up a Clojure project using Leiningen or Boot.

  2. Add this project as a dependency: Clojars Project

  3. In the namespace from which you want to use beat-carabiner, add this to the :require section of the ns form:

    [beat-carabiner.core :as beat-carabiner]
    

Then consult the API documentation for how to use it. cljdoc badge

Although it is possible to download (or build) and start your own copy of Carabiner if you are working on an operating system or processor architecture that is not yet supported by lib-carabiner, in most situations you can let beat-carabiner automatically manage an embedded instance for you using lib-carabiner. You will need at least Java 9 to load lib-carabiner, but a current release will perform better and have more recent security updates.

Java Version

If you are a Java developer who’d like to use the capability offered by this library without having to embed Clojure and work with interop code, or would just find it easier to study a Java implementation, this has been ported as beat-carabiner-java.

Getting Help

Zulip logo

Deep Symmetry’s projects are generously sponsored with hosting by Zulip, an open-source modern team chat app designed to keep both live and asynchronous conversations organized. Thanks to them, you can chat with our community, ask questions, get inspiration, and share your own ideas. You can also open an issue on the project.

Logging Configuration

beat-carabiner uses the excellent Timbre logging framework. If you do nothing, log messages above the debug level will be written to the standard output. But you can configure it however you would like, as described in its documentation.

Licenses

Deep Symmetry

Copyright © 2017–2023 Deep Symmetry, LLC

Distributed under the Eclipse Public License 2.0. By using this software in any fashion, you are agreeing to be bound by the terms of this license. You must not remove this notice, or any other, from this software. A copy of the license can be found in LICENSE.md within this project.

The included copies of Carabiner are distributed under the GNU General Public License, version 2. A copy of the license can be found in gpl-2.0.md within this project.