Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Soundstack 2018 Workshop
This workshop has four parts:
As a warm-up (after all, it's a 10am start), the first part is a quick intro to help you get familiar with the basics of coding with Pure Data.
Then we'll move to working with Pure Data on Bela.
We'll then dig into the spatial audio theory and render a binaural scene with Bela. You can find the slides here.
Time permitting, you will have the opportunity to make different types of paper sensors and attach them to Bela Mini in order to control the binaural rendering from Pure Data.
This workshop is part of a research project run by the School of Electronic Engineering and Computer Science at Queen Mary University of London. Your prototypes and questionnaires will be used along with photos and videos of the workshop to help us better design tutorial materials for makers wanting to work with digital tech.
If you are willing for us to capture this data for our research, please be sure to sign one of the consent forms. Likewise, if you would prefer to not be included in photos shown publicly, just let us know.
What is Bela?
Bela is built on top of Beaglebone Black, an embedded Linux platform. In other words, it is a full, small computer, similar to a Raspberry Pi. It is like a laptop without a keyboard, mouse, or screen attached. Bela is a custom operating system and an circuit board which sits on top of the Beaglebone Black.
There is a now a smaller version of the board called Bela Mini based on the Pocket Beagle. This is what we'll work with today.
(Yes, Bela is a commercial product - you can buy your own here. It started as a research project at Queen Mary University of London.)
Intro to Pure Data
On your computer, open up 1_Playing an Audio File in PD.
Opening the file causes some errors to appear. This is because the patch is using abstractions that aren't in the standard Pure Data library. We need to add the folder of downloaded abstractions to Pure Data via the Pd (on Mac) or File (on other OSes) -> Preferences -> Path... menu.
Returning to the Pure Data patch, change the audio sample being played to a different file. There are a selection of wav files included in the abstractions folder that you can choose from.
Pure Data on Bela
Here is the full documentation for building Pure Data patches on Bela. We will be using the IDE (not following the instructions for using Heavy).
Key things to remember:
- When you create a new project, but sure to say you want it to be a Pure Data project. It defaults to C++ projects which then will ignore any Pure Data patches.
- The patch needs to be called
_main.pd. It's highly recommended that you added a comment in the patch to help you identify exactly what that patch is supposed to do. Your computer will start filling up with a multitude of files all called
- Whenever you want to edit the patch, you edit it in Pure Data on your computer, and then you need to upload (or drag and drop) the patch into the Bela IDE in order for those changes to be made on Bela.
Using an IMU with Bela
The Bela On Ur Head Project has all the source code for the IMU handling.
We will work with the IMU Synth (Pd) Example.
Binaural Audio Rendering on Bela
The virtual vector-based amplitude panning implementation on Bela was primarily written by Rishi Shukla, with the Pd hooks written by Becky Stewart. The source code can be found on Github.
These are the sensors you can build. You can make as many or as few as you would like.