Embedded Audio Sources

Introduction / Hardware Part 1

Just how many things can the Raspberry Pi become? I’m currently working using the one I have as a VPN concentrator thanks to Arch Linux ARM and SoftEther. Other people have used it for much more than that. As I sat by my -turbofan engine- workstation computer listening to music while coding, I thought, “Time for some peace and quiet.”. The biggest problem is that my -turbofan engine- workstation computer is the only system with a complete version of my entire music collection. Remedying that issue would prove to be fun.


I first started looking at software. While I know how to install and configure Arch Linux ARM, ALSA, and MPD, there are other projects specially tailored to what I needed. RaspyFi was the first one that I found. The team that was working on it split and created two different projects: Volumio and Rune Audio. The original founder of RaspyFi created Volumio using the same architecture as RaspyFi (Debian based) with extra customisations. The creators of RaspyFi’s web UI created Rune Audio with Arch Linux (<3), custom compiled versions of Nginx and PHP-FPM, and a reworked variant of the RaspyFi web UI code. Voyage MuBox is another Debian based OS but with better support for another low-power, high-performance system: the CuBox-i.

Hardware Part 2

The CuBox-i is an interesting little system from SolidRun. For just over the price of a Raspberry Pi, the CuBox-i1 includes two USB ports, a full 10/100 ethernet port, an infrared receiver, and a S/PDIF (toslink) port. It also has a FreeScale i.MX6 Solo running the show at 1 GHz and 512 MB of RAM. All of these components are contained in a cube measuring 2 inches per side. The one thing that it lacks that the Raspberry Pi and some other hardware have is support for DACs via I2S. This would cut down on the number of devices needed in the chain.

There is also another device whose name starts with cub: the CubieBoard. For around the same cost as a CuBox-i1, the CubieBoard 2 includes two USB ports, one SATA port, a full 10/100 ethernet port, one Micro SD card slot, an infrared receiver, and 4 GB of NAND flash. It also has a dual core ARM Cortex A7 running the show at 1 GHz and 1 GB of RAM. All of this placed on a single board that is not much larger than a Raspberry Pi.

Having infrared receivers on these machines (the Raspberry Pi needs an add on) make either of them perfect for a music player that can be controlled via the network or using an infrared remote. This is great as I still have my original Apple remote from my MacBook.

Software Part 2

Infrared control of MPD requires two things: LIRC and MPC. LIRC acts upon signals from the infrared receiver of the machine. MPC is a commandline MPD client. The two together would allow for quick, conveinent control over music playback after setting up MPD and creating the playlists. It almost negates the need for the web UIs that Rune Audio and Volumio have. Almost. The web UI of each project also allow for changing various system settings such as enabling I2S on the Raspberry Pi. Very useful.

Hardware Part 3

Now that the source hardware and the software to run on it have been sorted out, what about the rest of the audio chain? A DAC and an amplifier are required to get the best sound quality out of my headphones. After much research, only two DAC+amplifier stacks make the shortlist: 1) Schiit Modi and Magni 2) NwAvGuy’s ODAC and Objective 2 (assembled by JDS Labs). The latter is said to be more transparent while the former should offer more power for my headphones.

As was mentioned in ‘Software Part 2’, the Raspberry Pi has support for DACs that can be connected via I2S. The DACs are connected to the two rows of four header pins (which you install yourself) on the Raspberry Pi. These include the Hifiberry DAC and the IQaudIO DAC. Either of these paired with either the Schiit Magni or Objective 2 will mmake a great match.

Hardware Part 4

This is the really simple part. Either the music is stored on directly attached storage or network attached storage. I could use a harddrive or USB flash drive to store the music on if I go the directly attached storage route. If I go the network attached storage route, I’ll build my own NAS.

Audio Chains

Knowing how the music gets from the machine to your headphones is important. Yes, headphones as I have no space to implement even a near-field speaker setup.

With the Raspberry Pi, it would be setup like this:
Storage -> Music -> MPD -> Raspberry Pi -> Hifiberry DAC or IQaudIO DAC -> Objective 2 or Schiit Magni -> Headphones

With the CuBox-i1 and Cubieboard 2, it would look like this:
Storage -> Music -> MPD -> CuBox-i1 or Cubieboard 2 -> ODAC or Schiit Modi -> Objective 2 or Schiit Magni -> Headphones.


With some money and know-how, you can definitely build an embedded audio player that will be small, efficient, convenient, and most of, quiet. There’s no need to invest in expensive computers or cables just for the sake of playing music with the highest sound quality whilst remaining silent. The Raspberry Pi, Cubox-i1, and Cubieboard 2 are proof of that.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s