articles

How To Program Embedded Audio and Sensor Data With Almost Zero Latency!

Sunday, March 20, 2016

If you are looking for a new way to program embedded audio and sensor data with minimal lag between action and sound from your digital instruments using the Beaglebone Black, you may be interested in Bela!

Bela is an open source platform for high performance ultra-low latency interactive audio that has a responsiveness of only 1 millisecond action to sound latency. Bela is capable of latency under 1ms, which is faster than any musician can detect, and faster than MIDI on MAC (5ms), iPhone 6+ (9ms), Arduino to Max (11ms) and PD (Pure Data) on Raspberry Pi (19ms).

Bela is able to achieve ultra low latency audio and sensor processing because the audio code does not go through the operating system (OS) like on most audio systems. Bela's custom audio environment does not have to compete for time with all the other processors on the board; hence, you get super low latency and no glitches because the processor is able to respond fast enough.
With Bela, the audio code essentially goes straight to the hardware, so the audio and sensor code is always the high priority task on the board. Even though the audio does not go through the OS, you can still program it very easily with a lightweight Arduino-like environment using C++ . Bela's integrated development environment (IDE) is browser-based and also features an oscilloscope to help you visualize your audio and sensor signals. Alternatively, you can build Pure Data patches for Bela using Heavy from Enzien Audio to convert Pd patch into optimised C code which is compiled to run natively on Bela.

Bela is built on the Beaglebone Black and combines the power of an embedded computer with the hardware connectivity of a microcontroller. It's easy to use and has everything you need for audio and sensor processing in one self-contained package, making it ideal for embedded projects.
You can create and develop interactive audio systems like digital musical instruments, audio effect boxes, synthesizers and other types of interactive installations, as well as control LEDs and sensors and actuators like servo motors.

Bela is pretty much plug and play. Once you plug in the board into your computer, launch the on-board IDE on your browser, you can start coding and compiling in C++. When you are done editing, you can detach the board from your computer, power it with a battery and embed it in your project.

Bela runs on the Beaglebone Black with a a 1GHz ARM processor and gives stereo audio in and out (I/O) of 16-Bit/44.1kHz, as well as onboard speaker amplifiance (1W 8 ohms), 8 high quality 16-Bit analog in and 8 high quality 16-Bit analog out, and 16 digital I/O. As Belas runs on Linux you also get access to networking, storage, USB and other peripherals.

You Might Also Like

0 comments

About Gadget Explained

Connect With Gadget Explained