NIME 2015 Workshops Page
Registration available at the link above (max 15 participants).
NIME 2015 Workshop
BeagleRT Embedded Audio Workshop
Workshop date: May 31, 2015, 9am-4pm (full day workshop, with lunch break 12-1)
About the Workshop
This daylong workshop will feature hardware hacking and audio programming using BeagleRT, a new ultra-low-latency real-time instrument creation platform for the BeagleBone Black single-board computer. Each participant will use a D-Box "hackable instrument" based on BeagleRT, beginning by modifying and circuit-bending the hardware. In the second half of the workshop, participants will write new audio code for the instrument, creating their own sounds and playing techniques. Together these activities will show how to create completely new digital musical instruments using BeagleRT. The platform is fully open source; no fee is needed to participate but participants will have the option to buy hardware to keep after the workshop.
BeagleRT is a new ultra low latency audio environment for creating embedded, self-contained musical instruments. It runs on the BeagleBone Black which features a 1GHz ARM Cortex-A8, 512MB of RAM and 4GB of onboard storage, expandable by SD card.
The unique advantage of BeagleRT is that it runs in hard real time (using Xenomai), meaning that the audio runs at higher priority than the Linux kernel itself. This means that system activity on the board will not cause glitches in the audio output. It also makes it possible to achieve latencies as low as 90 microseconds from input to output, by using hardware buffers as small as 2 audio samples.
BeagleRT is designed to work with either the standard BeagleBone Audio Cape or a custom BeagleRT Cape which provides several useful features for building musical instruments:
Sensor data (ADC and DAC) are sampled automatically at half the audio rate (22.05kHz) which simplifies the process of writing code that uses this data. It also means that sensor data stays aligned to the audio clock at all times.
Audio code for BeagleRT is written in C or C++. The API is lightweight and straightforward, and resembles the process of writing an audio plug-in (e.g. VST, AudioUnit, JUCE). Any existing C/C++ audio libraries which can be compiled for ARM can in principle be run within a BeagleRT program.
About the D-Box
BeagleRT is the basis for the D-Box hackable musical instrument, a self-contained, battery-powered instrument which can be hacked and circuit-bent to produce new and unexpected sounds. The D-Box was created by Victor Zappi and Andrew McPherson as part of the Hackable Instruments project at QMUL, 2013-14. More info can be found in this paper.
The instrument is played by two touch sensors on the top (one of which senses pressure). Sound is produced by a built-in 10cm speaker, with a headphone/line out also available. Hacking on the D-Box is done by the matrix, a breadboard of analog circuits which can be rewired and changed in arbitrary ways. Changes to the breadboard will never damage the instrument, and they are very unlikely to make it go silent, so there is room to explore unusual (sometimes glitchy) sounds.
The workshop will last a full day. It will be split into three parts, with two short breaks and one longer lunch break from 12-1pm. The main activites are:
Hardware Hacking with the D-Box (90 minutes). In the morning, each participant will receive a D-Box to hack. We will explain the operation of the instrument and provide an introduction to hardware hacking on the matrix. No hardware experience is needed for this, only creativity!
Audio Programming in BeagleRT (60 minutes morning, 2 hours afternoon). This part will focus on writing new audio code using BeagleRT, either extending/modifying the D-Box code or creating completely original instruments. A virtual machine image will be provided for participants to install on their own laptops. We will spend a half hour getting everyone running with compiling code for BeagleBone, and then we will examine some specific audio examples, e.g. FIR and IIR filters, FFTs, oscillator banks and XY graphics rendering on an oscilloscope. We will also explore basic sensor mapping techniques using data from the matrix. Prior programming experience is useful for this section, but not required. We will have projects ready for any experience level.
Open Hacking (1 hour). Here everyone will work on their own hacks, either hardware or software, with support from the workshop organisers. We will save a few minutes at the end to show off the hacks created during the workshop.
Equipment and Registration
Participation is open to anyone in the NIME community: artists, designers, programmers and engineers are welcome. The D-Box hacking session will be relatively non-technical, though some prior experience with audio programming may help in the middle part of the workshop. Note: we are experimenting with running Pd patches on the BeagleBone, and we are intending to try this out at the workshop. Drop me a line if you want more info!
Please bring a laptop for this workshop. Any platform is fine (Mac, Linux, Windows). Ideally, please install VirtualBox in advance. We will provide you with a virtual machine image running Ubuntu Linux, Eclipse, and the ARM cross-compiler tools.
Participation in the workshop is free with NIME conference registration, and we will bring hardware for you to use. There will be an option to purchase hardware, including BeagleBone Black boards, BeagleRT audio/sensor capes and complete D-Box instruments, following the workshop. Prices are to be determined based on production costs. If you know for sure that you would want to buy hardware (particularly if you wanted more than one), let us know so we can plan what we bring.
Registration is limited to approximately 15 places, due to equipment constraints. To register, visit the NIME 2015 workshops page and fill out the form at that link, or alternatively register for the workshop as you register for the overall NIME 2015 conference.
Andrew McPherson - Queen Mary University of London, UK
Please contact Andrew McPherson with any queries.