Microcontrollers and single-board computers (SBCs) are great for learning the fundamentals of code, creating custom projects with sensors, and making connections between everyday items in new and unusual ways. Where they generally suffer is dealing with any real-time audio signal processing. Enter the Bela project. Learn more about the Bela Mini to discover why this microcontroller is perfect for real-time audio processing and connecting sensors!
What is the Bela Mini?
Today we are looking at the Bela Mini, a small form factor version of the Bela cape for Beaglebone boards. It is a fully-realized operating system (OS), integrated development environment (IDE), and an interface designed for makers working with sensors and super low-latency audio.
Bela started life as a research project at the Augmented Instruments Laboratory based in the Centre for Digital Music at Queen Mary University, London. The original Bela board was successfully Kickstarted in April 2016, with the Bela Mini following in 2018.
Bela Mini: Overview
We'll be taking a more in-depth look at the Bela Mini's specs and how it is to use below. In brief, what makes Bela special?
Bela sidesteps the usual pitfalls of working with do-it-yourself (DIY) embedded audio. High-speed sensor data processing along with native on-the-board high-quality audio are built into the design. The easy to use development environment, excellent documentation, and learning materials make it not only a highly extensible board but the perfect board for studying digital signal processing and creative coding.
With a custom audio-focused real-time operating system (RTOS) and support for multiple programming languages, along with a large array of digital I/O and analog inputs, and high-quality audio input/output (I/O) connectors, Bela is the perfect choice for those looking to get into DIY audio. If you've ever wanted to create your own synthesizer or turn sensor data into high-quality sound and music, the Bela Mini is the board for you.
The Bela Mini is available as a starter kit containing everything you need to get up and running, and you can buy it directly from the Bela project for £120 ($145 USD).
Bela Mini Specifications
As the Bela Mini is built on the Pocketbeagle, it has very few specifications of its own:
- 2 stereo audio inputs
- 2 stereo audio outputs
- 8 channels of 16-bit analog input
- 16 GPIO pins
- USB host connector
These specs tie in perfectly with the 1GHz ARM® Cortex-A8 powered Pocketbeagle, as the Bela operating system is optimized to get the most out of the tiny form factor Linux SBC.
Miniature Musical Marvel
It's challenging to write about the Bela project without coming across as a little biased. I have favorite SBCs and microcontrollers, but none that seem quite this tailored to my interests.
Long before I started working with and writing about hobby electronics and the maker scene, I was learning digital audio processing as part of my college education, and already trying (and mostly failing) to create custom MIDI controllers.
Attempting to coax sound out of various Raspberry Pis and Arduino boards followed. While there were some successes, it always felt like a hack. No matter how satisfying working within limitations can be, very few maker boards are designed with real-time audio in mind. The Bela project takes the opposite approach. Bela Mini is a development board that puts sound first.
Designed for Sound
The custom hardware cape for the Pocketbeagle that the mini-Beaglebone Bela is built on along with its custom RTOS supports the entire audio signal chain. There are multiple ways to program Bela boards, including C++, Supercollider, Pure Data, and Csound, along with the p5.js library for creating graphical user interfaces (GUIs) and visuals.
The software and hardware are open-source, and the Bela Platform provides an extensive course for learning not only the fundamentals of real-time audio programming, but beginner-level coding in C++, and DIY electronics.
Getting up and running with Bela is quick. Within minutes of plugging it in and opening the browser IDE, I had a simple synthesizer up and running based on one of their examples. Alongside generating synthesizer tones, Bela really shines when it comes to real-time audio processing. So how does Bela achieve such low latency?
Designed for Speed
The custom Xenomai-based Linux RTOS Bela uses puts audio at the top of the list of system priorities, cutting out the glitches and drops which plague most digital music creation and allowing for an action-to-sound latency of under 1ms – lower than any I've ever come across.
By creating a custom audio driver for the Beaglebone's Programmable Realtime Unit (PRU), Bela can take data from sensors and use it to modify the outgoing audio buffer without any slowdown from the rest of the system.
The eight analog input pins are 3.3v tolerant and use a similar syntax in code as Arduino, with an added argument for precisely timing each read. The result of this is an incredibly stable and reactive system with a response time to rival any hardware synthesizer.
Alternatively, if you'd rather use a pre-existing controller, the Bela Mini has a regular-sized USB host port - perfect for turning any small MIDI keyboard into a stand-alone synthesizer.
Made by Makers, for Makers
Much like any development board, it's impossible to cover everything you can do with a Bela Mini, and in the limited time I've spent with it I feel like I've barely scratched the surface. Perhaps a better way to describe the experience of working with Bela is to think about where the project began.
Bela is the product of a team of musicians, makers, and coders coming together to solve a problem elegantly. A lot of care has gone into the Bela platform's hardware design and software architecture, and it shows.
The Bela Mini's price might put some people off, but putting it next to a regular budget microcontroller or SBC isn't a good comparison. If you are DIY minded and interested in audio processing, digital synthesis, and sensor-based sound, Bela gives you more than any off the shelf microcontroller or synthesizer combined.
Purchase Bela Mini: