Hi Scott and all,

You might also be interested in a low-latency embedded audio platform we are 
soon releasing called Bela: http://bela.io

Bela uses the BeagleBone Black and a custom cape with stereo audio in/out, 8 
channels each of 16-bit, DC-coupled analog I/O, and 16 GPIO pins. It uses 
Xenomai Linux to run audio and sensor code at nearly bare metal priority, which 
means that you can use buffer sizes as small as 2 audio samples and achieve 
latencies under 1ms. (To be precise, it's about 1.0ms round-trip using the 
audio codec, mainly because of the codec's internal filters, and down to 100us 
round-trip using the DC-coupled ADC and DAC.)

With Bela we're trying to get the best of both worlds: the connectivity of a 
Linux machine with the timing precision of a microcontroller. Xenomai is great 
for this, because it can run the audio code in a hard real-time environment 
where general system load won't lead to underruns, but it runs alongside the OS 
for things like storage, networking and USB. To get this kind of performance we 
don't use ALSA (or any kernel driver); instead, Bela uses the BeagleBone's PRU 
to pass data to and from the audio codec (I2S), ADC and DAC (SPI).  The 
tradeoff is that it is specific to particular hardware, but in an embedded 
device that's not necessarily such a problem.

Another handy feature is that the analog and digital pins are sampled 
synchronously with the audio, with basically no jitter. When using all 8 analog 
I/O channels plus audio, the analog sample rate is 22.05kHz; with 4 channels 
it's 44.1kHz or 2 channels at 88.2kHz.

For the past year or so, we have been developing Bela in the Augmented 
Instruments Laboratory, part of the Centre for Digital Music at Queen Mary 
University of London. It's an open-source project designed for creating 
self-contained musical instruments and interactive audio systems. It's got a 
browser-based IDE (all compiling done on the board) with an in-broswer 
oscilloscope. Separately, you can use Enzien Audio's Heavy Audio Tools 
(http://enzienaudio.com) to compile Pd patches into optimised C code for the 
Bela environment.

Here's a paper with some more info and performance metrics: 
http://www.eecs.qmul.ac.uk/~andrewm/mcpherson_aes2015.pdf

And here you can find the code and hardware designs: http://bela.io/code

It's in an early public beta state at the moment, but later this month we're 
planning a Kickstarter campaign to support making more capes and building a 
larger user and developer community around it. I can share some more info on 
that later on, but I thought it was worth mentioning in this discussion since 
our goals seem to be quite similar.

Best wishes,
Andrew

--
Andrew McPherson
Senior Lecturer in Digital Media
Centre for Digital Music
School of Electronic Engineering and Computer Science
Queen Mary University of London
http://www.eecs.qmul.ac.uk/~andrewm
_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Reply via email to