Skip to content


Albert Graef edited this page Aug 29, 2019 · 13 revisions


The easiest way to get up and running is to use one of the available binary packages, see below. But it is also possible to compile Purr Data from source if needed.

macOS and Windows

Mac and Windows packages are available from the Github releases page.

  • Current macOS / OSX versions (10.11 or later): Download the package. Double-clicking unzips the package, giving you an OSX disk image (.dmg) file. Double-click the dmg file and install the application into your Applications folder as usual. For older macOS / OSX versions (10.8 and later), use the package instead.

  • Windows (XP, Vista, 7, 8, 10): Download the file, double-click to unpack it and run the installer executable inside. Please note that this is a 32 bit package, but it will work fine on the latest (64 bit) flavors of Windows.

Note that depending on your OS you may have to go through the necessary incantations to allow the OS to install and run an unsigned application. On macOS, when running the application for the first time, launch the program by right-clicking it in the Application folder, choosing "Open", and then confirm that you want to run the application. On Windows, you have to confirm that you want the installer to modify your system.


NOTE: There are some Linux packages on the Github releases page as well, but these are for older Linux versions and must be installed manually. Only install these if your system exactly matches the Debian/Ubuntu version indicated by the package version, otherwise these packages won't work. Instead, we recommend that you use the JGU repositories whenever possible, see below.

The Johannes Gutenberg University (JGU) at Mainz/Germany maintains a collection of packages hosted on SuSE's Open Build Service (OBS). For want of a catchier name, these are also called the JGU repositories. You can find them at

The JGU repositories offer the following advantages:

  • A wider range of different Linux systems is supported. At the time of this writing, we offer packages for Arch Linux, openSUSE (Tumbleweed and Leap), and recent Debian and Ubuntu releases.

  • "Classic" Pd-l2ork and Purr Data can be installed alongside each other.

  • The packages are available through proper package repositories and thus can be installed and updated automatically through your distribution's standard package manager. Required dependencies will also be installed automatically. Dependencies are provided in the JGU repositories if they are not in the distribution's own standard package repositories.

  • The packages are updated more frequently (also between releases) from the current git sources whenever there are important new features or bugfixes.

  • Additional programming extensions for the Faust and Pure programming languages are available (albeit in separate repositories, please check the Pure On Arch Linux and Pure On Debian/Ubuntu wiki pages of the Pure project for details).

Installing From the JGU Repositories

OBS maintains package collections for different distributions in different package repositories. At the time of this writing, we have the following repositories available:

This encompasses Arch Linux, the most recent Debian and Ubuntu releases, Raspbian which is the Debian derivative running on the Raspberry Pi, as well as openSUSE Leap (the stable release) and Tumbleweed (the rolling release).

(Note the "x" in front of the Ubuntu release names. Apparently that's just the generic OBS name for all Ubuntu flavors. In any case, you'll have to follow that naming scheme to get to the package repositories.)

Each repository has its own URL from which you can either download packages and install them manually, or add the repository to your distribution's package manager as explained below. You can find them by clicking on the links above (pick your system and version).


The following goes into /etc/pacman.conf:

SigLevel = Never
Server =$arch

Then just run:

pacman -Sy
pacman -S purr-data

To also install "classic" Pd-l2ork (this will pull in some additional dependencies):

pacman -S pd-l2ork

(All of this needs to be done as root, using either sudo or su.)


You should import the repository key first, so that the packages can be updated automatically (this only needs to be done once):

wget -nv
apt-key add Release.key

Then add the repository to your apt sources as follows (taking Debian 10 as an example):

echo 'deb /' > /etc/apt/sources.list.d/home:aggraef.list
apt update

NOTE: This creates the source in a separate file /etc/apt/sources.list.d/home:aggraef.list. You can just remove this file when you don't need the repository any more.

Finally install the package:

apt install purr-data

To also install "classic" Pd-l2ork (this will pull in some additional dependencies):

apt install pd-l2ork

All of this needs to be done as root, using either sudo or su. Use "Debian_9.0" instead if you're running Debian Stretch rather than Buster; likewise if you're running Unstable or Testing.


This works exactly the same as Debian, using "Raspbian" in lieu of "Debian":

sudo su

wget -nv
apt-key add Release.key

echo 'deb /' > /etc/apt/sources.list.d/home:aggraef.list
apt update

apt install purr-data

Use "Raspbian_9.0" instead if you're running Raspbian Stretch rather than Buster.


Again, this works exactly the same as Debian, using, e.g., "xUbuntu_18.04" in lieu of "Debian_10":

sudo su

wget -nv
apt-key add Release.key

echo 'deb /' > /etc/apt/sources.list.d/home:aggraef.list
apt update

apt install purr-data

Replace "18.04" with the version of Ubuntu you use.


NOTE: The openSUSE builds are somewhat experimental right now. In particular, the flite external is not supported, because the required dependencies are not available. Also note that some of the multimedia functionality (Gem video, in particular) will require proprietary media codecs and thus won't work in stock openSUSE. You will need to add third-party repositories like Packman to make these work.

We take Tumbleweed as an example here, if you're running Leap then replace "Tumbleweed" with "Leap_15.1" or whatever version you use.

sudo su

zypper addrepo
zypper refresh
zypper install purr-data

Installing From Source

NOTE: Purr Data is a complicated package with many parts and many dependencies. Depending on the operating system that you use, getting all the dependencies installed can be a laborious process, and the compilation itself can take quite a while, even on modern hardware. That said, compiling Purr Data is a lot less scary than it used to be.

To build Purr Data from source, you'll have to clone the git repository as follows:

git clone

Or, if you prefer to build straight from Wilke's upstream repository:

git clone

Make sure that you have all the requisite dependencies installed (Linux, Mac, Windows), then run make in the toplevel source directory:


On Debian/Ubuntu, Mac and Windows this should leave the ready-made package in the toplevel source directory. Install this as usual. On other Linux systems you can run the following command instead (this also works on Debian/Ubuntu, if you prefer this method or if you don't have the Debian packaging tools installed):

sudo make install

After a make install, you can uninstall the software again as follows:

sudo make uninstall

Afterwards, to clean the source directory:

make realclean

Note that this puts the source into pristine state again, like after a fresh checkout, so that you can run make from a clean slate again. Also, all build artifacts will be gone, and hence you won't be able to run make install or make uninstall any more. So you want to do this only after you've finished the installation process.

Purr Data "Light"

There are some ways to speed up the build, please check the Makefile for details. In particular, try running:

make light

This will build a minimal, no-frills, vanilla-like Purr Data system with just the essential externals included. This build finishes much faster. It will also lack the everything-and-the-kitchen-sink collection of externals which a Purr Data installation normally includes. But vanilla Pd users might actually prefer it that way.

Using MacPorts

When compiling on the Mac, the build instructions tell you to install dependencies from Homebrew. If you have Homebrew on your Mac already, that's fine, but if you're using MacPorts instead, then you can also just install the dependencies from there. This requires a few changes in the script, however. If you go that route, you can just use my macports-build branch on Bitbucket in lieu of the main repository. You can grab that branch as follows:

git clone --branch=macports-build

Then make sure that you have the requisite Mac dependencies installed from MacPorts and compile as explained above.

Running Purr Data

Having installed Purr Data, it's time to kick the tires. You can learn more about Purr Data and how to use it in our Meet The Cat tutorial. Or just run the application and launch the help browser (Ctrl+B on Linux and Windows, Cmd+B on the Mac, or choose "Help Browser" from the Help menu) to discover things and have fun!

Purr Data should provide you with some icon (named "Purr Data" or "Pd-l2ork") to launch the program, either in the start menu (Linux, Windows), or in the Launchpad and the Applications folder (Mac). On Linux, it's also possible to run the application from the command line, by executing the purr-data program (if you're using the JGU packages), or pd-l2ork (if you've installed Purr Data from source or a non-JGU package).

First-Time Setup

You will probably want to set up your audio and MIDI devices first. This is done in the Preferences dialog (Ctrl+P on Linux and Windows, Cmd+, on the Mac, or choose "Preferences" from the Edit or application menu). The first "Audio" tab has the audio settings, the second "MIDI" tab, you guessed it, lets you configure the MIDI settings.

macOS and Windows Users

Configure your audio and MIDI inputs and outputs by choosing the devices from the dropdown lists in the dialog. Note that you can configure multiple inputs and outputs (up to four different devices on the "Audio", and up to ten different devices on the "MIDI") tab.

Audio and MIDI setup.

Linux Users

In Linux the audio and MIDI interface is a bit different. First, on the Audio tab you select which kind of audio interface you want to use, ALSA or JACK. Jack is often used because it offers the possibility to route audio signals between different Jack-enabled applications, and in Pd it sometimes works better with lowly onboard sound cards. If you choose this option, you only configure the number of Jack inputs and outputs that you want. Routing the audio is then done through a Jack control application such as QjackCtl, which should be readily available on most Linux distributions.

Linux Jack setup.

You can also use the native ALSA audio interface, if your sound card works fine with it and you don't need Jack's routing capabilities. In this case you can choose your input and output devices from the dropdown lists like on Mac and Windows.

Linux ALSA setup.

Finally, on the MIDI tab leave the default ALSA option enabled, and choose the number of MIDI input and output ports that you want (0 is the default). You then still have to use a tool like QjackCtl to route MIDI data from and to the "Pure Data" ALSA MIDI ports.

Linux MIDI setup.

Using Jack MIDI with Purr Data

Note that there is no built-in Jack MIDI support in Purr Data right now. However, it is possible to route data from and to Jack MIDI ports by using an ALSA-Jack MIDI bridge. Here's how to set that up. In QjackCtl's setup, make sure that you have selected seq as the MIDI driver. This exposes the ALSA sequencer ports of Purr Data (as well as any other non-Jack ALSA MIDI applications) as Jack MIDI ports, so that they can easily be connected to your Jack MIDI applications. As an alternative, you can also run a2jmidid as a separate ALSA-Jack MIDI bridge. The latter method works well with both Jack1 and Jack2. Jack's built-in bridge also does the job in Jack1, but in Jack2 it doesn't list the ALSA ports by their name, so it's better to use a2jmidid in that case. When in doubt, just use a2jmidid. You can have QjackCtl autostart a2jmidid by placing the command a2jmidid -e & into the "Execute script after Startup" field which can be found under "Options" in QJackctl's Setup dialog. (Don't forget the trailing & character, otherwise QjackCtl will hang at startup!)

Linux Jack MIDI setup.

Submit Your Feedback

That's all for now, folks. Any questions, suggestions or comments? Just drop us an email on the DISIS Pd-l2ork mailing list, file an issue, or drop us a pull request!

Albert Gräf

Clone this wiki locally
You can’t perform that action at this time.