ableton link for openFrameworks
README
ofxAbletonLink
Ableton Link addon for openFrameowkrs
Test
OSX Yosemite 10.14.6 Xcode 11.2 oF0.10.1 osx release
Automated tests
testApp runs no-window unit tests for the public settings API and verifies that constructing and destroying ofxAbletonLink adds and removes exactly one openFrameworks update listener. Its Make build uses C++20 to exercise the std::result_of compatibility layer.make -C testApp Debug OF_ROOT=/path/to/openFrameworks
make -C testApp RunDebug OF_ROOT=/path/to/openFrameworksGitHub Actions runs the same tests with openFrameworks 0.12.1 using macOS Make, macOS Xcode, Linux Make, and Windows Visual Studio builds.
Setup
git clone --recursive git@github.com:2bbb/ofxAbletonLink.gitif you don't use ProjectGenerator
add header search path ofxAbletonLink/libs/compat ofxAbletonLink/libs/link/include ofxAbletonLink/libs/link/modules/asio-standalone/asio/include add project ofxAbletonLink/src/ofxAbletonLink.h !!! DON'T add other files to project
C++ dialect
The bundled Ableton Link (2019) uses
std::result_of in PeerGateways.hpp. That trait was removed in C++20; std::invoke_result arrived in C++17.libs/compat (first include path) shadows PeerGateways.hpp and picks the trait from the language mode:C++11 / C++14 (OF 0.10–0.11):
std::result_of C++17+: std::invoke_resultOn C++20+ only,
ofxAbletonLink.h also sets ASIO_HAS_STD_INVOKE_RESULT so Asio 1.14 does not using std::result_of (Asio enables that itself on MSVC already). Older dialects are left alone so C++11/14 OF projects keep building.Drop
libs/compat when bumping the libs/link submodule to a Link release that already uses invoke_result.Update histor
2026/08/31 ver 0.0.4
C++20/23:
std::invoke_result when the dialect is C++17+; keep std::result_of for older OF. Asio ASIO_HAS_STD_INVOKE_RESULT only on C++20+.2019/11/25 ver 0.0.3
update version of ableton link to 20496fa142efc27bfe4abf939126d820df998cab add ofxAbletonLinkSetting for construct / setup implement features about sync play state. (what abletonlink named playStop)
2018/05/21 ver 0.0.2
update version of ableton link to 3.0.1
2016/11/28 ver 0.0.1
License
MIT License.
Dependencies license
Ableton Link
Ableton/link
GNU GPL v2.0
Copyright 2016, Ableton AG, Berlin. All rights reserved.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
If you would like to incorporate Link into a proprietary software application,
please contact <link-devs@ableton.com>.asio
Catch
chriskohlhoff/asio philsquared/Catch
boost v1.0
Boost Software License - Version 1.0 - August 17th, 2003
Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:
The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.Author
ISHII 2bit [bufferRenaiss co., ltd.] ishii[at]buffer-renaiss.com
ofxAddons