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