Skip to content

Installation

Albert Graef edited this page Apr 17, 2021 · 30 revisions

Installation

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 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.

Linux

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.

Installing From the JGU Repositories

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).

Arch

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 sudo or su.)

Debian

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 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.

Raspbian

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.

Ubuntu

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.

openSUSE

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

Experimental and Preview Builds

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 with home:aggraef:purr-data-git and home:/aggraef with home:/aggraef:/purr-data-git in the instructions, respectively.

Downloads: Go to the OBS Download, pick your Linux system, and follow the instructions.

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

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

make

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 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://agraef@bitbucket.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).

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 aggraef@gmail.com