This guide is deprecated - please check the more up to date guide on the wiki, or view the slides from the latest Bela workshop [[]]

Compiling PureData patches for BeagleRT

Getting everything up and running

Follow the following steps to get everything up and running on your Beaglebone Black:

1. Download the heavy-beaglert archive from

  • Extract the archive (and remember where you extracted it to)

2. Make sure python is installed:

  • If you are on windows, you will need a tool that allows you to use ssh and some other basic shell tools. The shell scripts in this project have been tested with mingw ( . You will want to note that in order to paste code on the terminal you have to right click on the terminal's title bar and navigate the menu to edit->paste
  • Install the most up-to-date version of the requests python package (version 2.7.0). You can get it from
    or typing the following in a terminal window (make sure it is not currently installed):

    On Linux/MacOS:
    curl -OL && unzip master && cd kenneth* && sudo python install

    On Windows:
    curl -OL && unzip master && cd kenneth* && python install

3. Create an account on

  • Click Login on the top right corner of the page
  • Create a new account
  • Create a new patch and call it bbb (N.B. compiling won't work if you use a different name)

    4. Make sure the Beaglebone is plugged in to laptop and open a terminal window:

  • Navigate to the sh folder inside the heavy_beaglert folder you created earlier cd /path/to/beaglert_heavy/sh
  • If on OSX/Linux, run ./
  • Or on Windows: ./
  • when prompted for password enter letter 'a' (no quotation marks)
  • ./

5. Compile your first project!

  • ./ -f ../pd/hello-world/

6. Create a new pd project

  • Create a new folder inside the /pd directory
  • The pd patch must exist in its own folder and be named _main.pd. You can use abstractions if you like.

Using analog ins/outs

  • You can directly address the analog ins and outs from within PD (note that you have to compile and run the patch onto the BeagleBone to receive the data)
  • Use the [adc~] and [dac~] objects to receive and send the data
  • [adc~ 3] refers to Analog Input 0 (first two channels of [adc~] are audio inputs), likewise for [dac~]
  • These inputs are sampled at audio sampling rate, so handle them as you would audio signals. (Use [snapshot~] if you want to turn them into control-rate values)
  • See the example patches in the /pd folder for more information

Important notes

  • Pd patch must exist in its own folder and be named _main.pd. You can use abstractions if you like.
  • See example pd patches for more information.

Have fun!