This is my first instructable, although I have been working with Pure Data, Raspberry Pi, and other digital audio for quite some time. If you’d like to see more instructables like this, vote for me!
Ever wonder how digital effects are created? Want to customize your favorite effects wirelessly from a smartphone? Then Pure Pi may be your best option. The Pure Pi uses a Raspberry Pi Model B running the Raspbian distro of Pure Data Extended, all controlled from an iPhone or Android phone via TouchOSC. Sounds like a lot of work, but thanks to the work done by the Pure Data and Raspberry Pi communities, it’s a Wheezy breeze. Here are the steps to getting the Pure Pi set up on your Raspberry Pi and controlling it by phone.
Step 1: Materials Needed
- Raspberry Pi running Raspbian (any model should work, I’ve used Model B)
- USB audio interface (I’ve used a Behringer UCG102, there are several that work out of the box)
- A WiFi dongle (if you don’t want to connect via ethernet cable)
- A Smartphone with TouchOSC installed (see below) or similar OSC software
- (optional) wireless access point connected to your Raspberry Pi
Step 2: Install Pure Data Extended on the Pi
Pure Data is an open source visual ‘computer music system’ which allows you to create and customize digital effects, called “patches”, to tweak and mod audio to your heart’s content. The most popular version, PD extended, has built in features and patches to make it easier to learn how to use Pure Data and design your custom effects.
(Update: A newer version of PD Extended has been released for Raspian on SourceForge, it may be easier to download directly from them but I’ll provide steps for installing from the Pi).
The following installation guide is what I used to install PD Extended on my Raspberry Pi running the newest version of Raspbian Wheezy (the $ lines are typed into the Pi terminal without the $ symbol):
1. Edit the sources list to include the new archives
$ sudo nano /etc/apt/sources.list
2. Add the following line to the end of the list (note the spaces):
deb-src http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi
3. Save and Exit:
ctrl+o, Enter (to save). ctrl+x (to exit)
4. Update Raspbian:
$ sudo apt-get update
5. Download PD Extended:
$ wget https://puredata.info/downloads/pd-extended-0-43-3-on-raspberry-pi-raspbian-wheezy-armhf/releases/1.0/Pd-0.43.3-extended-20121004.deb
6. Unpack the PD Extended .deb file:
$ sudo dpkg -i Pd-0.43.3-extended-20121004.deb
7. Install PD Extended
$ sudo apt-get -f install
8. After installation type this for root priorities:
$ sudo chmod 4755 /usr/bin/pd-extended
If everything went successfully, you should now have PD Extended installed on your Raspberry Pi. Feel free to poke around in PD to learn how to use it, configure PD, install plugins or try out various patches.
Step 3: Configure your audio input/output
Depending on your audio card, you might need to download drivers or configure the Raspberry Pi audio settings (I use Pi’s standard ALSA). For me, it was as simple as plugging in the USB and typing lsusb and/or lsmod (those are lowercase L’s) in the Pi terminal to show if it was working correctly. Most USB audio cards should work out-of-box but check the ALSA Project page to make sure if your card is compatible or not. Once you’ve plugged in the USB interface it’s as simple as running PD extended (type pd-extended in the terminal) and then opening the PD test patch to see that the audio is working. (Note: in order to see the graphical PD windows while running ‘headless‘ you need to use a GUI like LXDE).
At this point you should be able to hear something coming from your USB audio output. If you’re having problems with your USB audio or sound quality not what you expected, check out these helpful links:
- Using a USB Audio Device with Raspberry Pi
- Improving Realtime Low-Latency Audio
- Updating ALSA Config Settings
Step 4: Install the LADSPA plugins and custom patches
If you’re interested in using my own custom patch for TouchOSC, then first you need to install plugins that contain most of the effects by downloading the TAP-Plugins from SourceForge or this instructable. Once you’ve downloaded them you can copy the file directly to your Raspberry Pi. I use WinSCP to directly transfer files to the Raspberry Pi, but you can also download the files directly from the Pi by typing the following into the Pi terminal:
1. Update Raspbian:
$ sudo apt-get update
2. Install the tap-plugins:
$ sudo apt-get install tap-plugins
Once you’ve got these plugins installed, you can mess around with them in PD-Extended using the [plugin~] command. Check GuitarExtended’s site for more details if you’re interested in learning more about how to use plugins within PureData, as well as a ton of cool patches I’ve included in my own set. If you want to just use my patch collection, then go ahead and download the osc_munch.pd file from this instructable.