Coder Social home page Coder Social logo

stefanboca / cabl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from shaduzlabs/cabl

0.0 0.0 0.0 1.17 MB

Controller ABstraction Layer

License: MIT License

CMake 7.42% Shell 0.10% C++ 81.85% C 7.29% HTML 1.76% JavaScript 0.75% CSS 0.48% Python 0.37%

cabl's Introduction

CABL / Controller ABstraction Layer


Build Status Build status Coverage Status

Supported platforms

  • OSX
  • Linux
  • Windows
  • Various embedded platforms (in progress)

Supported controllers

  • Ableton Push
  • Ableton Push2
  • Komplete Kontrol S25
  • Komplete Kontrol S49
  • Komplete Kontrol S61
  • Komplete Kontrol S88
  • Maschine Jam
  • Maschine Mk1
  • Maschine Mk2
  • Maschine Mikro Mk1
  • Maschine Mikro Mk2
  • Traktor Kontrol F1 Mk2

Binaries

  • Download OSX 64 bit
  • Download Linux x86 64 bit
  • Download Windows 32 bit
  • Download Windows 64 bit

Building from the source

OSX

Make sure the following packages/applications are installed:

Then install libUSB (>=1.0.20), HIDAPI (>= 0.8.0) and RtMIDI (>=2.1.0) if needed:

brew install hidapi libusb rtmidi

If you want to build the python wrapper, you'll need to install Boost.python:

brew install boost --with-python
brew install boost-python

IMPORTANT: the python wrapper has only been tested with python 2.7.x

And if you want to build the documentation, you'll need to install Doxygen:

brew install doxygen

Clone this repository locally, initialize the submodules and create a build subdirectory:

git clone https://github.com/shaduzlabs/cabl.git
cd cabl
git submodule update --init --recursive
mkdir build && cd build

Now launch CMake, build and (eventually) install:

cmake ..
make
sudo make install

Please have a look at the CMake appendix for more CMake options.

Linux

Make sure the following packages/applications are installed:

  • CMake (>=3.4)
  • Clang (>= 3.7) or GCC (>= 4.9)

Then install libUSB (>=1.0.20), HIDAPI (>= 0.8.0) and RtMIDI (>=2.1.0) if needed (depending on your linux distribution and dependency manager, the command below might look slightly different):

sudo apt-get install libusb-1.0-0-dev libhidapi-dev librtmidi-dev

If you want to build the python wrapper, you'll need to install Boost.python:

sudo apt-get install libboost-python-dev

IMPORTANT: the python wrapper has only been tested with python 2.7.x

And if you want to build the documentation, you'll need to install Doxygen:

sudo apt-get install doxygen

Clone this repository locally, initialize the submodules and create a build subdirectory:

git clone https://github.com/shaduzlabs/cabl.git
cd cabl
git submodule update --init --recursive
mkdir build && cd build

Now launch CMake, build and (eventually) install:

cmake ..
make
sudo make install

Please have a look at the CMake appendix for more CMake options.

Windows

Make sure the following packages/applications are installed:

  • CMake (>=3.4)
  • Visual Studio 2015 or above

If you want to build the documentation, you'll need to install Doxygen.

Clone this repository locally and create a build subdirectory:

git clone https://github.com/shaduzlabs/cabl.git
cd cabl
git submodule update --init --recursive
mkdir build
cd build

Now launch CMake:

cmake ..

If all worked fine, you shoould end up with several VS project files and a solution (cabl.sln).

Please have a look at the CMake appendix for more CMake options.

Python bindings on Windows

To build the Python bindings on Windows, you'll need:

  • Python 2.7.12
  • Boost Python 1.62

If you don't have them installed, the easiest solution is to use Chocolatey. After installing Chocolatey, you can install nuget with

choco install nuget.commandline

Then, from the directory you want to install boost_python to, run

nuget install boost_python-vc140 -Version 1.62.0

Download and install Python (32bit or 64bit), then set the following variables:

set PYTHON_ROOT=C:\Python27
set MY_LIBS_ROOT=C:\MyBuildDir

The first one points to the Python installation directory, the second points to the directory where you installed boost_python.

Now follow the Windows build steps above, except the cmake command, which will have to be:

cmake -DPYTHON_LIBRARY=%PYTHON_ROOT%\libs\python27.lib -DBOOST_LIBRARYDIR=%MY_LIBS_ROOT%\boost_python-vc140.1.62.0.0\lib\native\address-model-32\lib -DBOOST_INCLUDEDIR=%MY_LIBS_ROOT%\boost.1.62.0.0\lib\native\incl
ude -DPYTHON_INCLUDE_DIR=%PYTHON_ROOT%\include ..

Appendix

CMake options

By default, CMake is configured to build only the static version of the library. You can override this setting using:

  • BUILD_STATIC_LIBS=[ON|OFF]
  • BUILD_SHARED_LIBS=[ON|OFF] For example, if you want to build both the shared and the static library, you'll need to write:
cmake -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=ON ..

On Windows LibUSB, HIDAPI and RtMIDI are downloaded from the respective repositories and built locally in the build subdirectory, so you don't need to have them installed on the system. If for some reason you want the same behavior on Linux or OSX, you can override CABL_FORCE_BUILD_DEPENDENCIES (default is OFF) and set it to ON.

cmake -DCABL_FORCE_BUILD_DEPENDENCIES=ON ..

cabl's People

Contributors

shaduzlabs avatar ni-vpacella avatar stefanboca avatar bsjones avatar quasart avatar nrb0 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.