Table of Contents
Rockchip based devices and real-time, low-latency audio
Wiki article on using Rockchip based devices with real-time, low-latency audio.
Available flavors
Currently most Rockchip based devices come in two flavors:
Linux
Rockchip based devices are mostly sold as PC-on-a-stick devices with Android pre-installed. But in order to use these devices as real-time, low-latency audio appliances you will want to install Linux on them. The necessary tools and kernel sources to do so are available and especially the RK3066 based devices are almost fully supported.
Using JACK
JACK (JACK Audio Connection Kit), often referred to as jackd, is a
“system for handling real-time, low latency audio (and MIDI). It runs on GNU/Linux, Solaris, FreeBSD, OS X and Windows (and can be ported to other POSIX-conformant platforms). It can connect a number of different applications to an audio device, as well as allowing them to share audio between themselves. Its clients can run in their own processes (ie. as normal applications), or can they can run within the JACK server (ie. as a “plugin”). JACK also has support for distributing audio processing across a network, both fast & reliable LANs as well as slower, less reliable WANs.
JACK was designed from the ground up for professional audio work, and its design focuses on two key areas: synchronous execution of all clients, and low latency operation.”1)
Building JACK from source
You will need a recent git checkout of Jack2 or a patched Jack1 for usage on Rockchip based devices otherwise you will encounter the infamous “Bus error” when starting JACK. This is because JACK uses packed structs and the Rockchip RK3066/RK3188 platforms don't like those: http://comments.gmane.org/gmane.comp.audio.jackit/26713.
Patches can be found here: https://github.com/AutoStatic/jack-armel The patches are relatively simple so they can be easily adapted for other JACK versions.
When using Jack2 you might want to disable dbus dependent code in JACK components if you want to run Jack2 on a headless RPi (so without X). You can do this by building Jack2 from source without the –dbus
option.
Packages
This repository currently only contains patched Jack1 and recent Jack2 packages for Ubuntu 12.04/12.10 and Debian Wheezy that should work on most ARM based platforms. Instructions on how to add the repository are on the site. After having updated your package index files it's just a matter of sudo apt-get –no-install-recommends install jackdx
with x
being the JACK version you'd like to install.