Building from source (Mac/Linux)

Technical documentation

Building the TouchKeys application from source requires the following three libraries:

1. Juce []: cross-platform C++ libraries covering everything from low-level data structures to a complete GUI toolkit.

2. boost []: C++ utility libraries. The required libraries are header-only (none of the compiled boost libraries are needed). Libraries used include boost::circular_buffer, boost::bind and boost::function.

3. liblo []: OSC library.

Standard compiler tools (Xcode on Mac, g++ on Linux) are also required.


Instructions for downloading Juce can be found here:

On Mac, no further setup is needed, but it can be helpful to build the Introjucer application, which creates and edits Juce projects and produces the project for Xcode. An Xcode project for Introjucer can be found in juce/extras/Introjucer/Builds/MacOSX.

On Linux, Juce depends on several libraries. This thread contains more information on installing the dependencies on Linux. As on Mac, it can be useful to build the Introjucer application, which is found in juce/extras/Introjucer/Builds/Linux.

Projects for Mac and Linux (Xcode and Makefile, respectively) are already created in the TouchKeys directory (touchkeys/Builds). There is also a Linux32 target (touchkeys/Builds/Linux32) used for cross-compiling a 32-bit Linux binary on a 64-bit system; this is not needed to compile for the native architecture of the machine.

Windows support is not yet added in this release, but will take the form on a Visual Studio project within the touchkeys/Builds directory.

The existing project files assume TouchKeys and Juce are located in the same directory. To change the path to Juce, open the TouchKeys.jucer file in the Introjucer.


Download the latest boost release from Further instructions on installing boost can be found here:

Note that all boost libraries used by TouchKeys are header-only, so it is not necessary to compile the binary libraries. However, the boost header files must be located somewhere in the include search path (e.g. in /usr/local/include).


TouchKeys has been built with liblo 0.26, which can be downloaded from

Binary releases of the TouchKeys software link liblo statically, so the program can be run on machines without liblo installed. The Xcode project and Linux Makefile are therefore configured to look for a static library at /usr/local/lib/liblo.a. (This can be changed in the Introjucer.) To build a static library, go to the liblo directory and run the following:

./configure --enable-static


sudo make install

Note: on Mac, if you want to build a universal binary (32/64-bit), you need to create a universal version of liblo. Use the following arguments to configure to produce a universal build (original source):

./configure CFLAGS="-arch i386 -arch x86_64" CXXFLAGS="-arch i386 -arch x86_64" LDFLAGS="-arch i386 -arch x86_64" \
  --disable-dependency-tracking --enable-static

Building TouchKeys

Once the dependencies are installed, the TouchKeys application can be compiled.

On Mac: open touchkeys/Builds/MacOSX/TouchKeys.xcodeproj

On Linux: in the touchkeys/Builds/Linux directory, type make.