Linux-Based Low-Latency Multichannel Audio System (CTAG face2|4)

Features:

  • 2 stereo ADCs and 4 stereo DACs
  • Up to 96 kHz sampling rate with 8 audio channels (up to 192 kHz with 4 channels)
  • 24 Bit word width
  • Separate interfaces to ADCs and DACs
  • Asynchronous sampling rates for playback and capture
  • Up to 3,2 ms round-trip-time
  • Mobile usage (the Beaglebone Green and the audio card both are supplied with 5V supply voltage)

Project Components / Source Locations:

  • CTAG face 2|4 at Github, I2S sound card based on AD1938 audio codec by Analog Devices Inc. (repo contains hardware design files, help documents and device tree overlays)
  • BeagleBoard Linux (soundcard drivers were merged in upstream BeagleBoard kernel and are enabled by default)
  • Adapter card “bbg-cape” to connect the BeagleBone Black/Green with I2S sound card, see Github repo above
  • Adapter card “con-cape” with stereo jacks and headphone amplifier, not yet published due to some bugs
  • BASH script for automatic evaluation of latency, THD+N, DNR, crosstalk and frequency response using GNU Octave
  • Surround-Delay audio effect for demonstration
  • Debian Wheezy SD card image for BeagleBone Green (evaluation script and demonstration effect is included)
  • Documentation / Thesis (German)

Applications:

  • Mobile sound studio (simultaneously record several inputs with different audio effects applied and preview them on different outputs in real time)
  • Effect device for various music instruments
  • Open platform for DIY audio projects
  • DIY Eurorack modules

Hardware:

The sound card is based on the AD1938 audio codec with 2 stereo ADCs and 4 stereo DACs of Analog Devices Inc. and was designed by CTAG Fachhochschule Kiel.
To control and use the sound card via I2S and SPI the BeagleBone Green was used due to its Multichannel Audio Serial Port (McASP) of the AM335X SoC, which supports up to 16 audio channels on a single data line.

face24

Audio system characteristics (using TLV272 OPs):

Total Harmonic Distortion plus Noise (THD+N) ~ -88 dB
Dynamic Range (DNR) ~ 110 dB
Crosstalk ~ -98 dB

audiocard_frequency_response_192kHz

Demonstration effect:

To demonstrate the possibilities of the audio system, a surround delay effect was created running in real-time with the open source C++ Library DSPatch of Marcus Tomlinson.
The following figure gives an overview of the signal flow, implemented on the BeagleBone using the developed audio hardware and software drivers:
DSPatch_Delay_Overview_Diagram

Every component has its own adjustable parameters, such as delay time, delay feedback, mix and so forth.
Moreover support for generic MIDI controllers was added to DSPatch to control effect parameters in real time.
Signals are generated using a DAW on the host PC, sent to the analog in of the audio system, processed on the BeagleBone and sent back to the host using the analog out of the system.

Ongoing:

  • Implementation of Linux USB audio gadget to use audiosystem as external soundcard on several operating systems via USB
  • Alternative SBC with more powerful CPU and multichannel I2S interface to achieve lower latencies and realize more complex audio effects and synthesizers (active)

Project Logs:

Detailed article:

The complete document (bachelor thesis), which covers some basic knowledge and the development and evaluation process as well, is published here (currently only available in German).
*There’s an optimized revision of the I2S soundcard already, so the audio system characteristics in the attached document are obsolete. The correct values are mentioned above.

Authors: Henrik Langer, Robert Manzke

FacebookTwitterGoogle+Share