A Linux-friendly DAC and headphone amplifier for listening to music

A Linux-friendly DAC and headphone amplifier for listening to music

Let's take a look at the latest gizmo in my house: a new DAC (digital-to-analog converter).

A Linux-friendly DAC and headphone amplifier for listening to music
Image by : 

opensource.com

This month I'm taking a bit of a break from my tagging journey to look at the latest gizmo in my house—a new DAC (digital-to-analog converter).

First of all, let's talk about DACs in general. I imagine that most people have watched a video, listened to a song, or held a conversation with a friend far away, all enabled by Linux-based computers and various bits of hardware. I also imagine that many people have heard sound coming from their speakers or their headphones without giving too much thought to how the digital signal is converted to an analog sound that can be played through those devices.

That conversion mechanism is the DAC.

There is also its opposite, an ADC (analog-to-digital converter), which takes analog signals from your microphone and converts them to digital form for communicating to that faraway friend. For now, I'm going to focus on the DAC—more specifically, on a DAC that is a part of a sound reproduction chain designed to reproduce the original signal in a very faithful way, before digitizing, without introducing a lot of errors and noise in its operation. This concept of reproduction that strives to do the least audible damage to the original is often referred to as "high fidelity."

Let's think about the steps involved in this conversion:

  1. The signal arrives in digital form (it could be music, a voice conversation, a film soundtrack, etc.), which is a great way to transmit and store information, but you need to convert it to something recognizable to our ears.
  2. The first step, generally speaking, is to turn that digital signal into analog form—instead of zeros and ones, the values are turned into electrical waveforms that mimic the original sound.
  3. Some kind of amplification is necessary to convert that newly converted waveform into something that has enough power to drive your headphones or speakers.
  4. Your headphones or speakers are made to vibrate by that amplified signal, which makes the air between your headphones and speakers and your eardrums vibrate, and eventually, your eardrums and the rest of your marvelous hearing mechanism converts that audible signal back into an electrical signal, which your brain interprets.

In this set of steps, the DAC fulfills the requirement stated in Step 2: It converts the digital signals into analog signals, which are then amplified and presented by speakers or headphones for your listening pleasure.

Most digitally encoded music is represented as PCM (Pulse-Code Modulation). There are also other representations in more or less widespread use, such as delta-sigma modulation. The digital music signals are encoded and stored in a particular container format, often along with metadata. In playback, that information is read by the playing software, and the digital audio stream is sent off to the DAC for conversion to analog.

In the early days of personal digital music reproduction, memory resources were scarce and download speeds were low, so the formats used tended to focus on making the music files as small as possible to make the entire process as feasible as possible. This led to "lossy compression," where some of the signals were discarded in order to make files as small as possible. Even the CD (compact disc), which was the earliest mass-market form of digital music distribution, compromised a bit, with a 16-bit sample recorded a 44.1-kHz sampling rate. That rate provides a pretty rough approximation to lower-level signals and necessitates filtering out any signal content above 22 kHz or so.

Although a tremendous amount of digital music is available on CD or in one of those lossy formats (like MP3), every day I find more music with a higher resolution; for example, 24-bit word lengths and 96-kHz sampling rates. It's not uncommon to see music that was originally recorded in analog form hauled out of the vault (or wherever they store that stuff) and converted to high-resolution digital form.

For those of us who keep our music library in digital form on our laptop or desktop computers, or who have a dedicated music server, we need to be very careful when choosing the DAC to make sure it will offer the operating system compatibility, features, and sound quality needed.

One of my favorite manufacturers of high-quality, reasonably priced, Linux-friendly audio equipment is Schiit Audio. I recently noticed they have a new gizmo at the low end of their product line, the Fulla 2, and I decided to purchase it. Basically, this is a DAC and headphone amplifier all in one unit, meaning it covers Step 2 and a part of Step 3 as I mentioned previously, and also adds some interesting additional features. I start with the DAC+headphones part. To get it going, you plug the USB cable into a laptop's USB2 or USB3 port and the other end into the Fulla 2's "USB Power and Data Input" port, set up your music player to send output to that device, plug in your headphones, and away you go.

In my case, the headphones amplifier in the Fulla 2 works very well with my favorites, my AKG 701s. The sound produced by the combination is really excellent—fine details are really evident without any harshness or sibilance, and the output power of the Fulla 2 is plenty to drive these headphones to comfortably loud levels at the nine o'clock setting (i.e., one-quarter turn up). The components and technical specs of the DAC and amplifier sections of the Fulla 2 are first-rate, especially at its price point.

Another cool thing about the Fulla 2 is it has two additional analog outputs on the rear apron; one is a fixed "line-level" output that can be plugged into your receiver, and the other is a variable-level output that you can use to drive a set of powered speakers while using the Fulla 2's volume control to set the level.

There is also an analog input on the front apron, so you can hook up your visitor's phone or tablet to play his or her music back on your headphones or through your powered speakers or stereo.

Finally, it has a separate, power-only USB port that lets you use this device with low-power digital sources, like cellphones or tablets. Just plug your phone charger into this port, and there is no appreciable current draw on your phone.

Besides the great sound and cool features, two other features are worth emphasizing about the Schiit Fulla 2: it really is nicely compatible with Linux-based computers and it costs only US$99. Back in the distant past, I experimented with building my own audio gear, both from scratch and in kit form. Today, when I look at the Fulla 2, I doubt that I could build something decent from scratch for anything like the same parts cost.

Did I mention that it's Linux-compatible? In a terminal window, once it's plugged in:

clh@avignon:~$ ls /proc/asound
card0 card1 cards devices hwdep modules oss PCH pcm Schiit seq timers version

and

clh@avignon:~$ sudo aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: VT1802 Analog [VT1802 Analog]
 Subdevices: 1/1
 Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: VT1802 Alt Analog [VT1802 Alt Analog]
 Subdevices: 1/1
 Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
 Subdevices: 1/1
 Subdevice #0: subdevice #0
card 1: Schiit [I'm Fulla Schiit], device 0: USB Audio [USB Audio]
 Subdevices: 1/1
 Subdevice #0: subdevice #0
clh@avignon:~$

In my GogglesMM audio preferences screen, I access the Fulla 2 directly through ALSA (Advanced Linux Sound Architecture) as hw:CARD=Schiit,DEV=0 (the CARD= coming from the name in /proc/asound and the DEV= coming from the aplay -l info) with no resampling and no replay gain. I have no glitches or error messages in the system logs; it's detected without problems and works just fine.

Fulla 2 with headphones plugged into the front

In this image, you can see my Fulla 2 with headphones plugged into the front (the gray cord), the two USB cables, (power and signal) into the rear, and a cable that connects the fixed output analog to the auxiliary inputs of the receiver in my office.

This device is bulkier than a dongle, but I don't foresee any problems packing it in my laptop bag for traveling. Certainly, its sturdy metal case promises that it should be a durable traveling device, although I will have to remember to pack an adapter for the 3.5mm plug on my in-ear monitors.

Speaking of GogglesMM...

I've mentioned previously my interest in the GogglesMM music player. Lately, I have had a few email conversations with its developer, Sander Jansen.

Sander spotted my recent article and wrote to me in response to a couple of those comments. With his permission, I'm sharing his reply here:

Regarding the two items you specifically mentioned:

1) Lack of Compose Key functionality

I have this (x input methods) currently turned off in the FOX build for Ubuntu. I have had mixed reports from people trying to use this feature. For some people, it works great, while for me all keyboard input became broken. I think there is some sort of bug in FOX, but I haven't had time to trace it down. I know it works for FOX 1.6 version, so I have hopes of getting this feature repaired at some point.

2) GogglesMM was never designed as a complete "tag" editor—more the opposite actually. I created a music manager with a database that uses specific tags to load information into the database. It supports a fixed set of tags. Any tags it currently reads can also be written back (and empty ones will be deleted). It also tries to be a good citizen, any tags it doesn't support or knows about will be left as is. And of course, if the information was scanned from the filename itself or perhaps entered manually, GogglesMM will be able to create proper tags in the file itself. 

There are a lot of custom tags out there (especially id3v2 defines a lot of them, other formats have more informal specs), I think I captured the most important ones that people might want to set. That doesn't mean I'm against adding support for any new tags, but I wouldn't just want to do it just to allow editing some esoteric tag of the id3v2 spec.

In our subsequent discussion, I also mentioned that offering options on sort order in cover view mode could be cool (for example, by artist or album artist, and then by title). Sander indicated that he was thinking of adding some features there, mentioning that "the way people organize CDs is very personal: you can easily argue classical CDs should be organized by the conductor, orchestra, or some famous performer (Rubinstein, Itzhak Perlman) instead." That's my experience as well. In fact, a friend of mine who has a large collection of classical music ripped to disk is writing his own tag-based file system to deal with that.

And the music...

With this new Fulla 2 on my office desk, what am I listening to?

Well, the Gimell Records store-closing promotion I mentioned in my last article prompted me to pick up a few more of The Tallis Scholars' high-resolution downloads: Allegri's Miserere & Palestrina's Missa Papae Marcelli, Victoria's Lamentations of Jeremiah, Taverner's Missa Corona Spinea and Josquin's Missa di Dadi and Missa une Mousse de Biscaye.

For those of you unfamiliar with Allegri's Miserere, this performance by the Tallis Scholars in Santa Maria Maggiore in Rome is a pretty spectacular rendition of this work. I was fortunate enough to see them perform the same work in Vancouver a number of years ago, and the experience still raises the hairs on the back of my neck.

One of the fun things about watching and listening to the video version over my laptop's built-in DAC and headphone amplifier is then comparing it to the high-resolution version played over the Fulla 2. The difference is not slight.

Once I get started on choral music, at some point or the other I almost always end up playing Niyaz's album Nine Heavens, especially the song "Iman." You can sample the "Iman" and the rest of the album on Niyaz's corner of Bandcamp. For those readers who, like me, know little to nothing about music from this part of the world, I can recommend this article about Rubā'ī on Wikipedia, which explains the form of the vocals on "Iman."

More on Gimell Records

If you read my last column, you will know that Gimell Records closed their Linux-friendly online store in March. The good news is that Hyperion Records is taking over the line on their online store, and Hyperion is also a Linux-friendly site. I recently acquired a demonstration album from the store and had no trouble downloading it without installing any software I don't want.

I wrote to Hyperion's support email to thank them for including Gimell's catalog on their store and for their Linux-friendly download stance. I received the following kind reply from Edward there:

Dear Chris,

Welcome to Hyperion, and we hope you will enjoy using our site. The only thing you'll lose with the manual downloading option is the PDF booklet, which is bundled automatically when the Hyperion Download Manager is used; however, it is easy enough to download these separately. Simply go to the relevant album page (such as http://www.hyperion-records.co.uk/dc.asp?dc=D_CDGIM048 for the Josquin Missa Di dadi and Une mousse de Biscaye) and click the "Digital booklet (PDF)" link underneath the cover art.

With best wishes,

Edward

Kudos to Hyperion Records! I'll certainly be browsing their catalog in the coming days.

About the author

Chris Hermansen - Engaged in computing since graduating from the University of British Columbia in 1978, I have been a full-time Linux user since 2005 and a full-time Solaris, SunOS and UNIX System V user before that. On the technical side of things, I have spent a great deal of my career doing data analysis; especially spatial data analysis. I have a substantial amount of programming experience in relation to data analysis, using awk, Python, PostgreSQL, PostGIS and lately Groovy. I have also built a few