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, drivers (merged in official kernel) are compatible with BeagleBone Black/Green and BeagleBoard-X15
  • Linux driver development repository, development of driver for daisy chained codecs and software SPI
  • 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
  • libdsp-x15, DSP audio library for BeagleBoard-X15 (C66x DSPs, integrated in AM5728 SoC)
  • Surround-Delay Demo Audio Effect
  • 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

Surround Delay Demo Audio Effect:

To demonstrate the possibilities of the audio system (using BeagleBone Green), 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, 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 (in this case Bitwig) 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

Project Logs:

  • Updated SD-Card image with most recent versions of JACK and SuperCollider
  • Soundcard drivers were merged to upstream BeagleBoard Linux kernel
  • Successful participation in Google Summer of Code 2016
    • CTAG face2|4 Audio Card drivers has been ported to BeagleBoard-X15 (AM5728)
    • Library for signal operations using C66x DSPs (integrated in AM5728)

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