- 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, audio signal library for BeagleBoard-X15 (C66x DSPs, integrated in AM5728 SoC)
- Surround-Delay Demo Audio Effect
- Realtime Spectrum Demo (only available for BeagleBoard-X15)
- Debian Wheezy SD card image for BeagleBone Green (evaluation script and demonstration effect is included)
- Documentation / Thesis (German)
- 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
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.
Audio system characteristics (using TLV272 OPs):
|Total Harmonic Distortion plus Noise (THD+N)||~ -88 dB|
|Dynamic Range (DNR)||~ 110 dB|
|Crosstalk||~ -98 dB|
libdsp-x15 (signal operation library for BeagleBoard-X15)
libdsp-x15 has been created within Google Summer of Code 2016 to speed up signal calculations using AM5728 integrated C66x DSPs and to simplify usage from user-space applications. The library focuses on signal operations, which are typically required for (complex) audio applications, such as additive synthesis. Currently the library offers the following signal operations:
- Fast Fourier Transform (FFT)
- Inverse Fast Fourier Transform (IFFT)
- Biquad Filter
For more information checkout the official wiki on GitHub
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:
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.
Realtime Spectrum Demo:
For demonstration of libdsp-x15 a realtime spectrum application has been created. Real time audio is captured from CTAG face2|4 input with 48 kHz sample rate via JACK Audio Connection Kit (JACK). Signal is transformed to frequency domain using FFT (Fast Fourier Transform). In the video below a function generator is connected to an audio input and generates a sine signal.
- Implementation of Linux USB audio gadget to use audiosystem as external soundcard on several operating systems via USB
- 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)
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