Search

Register

Thanks for signing-up! You will receive an email with further instructions to activate your account!

username already taken
You already have an account? .

Login

Forgot password?
Don't have an account yet? Register now for using the UI-Designer and the forum or creating projects.

Audio Controller for BBB

Project Information

Attached UI-Designer Configs
BBB iPad
The Beaglebone Black and audio 'capes' allow us to build music players that are anywhere from modest to full-audiophile quality. NetIO can control all the inputs, outputs, and 'pre-amp' functions.

Description

A high-resolution audio player can be constructed from a modest BBB - or a RPi. For high-resolution music files, BBB is the better platform due to the HDMI/USB data ‘bottleneck’ in the RPi. Either way, NetIO is a great way to control the various inputs and outputs.

This project uses the excellent Hermes/Cronus cape from Twisted Pear Audio. It's main functions are a) to galvanically isolate the BBB's I2S output and b) to provide the BBB with high quality external system clocks that match the frequencies of the audio files being played. This is accomplished by a custom Debian kernel: http://www.diyaudio.com/forums/twisted-pear/258254-support-botic-linux-driver.html In my project I also use the BBB as an active speaker crossover. Each channel is split 3 ways and output to different DAC channels followed by different amplifier channels.

As the attached system map shows, the BBB consumes asynchronous data packets - from either a media server or from an SPDIF -> USB converter. Data are filtered by LADSPA crossover filters in ALSA and then output as I2S to the DAC. More information on running LADSPA filters in ALSA: http://www.diyaudio.com/forums/twisted-pear/277564-ladspa-filters-digital-crossovers-bbb.html

Control via NetIO is done from either an iPad or iPhone - both screens are attached. The ‘pre-amp’ functions are executed by I2C commands from BBB to the DAC itself. The DAC executes volume control at 48 bit precision, so quality does not suffer as volumes are reduced. The front panel of the chassis has ‘manual’ momentary buttons that duplicate the input/output select buttons of the NetIO controller. These are managed by an interrupt handler called ‘buttons.py’. The server (netio_server.py) is customized for the various communication interfaces. Both programs are available on GitHub: https://github.com/francolargo/BBB-audio

Performance is truly fine, and the convenience of NetIO is wonderful.

Attachments