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 pd-l2ork-2.9.0-osx_10.11-x86_64-dmg.zip 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 pd-l2ork-2.9.0-osx_10.8-x86_64-dmg.zip package instead.
Windows (XP, Vista, 7, 8, 10): Download the pd-l2ork-2.9.0-windows-i386.zip 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 https://build.opensuse.org/project/show/home:aggraef.
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:
[home_aggraef_Arch] SigLevel = Never Server = https://download.opensuse.org/repositories/home:aggraef/Arch/$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
You should import the repository key first, so that the packages can be updated automatically (this only needs to be done once):
wget -nv https://download.opensuse.org/repositories/home:aggraef/Debian_10/Release.key apt-key add Release.key
Then add the repository to your apt sources as follows (taking Debian 10 as an example):
echo 'deb http://download.opensuse.org/repositories/home:/aggraef/Debian_10/ /' > /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
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 https://download.opensuse.org/repositories/home:aggraef/Raspbian_10/Release.key apt-key add Release.key echo 'deb http://download.opensuse.org/repositories/home:/aggraef/Raspbian_10/ /' > /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 https://download.opensuse.org/repositories/home:aggraef/xUbuntu_18.04/Release.key apt-key add Release.key echo 'deb http://download.opensuse.org/repositories/home:/aggraef/xUbuntu_18.04/ /' > /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 https://download.opensuse.org/repositories/home:aggraef/openSUSE_Tumbleweed/home:aggraef.repo 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 https://github.com/agraef/purr-data
Or, if you prefer to build straight from Wilke's upstream repository:
git clone https://git.purrdata.net/jwilkes/purr-data.git
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
make install, you can uninstall the software again as follows:
sudo make uninstall
Afterwards, to clean the source directory:
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:
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.
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 embed-MacOSX-dependencies.sh 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 https://firstname.lastname@example.org/agraef/purr-data.git
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).
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.
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.
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.
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.
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!)
Submit Your Feedback
Albert Gräf email@example.com