At 64 Studio, we use the Linux kernel with real-time patches to ensure reliable, glitch-free I/O for our customers' demanding audio applications. Having source code and full control over the design of the system means that we can tweak the machine for the best possible performance on the target hardware. Typically, our end users are in the "pro audio" market--music production, recording, or broadcast. When an audio engineer switches on their new mixing desk, they probably don't realise that it's actually an embedded GNU/Linux device, albeit one that weighs a few hundred times as much as their Android phone.
Recently, we've been working on a rather different product which makes use of the same real-time Linux features that pro audio users already enjoy. We'd presented our work on real-time audio for mobile devices at the Linux Audio Conference in Parma, Italy in 2009. Following that presentation, we had an enquiry from Giso Grimm, a researcher on hearing augmentation algorithms at the University of Oldenburg in Germany. The trouble with designing next-generation digital hearing aids is that optimization and hardware miniaturisation are very expensive. If you pick a sub-optimal algorithm and build it into a hearing aid, you've just wasted a lot of money on a product that won't deliver. So researchers at the Haus des Hörens R&D facility in Oldenburg field test new algorithms on standard PC hardware, using a specialized multi-channel USB audio interface with I/O cables that connect to ear pieces.
Using a general-purpose operating system in place of highly optimized hardware presents a potential performance challenge. The PCs can run either GNU/Linux or Windows, but fortunately the real-time Linux kernel delivers better latency performance than Windows can. In a digital audio context, latency means the delay imposed by processing on the sound that the user hears. We can get away with a few milliseconds of delay, but if latency is too high, the brain begins to notice. The effect of excessive latency is not unlike watching a badly-dubbed movie, in which the lips of the actors are out of sync with the words; clearly, this would be unacceptable in a hearing aid field test.
At first, we considered building custom embedded hardware for the field tests, based around a single board computer with an Intel Atom processor. On reflection, it was decided that it would be better to be able to test very CPU-intensive algorithms before they had undergone any optimization. As a consequence, we targeted the Lenovo Thinkpad X200 notebook, due to its Core 2 Duo CPU in a relatively small and lightweight device. We were then able to build a minimal, high-performance, yet stable GNU/Linux distro, which we codenamed Mahalia, for the researchers to use on the Thinkpads. User reports indicate that Mahalia is performing well, and another round of field tests is due to begin soon.
6 Comments