How to Hack the TI BeagleBone Black to Make Your Own DIY Synth

beaglebone-black-front

The BeagleBone Black is a powerful and low-cost computer the size of an Altoids tin, and can become a DIY synth or effect unit. It can run Linux, a free and open-source operating system. With Csound, a real-time audio synthesis engine, custom synthesizer and effect programs can be designed and executed. While a USB audio interface can be used with the BeagleBone Black, the dedicated audio expansion board (an ‘audio cape’) is recommended to keep the single USB port free for MIDI devices. A powered USB hub is another option.

[Editor’s note: Csound is easy to learn but beyond the scope of this article. Helpful starting resources are appended.]

The following steps will guide the user through preliminary setup. This article assumes the user is working on a Mac computer and has some familiarity with the terminal. While there may be many similarities for Linux, Windows users will in some cases need to find alternate ways of accomplishing these steps.

Got to www.armhf.com/download to download a Linux distribution image. Flash it to a microSD card with a USB adapter:

xz -dc debian-wheezy-7.2-armhf-3.8.13-bone30.img.xz | sudo dd of=/dev/DISKNUMBER bs=1m

 

DISKNUMBER can be determined by looking at the output of:

diskutil list

After it’s finished, slot the card into the BeagleBone Black.

Plug an Ethernet cable into the BeagleBone Black and into a router. Plug a FDTI adapter into the BeagleBone Black’s six-pin header. One can be purchased from Sparkfun (www.sparkfun.com). The header on the Sparkfun adapter will need to be bent so that it forms a ‘T’ to get it onto the device.

Apply power to the Beaglebone Black while holding down the ‘boot from micro SD’ button above the card slot. Open up a terminal window, and use the screen command to log in with the credentials below.

screen /dev/tty.usb* 115200

login: debian

password: debian

Run the following commands:

sudo su

apt-get upgrade

apt-get update

apt-get install csound

apt-get install alsa-utils

apt-get install vim

 

Once these steps are followed, the user is able to start coding synthesizers and effects with Csound, and execute them on the BeagleBone Black. Any connected class compliant audio and MIDI devices are available to Csound.

Ideas include a custom drum machine triggered by a MIDI pads, or a standalone synth unit using subtractive, FM, additive, or waveguide synthesis methods. Custom effects can be created. In addition to unique delay and reverb effects, Csound offers advanced possibilities including phase vocoding, convolution, granulation, formant shifting, and control with chaotic models. These effects and synths could be controlled by MIDI as well as input audio. Factoring in the BeagleBone Black’s capacity for input sensors through its GPIO and ADC pins makes for some extremely interesting musical possibilities.

If further instruction is desired on how to create synthesizers and effects with the BeagleBone Black the article “BeaglePi” in Issue 18 of the Csound Journal is highly suggested reading: http://www.csounds.com/journal/issue18/beagle_pi.html. In addition to the BeagleBone it provides detailed instructions for the Raspberry Pi. This article will further guide the user in advanced audio setup, code optimization, and standalone operation of their DIY synth or effect.

ADDITIONAL CSOUND RESOURCES

FLOSS Manual: http://www.flossmanuals.net/csound

Csound Reference Manual: http://www.csounds.com/manual/html/index.html

The Csound Book: http://mitpress.mit.edu/books/csound-book

Csounds.com: http://www.csounds.com

Csound Journal: http://www.csounds.com/journal

ABOUT THE AUTHOR

Trev Wignall, 22, is a violinist and music technologist. His interest in music technology originates from a desire to greatly expand the expressive range of the electric violin. Hacking and building with open source hardware and software also enables Trev to create multifaceted music performances that involve sonically reactive video and lighting. An avid lecturer, Trev has given talks and seminars on synthesis, embedded systems and electronic performance at Berklee, The Governor’s School of North Carolina, and the 2013 International Csound Conference. He writes and performs electronic music, and in his spare time he enjoys learning about the natural and social sciences.

Like this? Share this!

4 Comments

  1. Jason Kridner

    September 5, 2014 at 9:53 pm

    Why not use the Debian image that ships with the board and the Cloud9 IDE?

    • Trev Wignall

      December 26, 2015 at 9:24 pm

      Very sorry for this being so late. I personally found Cloud9 to be impenetrable, but I’m sure that’s not the case for everyone. I’d also rather work directly with Linux than going through an IDE. But really, that’s my personal preference.

  2. Mr Ferdinand

    March 22, 2015 at 9:07 pm

    How complex of a synth can you develop on a BBB system? How powerful is it? Could one, for instance run 2 FM synths, 2 subtractive and a phrase sampler simultaneously?

    • Trev Wignall

      December 26, 2015 at 9:29 pm

      Hi Mr Ferdinand,

      You can actually get pretty far. The system you are describing could feasibly work given a few things:

      – You’ve got to code as efficiently as possible (this may mean sacrificing human-readability)
      – You may need to make compromises with sample rates, buffer sizes, and other such things
      – Use the least expensive Csound functions when possible. You can cram more of them in your synth that way.

      Hope this helps. These general guidelines will work regardless of one’s level of ambition!

      Cheers,
      Trev

Leave a Reply

Your email address will not be published. Required fields are marked *