- macOS and Windows
- Installing From the JGU Repositories
- Experimental and Preview Builds
- Installing From Source
- Purr Data "Light"
- Using MacPorts
- Running Purr Data
- First-Time Setup
- macOS and Windows Users
- Linux Users
- Using Jack MIDI with Purr Data
- Submit Your Feedback
Clone this wiki locally
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.
Mac and Windows packages are available from the Github releases page.
Current macOS / OSX versions (10.11 or later): Download the OSX 10.11 package. Some releases are packaged as zip files, in that case 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 OSX 10.8 package instead. All the Mac packages are for 64 bit Intel Mac systems.
Windows (Vista, 7, 8, 10): Download the 32 bit (i386) or the 64 bit (x86_64) package. Some releases are packaged as zip files, in that case double-clicking unzips the package, giving you an installer executable. Double-click the installer and run through the installation as usual. We recommend the 64 bit package for the latest (64 bit) flavors of Windows, but the 32 bit package should also work there, as well as on legacy 32 bit Windows versions.
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.
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.
TL;DR: Go to the OBS Download, pick your Linux system, and follow the instructions.
Detailed instructions follow.
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_20.04" in lieu of "Debian_10":
sudo su wget -nv https://download.opensuse.org/repositories/home:aggraef/xUbuntu_20.04/Release.key apt-key add Release.key echo 'deb http://download.opensuse.org/repositories/home:/aggraef/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/home:aggraef.list apt update apt install purr-data
Replace "20.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
NEW: We now have special repositories available which provide experimental and preview builds of Purr Data straight from the git repository. You can find these at https://build.opensuse.org/project/show/home:aggraef:purr-data-git. These repositories are intended as an alternative source for purr-data packages that include all the latest bugfixes and experimental new features which might make it into a future purr-data release (or not). You're especially welcome to use these packages if you'd like to help in testing out new features.
CAVEAT: Only use these if you are prepared to live on the bleeding edge. These builds should not be considered production-ready, they may be beta- or even alpha-quality and are mainly intended for testing purposes.
That said, we don't publish software that we haven't given at least some testing ourselves. So it's usually quite safe to use these packages despite the caveats, but you should at least test them out before deploying them. Also note that these repositories might get quite a lot of updates at times, and experimental features may often be removed again in the next update. But if you can live with the volatility, this is a great way to get your hands on new features as early as possible.
The preview repositories can be used as drop-in replacements for the regular Purr Data repositories, or in addition to the regular repositories if you also need the classic pd-l2ork package. If you already have Purr Data installed, you don't even need to subscribe to the preview repository; you can just grab the binary package using the download link below and manually install the downloaded package.
The preview repositories provide only the purr-data package (and dependencies). As with the regular repositories we provide package repositories for Arch and openSUSE Tumbleweed, as well as recent Debian, Raspbian, Ubuntu, and openSUSE Leap releases, but the list of supported systems might be less extensive (rolling distributions and the latest stable release of each supported distribution should always be available, though).
To subscribe to one of these repositories, see Installing From the JGU Repositories above for detailed instructions, but make sure that you use the appropriate links, i.e., replace
home:/aggraef:/purr-data-git in the instructions, respectively.
Downloads: Go to the OBS Download, pick your Linux system, and follow the instructions.
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.
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://email@example.com/agraef/purr-data.git
Then make sure that you have the requisite Mac dependencies installed from MacPorts and compile as explained above.
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.
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.
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!)
Albert Gräf firstname.lastname@example.org