Coder Social home page Coder Social logo

push2-display-with-juce's Introduction

README

About this repository

This repository contains C++ source code that demonstrates how to communicate with Ableton's Push 2 display. The example uses JUCE, allowing the use of all the existing juce::Graphics methods to render the content of the display. Thanks to JUCE, it is also cross-platform and can be compiled using MacOS, Windows, and Linux.

Together with our Push interface description, this enables you to take full control of Push to develop custom software.

To get an idea of what this can allow you to do, here's an example video of Mutable Instrument's drum sequencer "Grid" running standalone on a Raspberry Pi driven from a Push 2.

Note

The low-level classes used to communicate with the display are not tied to JUCE in any way. This means they can be extracted from this example and used in another framework if desired.

License

This software is distributed under the MIT License.

Dependencies

In order to communicate over USB, this example uses libusb. On MacOS and Windows, libusb is compiled as part of the example. On Linux, you will need to use your favorite package manager to install the development package; for example,

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

Note that if you ship an application using libusb, you should ensure that you respect their licensing terms.

On Linux, you will also need to fetch the packages needed for JUCE.

How do I get set up?

Setting up the repository

Clone the repo (including the submodules for JUCE and libusb):

git clone --recurse-submodules https://github.com/Ableton/push2-display-with-juce.git

Building

The example uses the standard JUCE folder structure and, although it doesn't make any sound, is based on the "Audio Application" template from the Introjucer.

There are projects ready for Xcode and Visual Studio 2013, as well as a Linux Makefile-based system, all located in the Builds folder.

Running

Once the program is compiled, running it will open a window on the computer's screen and display an animation on the Push display. As a bonus, the computer window will display MIDI messages generated by touching the Push 2 pads, buttons, and knobs.

Note that by default on Linux, the USB port can only be used by root. Unless you change the device's permissions, you will need to sudo to execute the binary.

cd Builds/LinuxMakefile/

make

sudo ./build/juce2push2

Customization

If you would like to quickly hack some drawing of your own, have a look at the Demo::drawFrame() method in juce2push2/Source/Push2Demo.cpp.

Maintainers

Happy coding!

push2-display-with-juce's People

Contributors

mre-ableton avatar mst-ableton 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.