Pure Data and Bela

Physical interaction design for sound and music

This tutorial section is a comprehensive course that guides you through using Pure Data with Bela to create interactive sound devices and synthesisers.

Table of contents

  1. About this course
  2. What is Pure Data?
  3. Setting up for this course
  4. Electronic components
    1. The basics
    2. Sensors and LEDs
    3. Resistors
    4. Other components

About this course

What will I learn on this course?

This course aims to explore some of the core tools and critical concepts necessary for building new interactive devices with Bela and Pure Data. Pure Data (also known as Pd) is the programming language at the core of this course, and is a data flow computer music language. It’s a visual, block-based language, and this type of programming can be easier to get to grips with than traditional text-based coding languages.

As you go through each part of this course you will become familiar with a number of different techniques for producing sound with Bela using Pd, while also learning to build a series of circuits and interfaces using different sensors and actuators. At end of this course you will have a good grounding programming Bela with Pure Data - how the Bela system works, how to sense different types of physical interaction, and how to create patches in Pd will create varied sonic output in response.

Who is this course designed for?

This course aims to give artists, designers, musicians and makers of all types a good grounding in the tools they need to start creating with interactive sound projects, and the confidence to start creating their own projects. This course is designed for learners with no previous experience in coding or circuit building, though it’s also great for experienced Pd programmers who want to learn about using Pd to program Bela or expand their hardware knowledge. We will guide you through creating patches in Pure Data and build up circuits from first principles as we go.

Where did this course come from?

The material presented in this course was first developed by Robert Jack for the Physical Interaction Design module at Aalto University Helsinki, Finland.

What is Pure Data?

Pure Data, or Pd, is a free, open-source programming language that’s designed for making digital audio. What makes it different is that it’s a visual language; instead of writing lines of text like you do with most programming languages, you program in Pure Data by connecting different bits of Pd code - or objects - together in a graphical interface.

You can use Pd to program powerful, complex interactive digital audio projects that run on Bela, and it’s one of the main languages that Bela supports.

If you are completely new to Pure Data then we suggest having a quick look at our Pure Data language guide where you will find a full overview of the language and where we also outline some of the key things you’ll need to know when using Pure Data with Bela.

Setting up for this course

You’ll need to complete a few simple steps to get ready to go.

Download and install Pure Data

In order to edit Pure Data patches you will need to download the latest version of the Pure Data software. This is a free and open source piece of software.

Set up your Bela hardware

You’ll need a Bela or Bela Mini to do this course.

You’ll also need two audio adapters, and a USB cable. If you have a Bela or Bela Mini starter kit, these are included.

To power up your Bela system, connect it to your computer via USB and open your browser of choice (we recommend Chrome). After your Bela system has booted up, navigate to http://bela.local/ to access the Bela IDE. This is where you will upload, run, and view your Pd patches.

For more information on setting up your hardware check out our comprehensive Getting Started Guide.

Making sure your board is up to date

You may need to update your board to see the full examples for this course. If you bought your board after December 2020 then these examples will already be on board but otherwise you will need to update Bela to see them. Learn how to update your board by following our guide.

Once updated the examples which make up this course will be the default Pure Data examples which you can accessed via our browser-based IDE by navigating to the Examples tab on the right side of the window and expanding the Pure Data folder.

Electronic components

In order to get the most out of these tutorials it is best to have all or most of the following hardware components to hand. These components are standard maker parts that will be stocked in most electronic components shops, hobby stores, electronics labs, and hack spaces. If you are unable to source all of these components, don’t worry - you can still follow through the tutorials.

The basics

  • Breadboard
  • Some jumper cables (you can just use cut pieces of wire in a pinch)

Sensors and LEDs

  • Tactile switch (buttons) x 3
  • 10K Potentiometer x 2
  • LED x 8, of any colours
  • LDR (Light Dependent Resistor)
  • FSR (Force Sensitive Resistor)
  • Electret mic capsule
  • Piezo disc x 2

Resistors

  • Resistors 10K x 5
  • Resistors 220 x 8
  • Resistors 1K x 5
  • Resistors 1M x 5
  • Resistors 3.3K x 5
  • Resistors 2.2M x 5

Other components

  • Velostat sheet
  • Copper tape with conductive adhesive
  • Trill Craft
  • 3-axis analog accelerometer
  • 3.5mm mini jack to mini jack cable