Category Archives: Audio

Room Response: Nulls and Distortion

When measuring equipment it’s important to understand some relationships between frequency response and distortion. This helps interpret results correctly and not go chasing ghosts.

Here is the distortion from my Magnepan 3.6/R speakers measured from the listener position using REW, and a Tascam DR40 recorder:

Overall it’s excellent for an in-room loudspeaker measurement. Distortion is below -40 dB (1%) above 60 Hz, drops to -50 dB (0.3%) by 200 Hz, and ranges from -50 to -60 dB (0.3 – 0.1%) in the mids & treble where our hearing is most sensitive to it. This is less distortion than most quality headphones. And it’s actually even lower than this because it includes the room’s ambient noise and distortion from the Tascam DR40 built-in mics.

However look at that big distortion bump around 170 Hz. What’s going on there? The short answer is nothing – it is a measurement error. To see this, look at the frequency response:

See that dip at 170 Hz? It’s caused by a null. Its wavelength matches twice the distance from the speakers to the front wall. With dipoles, the back radiation is inverted polarity from the front, so its cancels at that frequency, creating a null. Note that this null exactly matches the frequency where the distortion graph bumps. That’s no coincidence!

When REW runs the frequency sweep, the response picked up by the microphone dips at 170 Hz. Distortion is the ratio of higher frequencies to the fundamental, and when the fundamental drops, that ratio jumps even if the higher frequencies (distortion) remains constant.

On a similar vein, the graphs show small distortion bumps at 450 and 600 Hz, corresponding to frequency responds dips at the same places.

A closer look reveals more subtle effects of the same cause. If the response dips at 170 Hz, then any 2nd harmonic from half that frequency won’t get picked up either, so that frequency will show a dip in 2nd harmonic. This explains the dip in the red line (2nd harmonic) at 85 Hz. Same with 3rd harmonic, and we see a dip in the orange line (3rd harmonic) at 57 Hz.

To confirm, here’s that same distortion graph shown as dbFS: absolute level instead of relative to the fundamental:

The scale shifted about 20 dB down but the shape of the curve is the key point.

Pretty cool, huh?

Corda Soul Measurements: Distortion

Intro

As I was measuring the performance of the Corda Soul, I encountered an unusual distortion profile. I got curious and dug into it – here’s what I found.

Corda Soul Distortion

When I measured using an REW frequency sweep at -1 dB with the Soul at max analog volume, recording the Soul’s analog output on my Tascam DA3000, here’s what I got:
We see an unusual hump peaking at -78.5 dB between 1 and 2 kHz. That is db FS (full scale), which is about -70 dB dBr (relative to the signal). This is surprisingly high distortion. A closer look shows this is entirely 3rd harmonic (orange superimposed on the black) and it peaks between 1 and 2 kHz. This odd harmonic distortion is sometimes seen in balanced (differentially signalled) systems, which tend to squash even harmonic distortion.

What would cause this distortion hump? The WM8741 chip is rated at -100 dB THD, and the Soul should have a reference implementation. I measured this by recording the Soul’s analog output on my Tascam DA3000 recorder, so this includes distortion from its analog stage and A/D converters (rated at -90 dB). But this distortion is higher than that. I know from experience that DACs often have distortion that varies with level (more detail on this from Archimago), especially as digital input approaches full scale, so I measured the same sweep at -6 dB:

Here the distortion dropped to -92.4 dB, or about 14 dB lower. I also measured it at -12 dB:Here distortion drops to -107.6 dB (about -100 dBr), which matches the specification of the WM8741 DAC chip.

I tested distortion every 3 dB from full scale to -40 dB. At -12 dB the distortion falls into the base level noise & distortion of the Tascam recorder I used to measure it. At these digital input levels (-12 dB and lower) the Soul’s distortion is too low for me to measure, given my limited equipment.

Here are the THD versus Level graphs that I measured. First, THD relative to the signal level:

The above graph makes it difficult to see how my measuring device limits this, so here is the same graph shown in absolute terms. This shows how distortion sinks into the noise+THD of the recorder I used to measure it. The slope is about 2:1 – starting at full scale, every 1 dB reduction in signal level gives a 2 dB reduction (improvement) in THD.

In summary: Noise below -90 dB should be inaudible, and due to psychoacoustic masking, distortion below -80 dB should be inaudible.

Note that this unusual distortion profile is the same at all sample rates (44k to 192k) and digital inputs (coax, toslink and USB).

Perspective: Multitone

We don’t actually listen to pure tones or sweeps, so another perspective on distortion involves multi-tone signals having harmonic spacing that resembles music. I used REW to create a multi-tone signal having 3 frequencies per octave from 20 Hz to 20 kHz, spaced geometrically (constant ratios), for a total of 31 tones.

One aspect of multiple tones is that the signal is the sum of all the tones, so the overall signal level is higher than any of the individual tones. For the signal I used, the overall level is at -1 dB (near full scale) while each individual tone is about -24.7 dB.

A multitone signal like this may show worse distortion, as each of the many tones has its own harmonic series, and intermodulation between them creates even more spurious tones. Alternately, it might have less distortion because the tones that make up the signal must be attenuated to a lower level so their sum doesn’t exceed full scale. DACs sometimes have higher distortion near full scale, achieving their cleanest output around -3 to -12 dB.

Because this test can go either way, it gives additional insight to the DAC’s performance. One could say that DACs that perform worse on multitone are optimized for test tones, and DACs that perform better on multitone are optimized for music. Though of course, some DACs might perform well with both.

Here’s the signal in its pure mathematical form. I played this through the Soul and recorded the SPDIF output on the Tascam – this is pure digital with no D/A or A/D conversion. By “pure” I mean the imperfections in this graph are due to dither and the resolution of the Fourier Transformation used to analyze it.

In the following graphs, distortion and noise appear as small spikes or “grass” between the tones. Here’s that same signal played through the Soul’s DA converter and recorded on the Tascam:

The tips of the “grass” are around -90 dB dBr, which means dB relative to the tones. The tones are at -24.7 dBFS (dB full scale), so the vertical axis 0 dB in this graph is -24.7 dBFS, which means the tips of the grass are at -114.7 dBFS. If we sum the “grass”, they’d total about 30 dB louder, or -85 dBFS. With the multitone signal at -1 dB, that would be -84 dBr. Note that the small spikes at 60, 120 and 180 Hz come from the Tascam DA3000 recorder.

What’s really interesting about this is that the THD vs. level graphs above show distortion at -71 dB for a sine wave at -1 dB. Yet with a multitone at -1 dB, the Soul’s total distortion (both HD and IMD) is about 14 dB lower and its 3rd harmonic distortion hump disappears. The Soul performs better with multitone than it does with a single tone at the same level.

Here’s the multitone at -7 dB (6 dB quieter). Distortion is about the same in the low frequencies, yet now 10 dB lower in the mids and treble where our hearing is most sensitive to it. Note that moving the Soul’s gain switch to the low (-6 dB) position has the same effect, so it applies before DA conversion.

This puts the Soul’s distortion hump into perspective: because music consists of so many frequencies, it’s unlikely to have any single frequency above about -12 dB, and more likely -20 dB or lower even at full scale dynamic peaks, so while Soul’s hump looks bad with individual test tones, it’s cleaner when reproducing music.

To more easily see how distortion drops with digital input level, here’s the Soul’s multitone performance at 3 levels: 0 dB (grey), -6 dB (red) and -12 dB (blue), superimposed.

In this graph the lower level inputs (-6 and -12 dB) are shifted upward so the peaks from all three traces are at 100 dB SPL. The tips of the distortion grass are at -90, -100 and -110 dB, respectively.

These THD levels are lower than the specification for the WM8741 DACs that the Soul uses. This multitone distortion performance would have been considered excellent nearly 20 years ago when the 8741 DAC chip first came out.

Another possible contributor to this unusual distortion profile is Meier’s FF (more on this here). It attenuates low frequencies before DA conversion and the amp’s analog gain-feedback loop, in order to reduce overall levels from approaching full scale, and to focus negative feedback on the mids and treble. Yet this only works when low and high frequencies are played simultaneously. With single tones, it makes no difference except to reduce resolution of the low frequencies. Whatever benefits FF provides are only realized with multitone signals. It is a feature that optimizes for music rather than test signals.

Factor: Amplitude vs Frequency

Another factor regarding the relevance of distortion is the relationship between amplitude and frequency. The Soul’s distortion rise at high input levels doesn’t happen at all frequencies. It depends on both input level and frequency. At low frequencies distortion is low even at high input levels, doesn’t start to rise until above 300 Hz and peaks just above 1 kHz. Yet the amplitude of musical signals peaks in the bass and drops as frequency increases. More on that here.

In a musical signal, above whatever bass frequency amplitude peaks (typically below 300 Hz), the amplitude typically drops 6 dB per octave. If we take that highest peak bass frequency as 250 Hz, then 1 kHz is 2 octaves higher and the amplitude has dropped by 12 dB. Thus the level at 1 kHz will be 12 dB below peak, and dropping further for higher frequencies. And that is a worst-case for single tones. As mentioned above, every additional frequency in the musical signal further drops all of their individual levels.

The multi-tone test signals above have all 31 tones at equal amplitude. This overstates the Soul’s distortion when playing music, because in music the high frequency tones would be attenuated, lowering them below the threshold of the Soul’s distortion hump.

The net effect is that the Soul’s unusual distortion hump will never manifest when listening to music. It requires single-tone high frequencies at high input levels, something we only get with test signals.

Deep Dive: Odd Harmonics

The THD that the Soul produces is purely 3rd harmonic alone – all other distortion is below my measurement limits. This in part explains the good multitone performance, because the multitone combines a single harmonic for each frequency instead of a spray of them. What 3rd harmonic distortion (or more generally, odd harmonics) does to a sin wave, is it flattens the peaks & troughs. Here is an exaggerated example showing the effect of 10% (-20 dB) of 3rd harmonic.

The big dotted wave is the original signal, the small dotted wave is the 3rd harmonic, and the big solid wave is their sum, which shows how the 3rd harmonic changes the waveform. Looking at the two waves, you can see that the 3rd harmonic reverses each of the primary wave’s peaks, squashing them. This diagram is grossly exaggerated. The Soul only adds about -70 dB worst case, and -100 dB typical case, which is about 10,000 times less than the 10% shown above. The effect is too small to see (or hear) and must be exaggerated to see what’s happening.

This peak-squashing only happens only at high digital signal levels, so one possible reason is that the DAC chip isn’t “strong” enough to fully reproduce dynamic peaks. Put differently, it looks like soft clipping. The WM8741 chip is a voltage-output DAC – unlike many modern DACs which are current output and rely on external circuitry to convert current to voltage. When the digital signal gets loud, the 8741 must produce higher analog voltages, which draws more power. If the DAC’s voltage supply sags on peak demand, or the load it’s driving is too low impedance, that is the kind of distortion we’d expect to see: soft clipping which consists of odd harmonics. Another possible cause is parasitic (or designed-in) capacitance, which can cause this kind of time-based non-linearity. This seems plausible because capacitance is frequency-specific, and the Soul’s distortion profile is also (it doesn’t affect low frequencies).

I did measure the Soul with its power supply ground jumper removed, which puts a resistor in the ground path to eliminate ground loop hum. I also tested all digital inputs: coax, toslink and USB. None of these affected it.

Bypassing the DAC

I speculate that the distortion comes from DA conversion… is that actually the case?

To find out, I played test signals through the Soul, bypassing its DAC. This is possible due to a unique feature of the Soul. It has an external DAC loop similar to the tape loop that preamps used to have. This is a switch on the front panel to listen to its analog input – but this switch is separate from the digital input selector and does not disable its digital processing. It still receives and processes the digital input, and sends it out via toslink SPDIF. You can send the Soul’s digital output to an external DAC, and connect that DAC’s analog output to the Soul’s analog input. Of course, the external DAC must have balanced XLR output.

Like this:
(Digital Source)
    --d--> (Soul for DSP)
    --d--> (external DAC)
    --a--> (Soul for volume control)
    --a--> (headphones or line out)

In this mode, the Soul becomes a DSP processor and analog balanced preamp. DAC is handled externally. Why? Future proofing. DSP is purely digital which at 32-bit precision is near mathematically perfect, so it’s not going to improve over time. Analog preamp technology fully peaked and optimized years ago so that’s not improving either. But DACs are constantly evolving, so the Soul enables you to use an external DAC while keeping the rest of the unit.

Here’s the multitone played through the Soul, but using its external DAC bypass with the Topping E70 doing the D-A conversion (and the Tascam DA3000 performing A-D conversion of the final analog output, as before):

This is cleaner than the Soul’s DAC. More precisely, the E70 at full scale is comparable to the Soul at -12 dB (see below). The E70 is a state-of-the-art DAC that has impressively low distortion both with single tones and multitone. Since these signals were analog outputs captured and digitized by the Tascam DA3000, it shows that the Tascam DA3000 performs significantly better than its specification (though it still adds small spikes at 60 & 120 Hz due to imperfect power regulation), and since this signal passed through the Soul’s analog stage, it shows that it’s impressively free of noise and distortion.

Using a SOTA external DAC like the E70, the distortion hump entirely disappears and overall distortion is so low I can’t measure it with the Tascam recorder.

Comparisons: Distortion, Noise and Level

I wanted to measure at lower output levels because it better matches how we actually listen. We don’t listen to music that is constantly at max digital level (unless you listen to modern pop music that is crushed with dynamic compression, but then high quality audio equipment would be a waste of money, you would have crappy equipment and no musical taste, and wouldn’t be reading this). And we don’t listen with the volume knob turned up to max, but more typically around half way.

I also wanted to make direct comparisons between the Topping E70 and the Soul because the E70 is a modern DAC with excellent measurements. It is the best DAC I’ve ever measured, and among the best that Amir at ASR has measured. As a modern SOTA DAC, it makes a useful benchmark and comparison with the Soul.

As above, I made the following graphs by playing digital test signals into the Soul and recording its analog output on the Tascam DA3000. There are 2 key differences:

  • Which DAC I use: the Soul’s built-in WM8741s, or the E70’s ESS9028 Pros
  • Whether I control the volume with the Soul, or with the E70 (Soul volume at max)

Generally, the level of noise and distortion varies with two factors that affect its loudness:

  • The digital signal level (dB relative to full scale)
    • This tends to affect both noise and distortion
    • Lower digital levels tend to have lower distortion and higher noise
  • Attenuation from the volume setting
    • This tends to affect noise but not distortion
    • Lower output levels tend to have higher noise

First, let’s look at the distortion frequency sweep at -1 dB digital with volume turned down to -16 dB. This checks overall noise level.

Using the Soul’s internal DACs, the overall noise & distortion peaks between -100 to -108 dB depending on frequency.

Using the E70 DAC and volume control, the overall noise & distortion varies from -90 to -100 dB.

The E70 is no slouch but the Soul is about 10 dB quieter. This comes as no surprise, due to the unique way its volume control works, mentioned in my review of the Soul. It’s interesting to measure and quantify the impact of this engineering feature.

Here’s the comparison for multi-tone at 2 digital input levels: 0 dB and -6 dB, with volume at -16 and -24 dB respectively. The Soul is green and the E70 is blue.

Here is the 0 dB multitone played at -16 dB. Same as above, the tips of the Soul’s “grass” reach around -90 dB while the E70 is about 12 dB lower.

The situation changes when we reduce the levels. The -6 dB multitone played at -24 dB brings near equality as the Soul is now just a tad better than the E70.

Summary

Overall, the E70 is the more consistent performer. Its distortion is independent of level and its SNR drops linearly with level. The Soul is more complex and harder to characterize. I hesitate to say it’s optimized for music listening because we hear this a lot and it’s usually an excuse that expensive boutique audio equipment uses for poor engineering and performance. But this dive down the rabbit hole of measuring noise and distortion opened my eyes to the fact that this phrase can actually mean something. The Soul’s distortion performance is not very good when measured by a full scale tone sweep. But we don’t listen to tone sweeps at full volume. With test signals that resemble music at realistic levels, the Soul’s measured performance rivals the best modern DAC that I have seen. This gives the phrase “optimized for music” some objective meaning.

Conclusion

The E70 has exemplary noise performance, but the Soul’s noise is even lower. The Soul’s distortion depends on digital input level, while the E70 does not. With multitone signals that resemble music they are roughly equal at -12 dB; the E70 is better at higher levels and the Soul is better at lower levels. This is somewhat surprising since the Soul uses a pair of WM8741 chips, which are about 10 years older than the ESS9028 Pro that the E70 uses. This supports the idea that the implementation of a DAC chip is more important than the chip itself.

Using an external DAC with the Soul is a tradeoff between distortion and noise. The Soul does better with noise than with distortion, yet when listening to music in the real world, both are low enough that even the best SOTA external DAC should make no real improvement.

All that said, there are subtle differences that can be detected with appropriate musical source material. If you are well trained how to listen for them. Being a musician helps, as does experience with DBT/ABX testing. Also you need excellent equipment in a superbly quiet listening environment. I listen mostly to small ensemble music and found the Soul and E70 essential indistinguishable. I first noticed a difference when listening to large ensemble symphonic music with high dynamic range, during crescendos. That difference was so subtle I could only hear it on the Magnepans; it was undetectable with high quality headphones. This prompted me to do some critical listening with high quality rock music recordings (rare, but they do exist, such as some albums from Dream Theater and Pink Floyd, and Steven Wilson remixes). This, as well as the measurements above, confirmed the difference, though it remains subtle.

Ubuntu 24!

Introduction

My home desktop has been running Ubuntu 18 since it came out in April 2018. As all even numbered versions, it has LTS (long term support) for 5 years, which ended last year. Yet the reliability of Ubuntu is a double edged sword. It runs so long, without filling the hard drive with garbage, without fragmenting the filesystem, without losing performance, that over the years you customize it so many ways that by the time you need to upgrade, it’s hard to remember everything you’ll need to set up in a new system.

So why upgrade at all? After 5 years there are no more updates. No more security patches, and for most of the applications you can only run old versions. So you need to upgrade to use the latest versions of applications and stay on top of security.

You can upgrade in place to keep everything you’ve configured, with do-release-upgrade. But this only takes you up 1 step to the next LTS version (18 to 20, 20 to 22, etc.). So I’d have to do that 3 times! And it doesn’t guarantee that everything you set up will work – though it usually does.

This time around, 6 years and 3 versions behind, I decided to do a full upgrade from 18 to 24 and wipe the system boot drive. I waited until Ubuntu 24 was released on April 25 and then hit the keyboard.

Install

I actually use XUbuntu, a variant of Ubuntu that uses the XFCE desktop instead of Unity. I prefer the XFCE desktop, as it is more traditional and faster, using less CPU and RAM. Even if the computer is fast enough to support a more heavyweight desktop, why waste the CPU and RAM on that? Even if Unity was as lightweight and fast as XFCE, I would still prefer XFCE.

First I backed up my system using deja-dup. Most of my data files are on separate hard drives, which I would not be erasing. So I only needed to back up my home directory and an “apps” directory that I use for software that is manually installed. I also reviewed my apps and files to ensure that all the software I wanted to install was available on my data drive: DEB, TAR, etc. As my desktop has 4 drives, I wrote down the device and UUID for each so I could recognize them during installation.

Next I downloaded the ISO file, burned it to a DVD, rebooted to the DVD which started XUbuntu. I selected to do a manual install, reformatting the system drive. I selected “minimal installation” because I didn’t want a bazillion crapplets that I’ll never use, but also “include 3rd party and binary software”. This all went smoothly and it also automatically installed the NVidia drivers for my GTX1660.

Next, I removed the DVD and booted, my computer came up in XUbuntu 24. Yay! But now the real work begins…

Configuration

Firefox

Firefox is a mess in Ubuntu 24. First, by default it installs as a Snap, which nobody likes. And, on top of this, they’ve crippled its access to the filesystem. You can remove it from Snap with snap remove firefox and then install with apt install firefox, but the next time you update it will revert back to the Snap install. To get it to stay this way you’ve got to edit some config files to tell the system to always install it from apt.

Next, I found that Firefox could not download files. After scratching my head for a while I realized this is because my home Downloads folder is a link that points to my data disk. And I also discovered that I could not open local documentation HTML files for the Android and Java SDK. Putting 2 and 2 together, I realized that someone decided to cripple Firefox’s access to the filesystem. WTF!?

I suspect this is the “younger generation” of developers, who think the local filesystem is somehow “unsafe”, and really unnecessary anyway since they do everything in the cloud. That is the only reason I can imagine for the crazy idea of crippling such an essential function. Most sites say that installing Firefox from apt instead of Snap solves this. Perhaps it once did, but not anymore in Ubuntu 24. With some Googling I learned they’ve created an AppArmor config that restricts filesystem access for Firefox. My fix was to configure AppArmor to disable the Firefox controls, like this:

sudo ln -s /etc/apparmor.d/usr.bin.firefox /etc/apparmor.d/disable

Altogether, this got Firefox working properly again.

Backups: Deja-Dup and Duplicity

To restore all of my backups I’d have to be root because some of the files to be restored are system, owned by root not by me. No problem, right? Think again. My backups are on a separate disk that I mount to a local folder /dsk3. When I ran deja-dup to restore a backup, it would unmount that drive!

If I ran deja-dup as myself, it would work only because it wasn’t root so its attempt to unmount the drive would fail. This was fine, it still worked, even if only by accident. But with deja-dup it is impossible to restore a backup that you have mounted to a separate disk, if you run it as root.

I could not find a solution to this, so I only restored my home and apps directories mentioned above. That’s all I really needed to back up, so I got lucky.

Thunderbird

I installed from apt and it saw all of my email that was restored from the backup – both my local folders and all of my IMAP email server accounts. Bang!

Python and Virtualenv

In Ubuntu 24 Python works differently. The system Python is now 3.12 instead of 2.7, which is nice. But the procedure for installing virtualenv and virtualenvwrapper that I used for Ubuntu 22, does not work in 24.

First, use pipx instead of pip. That is, pipx install virtualenv.  After that, pipx install virtualenvwrapper. At this point they are installed but the don’t work. Next, I had to change the environment variables and python & wrapper script locations:

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVBIN=$HOME/.local/share/pipx/venvs/virtualenvwrapper/bin
export VIRTUALENVWRAPPER_PYTHON=$VIRTUALENVBIN/python
source $VIRTUALENVBIN/virtualenvwrapper.sh

I created some virtualenvs, listed them, etc. it all works fine – great!

Pulseaudio and Pipewire

Ubuntu 24 audio is working, but it runs pipewire instead of pulseaudio. I had pulseaudio configured to avoid resampling for bit perfect audio. Pipewire is not doing this; it resamples everything to the system default sample rate of 48 kHz. With some reading, I found a simple way to configure this.

The pipewire config files reside here: /usr/share/pipewire

In particular, the primary config file is: /usr/share/pipewire/pipewire.conf

But rather than edit this directly, you can leave it in place there and create another config file that overrides individual settings.

Create this directory if it doesn’t already exist: /etc/pipewire/pipewire.conf.d

And in that directory, create text files (having any name) that override individual settings. For example I created this file: /etc/pipewire/pipewire.conf.d/pipewire-custom.conf

# Daemon config file for PipeWire version "1.0.5" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/pipewire.conf.d/ for system-wide changes or in
# ~/.config/pipewire/pipewire.conf.d/ for local changes.
#

context.properties = {
    ## Properties for the DSP configuration.
    default.clock.rate = 48000
    default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 ]
}

stream.properties = {
    resample.quality = 14
}

After doing this, when I play audio files using VLC, with an external DAC connected to my sound card’s SPDIF output, the external DAC shows the sample rate changing to the native sample rate of each file that I play. It works!

Also: the DSP library PulseEffects was replaced with EasyEffects, a newer version that works with PipeWire. This new version has a feature I like: it does not resample all audio to the system sample rate like PulseEffects did, but plays audio at its native rate without resampling, changing the system rate to match the audio. Very nice!

Audio Update

Audio stopped working on each bootup. After some troubleshooting I discovered that the kernel module for my Juli@ sound card is not loaded. How to check this?

First, run lspci -k and it shows you all your PCI cards, and for each, which kernel module it uses. This told me the card is plugged in and the module is snd_ice1724.

Next, check whether that module is loaded, or really check for all sound modules by running: lsmod | grep snd_. This did not list the snd_ice1724 module.

So, load the module manually by typing: sudo modprobe snd_ice1724. After that, repeat the above command to see if it’s loaded. Bingo! It was. And after doing this, audio started working.

Now here’s the mystery: normally you can tell the system to load new kernel modules by creating files in files in /etc/modules.load.d. For example I created this file:

-rw-r--r-- 1 root root 53 Apr 29 18:02 /etc/modules-load.d/snd_julia.conf

The contents are simple:

# kernel module for the Juli@ sound card
snd_ice1724

This should tell Linux to load the module at boot, so I don’t have to load it manually. But my system still doesn’t load this module. Or maybe it’s trying but failing, but I can’t find any errors. And I also looked for it in blacklists, but it is not a blacklisted module. Indeed, if it were the system shouldn’t let me load it manually.

At least I can fix the problem, but I don’t know why it doesn’t load automatically when it detects the sound card, nor manually from the config file, so I’m stuck loading this module manually at the command-line.

PS: another kernel driver that I must load manually is snd-usb-audio. This is needed to use external DACs that plug in via USB, like my Schiit Jotunheim. Add it to the list above.

Java, Tomcat and PostgreSQL

I installed openJDK versions 8, 11 and 21, using apt, then ran update-alternatives to set the default to JDK 8. Even though it’s old, a lot of software requires it and won’t run on the newer JDKs.

Next I installed Tomcat, version 10 is what comes with Ubuntu 24. That was simple enough.

Then I needed the PostgreSQL JDBC driver so my Tomcat server could talk to databases on other servers in my home network. I found the JAR file online, copied it to /usr/share/java and linked it to /usr/share/tomcat10/lib.

Finally, I copied my audio recordings JSP app to Tomcat. First I made a directory for the app: /var/lib/tomcat10/webapps/audiorec. Then I copied the source files (JSP) to that directory. BANG! It just worked.

Apps and Games

I installed Steam and after configuring it, it saw all of my games on my separate disk drive. And it saw my configs since I restored my home directory. All good? Nope.

Two games I’ve been playing recently are Valheim and Bioshock Infinite. Steam showed how long I had been playing and when I most recently played. And the games are supposed to save your progress in the cloud. But when I started the games, they started from scratch. They had no notion of any prior game play or saves. I lost all my progress in the games.

On the brighter side, the games now run natively in Linux, where previously with Ubuntu 18 they only ran reliably from Proton, the Windows emulator. Same hardware, same drivers, the only difference is Ubuntu 24 versus 18. So I don’t know why, but that is nice…

Printers and Virtualbox

Back in 2019 I bought the TurboPrint driver for my Epson SureColor P400 printer. This is a good thing, since Epson doesn’t have a Linux driver for this printer – even though they do for most of their other models. Yet the TurboPrint driver installed and worked just fine, it doesn’t need the Epson driver. Turboprint is excellent, and essential for anyone who wants to print photo quality from Linux.

I have a Windows 10 VM for software that doesn’t run on Linux. Just a couple of apps, Epson’s CD print and Suunto’s link for my GPS wristwatch. I installed virtualbox simply from apt and it just worked – my VM came up just fine. Of course I did have to edit my system groups to ensure that I am in both plugdev and vboxusers in order for the Windows VM to be able to see USB devices like the printer and the watch.

Addendum: IOMMU

What the heck is IOMMU, you might ask? Indeed, I asked the same. I noticed a bunch of errors in dmesg, like this:

DMAR: DRHD: handling fault status reg 3

With some Googling I found it is related to a CPU chip function related to RAM called IOMMU. I’ve been using Linux since Ubuntu 8 in 2009 on a wide variety of desktops and laptops, and I’ve never seen this before. Maybe this desktop’s CPU is too old to support it – it’s an i7-4770 from around 10 years ago. Still reliable & fast, so why replace it?

The solution was to add a kernel boot parameter iommu=soft. I did this by editing the /etc/default/grub file, then running update-grub. Confirmed fixed.

Conclusion

Of course there was a bunch of other stuff. And I’m not even done yet. But the computer is mostly working again, with most of my data and apps restored. I’ll get the rest of it working over time.

Audio Phase: Shift versus Inversion

It is said that a 180* phase shift is the same as a polarity inversion. That is, it flips a wave to its mirror-image across the time axis. If we imagine a simple sin or cos wave, we see that this is true. 180* is half a wavelength, slide it that distance either forward or back, and you get the same wave with polarity inverted. Another consequence of this lies in audio room tuning. If the distance between 2 walls is half a wavelength of a particular frequency, the wave reflecting from the wall, being inverted polarity, cancels the wave arriving which causes a dip or null at that frequency. Those same walls will also boost waves at twice that frequency because that same distance between the walls is their full wavelength, so the reflected wave is in phase with the arriving one.

But this doesn’t work with a general musical waveform. No amount of sliding it left (back) or right (forward) in time will invert its polarity. Intuitively, we see that a musical wave is not symmetric or repeating like a sin or cos wave. The musical waveform is much more complex, containing hundreds of frequencies all superimposed. Any distance we slide it left or right represents a phase shift at only 1 particular frequency. Alternately, sliding it left or right can be seen as a phase shift at all frequencies, but a different phase angle for each, since the distance it shifted is a different number of wavelengths for each frequency it contains. As in the above example, it boosts some frequencies and cuts others. This is what happens in a comb filter.

Since every frequency has a different wavelength, it’s hard to imagine how a phase shift of the same angle at all frequencies could even be possible. It is possible, but to do it we need to expand into another dimension and use complex numbers. That computation creates a new waveform that is the polarity inverted version of the original. You can find explanations of this all over the internet, for example here: https://www.audiosciencereview.com/forum/index.php?threads/analytical-analysis-polarity-vs-phase.29331/

Because of this, when speaking of music and audio I prefer the term “polarity inversion” to “180* phase shift”. Even though they can be equivalent, the former is concise while the latter is somewhat ambiguous since one must also specify at what frequencies the phase shift is applied.

Tascam DA3000

The Tascam DA-3000 is a professional rack mount digital recorder. For years I owned a prior model, the SS-R1. It provided years of reliable service and I used it to archive nearly 1,000 vinyl LPs. The DA-3000 improves upon the SS-R1 in a few important ways:

  • Better AD converters: Burr Brown PCM4202
  • Better DA converters: Burr Brown PCM1795
  • Uses dual AD/DA converters, one per channel, each in mono mode
  • Supports higher data rates: 24 bit, up to 192 kHz PCM and DSD 128 (5.6 MHz)
  • Direct AD-DA mode
  • Lower distortion and noise

It also retains many of the most important features of the SS-R1

  • Records to SD and CF media (no internal hard drive)
  • No fans – dead silent
  • The flexibility of many connections
    • Analog unbalanced RCA input and output
    • Analog balanced XLR input and output
    • SPDIF coax input and output
    • AES/EBU input and output
    • Internal or external clocks
  • Professional build quality, durability and reliability

Tascam no longer makes the DA-3000 so I bought mine used from eBay. In using it I’ve discovered some interesting quirks.

Date/Time Clock

The SS-R1 had a clock that had to be set every time you powered it on. Even when plugged in, it would forget the date & time when turned off. The DA-3000 fixed this – at least supposedly. But every time I powered mine up, I had to set the clock.

The problem was that the DA-3000 uses a rechargeable button cell battery to remember the clock when turned off. And it uses a tiny one that is soldered to the board. After a year or two, this battery dies and is not easy to replace (you must disassemble the unit, remove the board and solder). I contacted Tascam support and they said they no longer provide this service. It was annoying enough I decided to do my own permanent fix, better than what they would do at the factory.

Rather than simply replace that soldered-in battery, I installed a small battery cage for a CR2032 battery, which has the same voltage but is more than twice the size and capacity. Instead of soldering a new battery onto the board, I soldered the battery cage lead wires. Here’s what it looks like now:

I put an ML2032 battery into the cage (the rechargeable version of a CR2032). Not only will it last much longer than the tiny OEM battery, when it dies I can now replace it in 10 minutes easily without any soldering. This is how the DA-3000 should have been built from the factory.

DA-AD Mode

This mode stands for “Digital-Analog, Analog-Digital”. In this mode, the DA-3000 doesn’t record, but merely activates its DA and AD converters. You select which analog & digital inputs & outputs it uses. The DA converter has a slightly warm, soft voicing free of glare yet not veiled. Very nice. Most DACs sound substantially the same to me all having a touch of glare, but the DA3000 is just slightly different. I can find no explanation for this in measurements, as its frequency response and distortion measure clean.

DA-AD mode does not auto-detect the sample rate. You must select the sample rate in the menus. If the sample rate you select does not match the digital input, the DA-3000 will still produce analog output but it is distorted. By this I mean high frequencies rolled off with elevated harmonic distortion. The DA3000 front panel “Info” button lights up blue when the rates match and all is good, and red when the rates don’t match.

Frequency response in DA-AD mode with sample rate mismatch, compared to sample rate match.

Distortion in DA-AD mode with sample rate mismatch:

For comparison, here’s distortion when you manually set the rate to match the input:

This distortion is measured after the DA3000 DA conversion and the SSR1 AD conversions. The distortion when you don’t manually set the sample rate to match the input is not documented in the manual, and Tascam support did not respond to my inquiry about this. So just know about this and set it!

Sample Rate Sensitivity

The popular S/PDIF digital format (whether coax or toslink) is a “push” protocol. The source device sends data to the downstream target using the source’s clock. The target device has no way to tell the source to slow down or speed up. No two clocks ever agree exactly, even temperature compensated crystals differ slightly, so the target device has to adapt to the source device sample rate. In contrast, audio over USB is a “pull” protocol. The downstream target device runs off its own clock, requesting data from the source as needed. No need to synchronize clocks or adapt sample rates.

Lest anyone disregard S/PDIF clock sync as a problem “solved in the real world”, consider that well engineered DACs use TCXO for their clock, which are temperature compensated crystal oscillators. These are typically accurate to roughly 1 ppm, which at CD quality 44.1 kHz makes a clock drift of 1 sample every 22.6 seconds. So the issue is real – with S/PDIF, the downstream device must adapt to the upstream clock. Buffering can’t entirely solve this, because it can only solve temporary variations around an identical center frequency. Put differently, no two devices will ever agree on the center frequency, one will always be slightly slower than the other, which means any buffer you use will eventually under/over flow. With S/PDIF the downstream device must not only buffer the data, but also adapt its clock to the source rate.

The Tascam DA-3000 specs say it can sync to any input digital sample rate within a range +/- 100 ppm. This should be plenty, about 100x greater than the drift expected from a well engineered DAC. However, in my setup I have a toslink-coax converter between my Corda Soul (preamp/DAC) and the DA-3000. This converter causes quite a bit of jitter, so much that the DA-3000 occasionally loses sync. For example, a REW frequency sweep played through the Soul and captured on the DA-3000 looks like this:

That capture was at 88.2 kHz sampling, but it happens at all sample rates. My Topping E70 DAC handles this jitter just fine and is super clean, because it has a setting called DPLL that controls how much sample rate variance it can accept and adapt to. I had to bump it up a couple of notches to handle the switchbox.

Fortunately, the DA-3000 can do the same thing, even though one method for doing it is undocumented. When recording, enable SRC which is Sample Rate Conversion. This won’t actually convert the sample rate, because you’ll still manually set the DA-3000 sample rate to match the digital input. But when SRC is enabled, the DA-3000 accommodates and adapts to a wider range of jitter.

A better, cleaner method is to change the DA3000 clock setting from “Internal” to “DIN”. This tells the DA3000 to use the digital input as its own reference clock.

When you do either of these, distortion in the REW sweep is super clean like it should be:

AD Converter HF Noise

Another quirk of the DA-3000 is super high frequency noise in its AD converter. The noise is at 100 kHz, so you won’t see it at sample rates of 96k and lower since it’s above the Nyquist frequency. But at 176.4 and 192 kHz, it is there and looks like this:

So, if you are recording from analog inputs, don’t use 176.4 or 192 kHz. Use 88.2 or 96 kHz instead. The sound quality will be better! This is not an issue if you are recording digital inputs – that is just a bit perfect copy.

Analog Output Level

Normally, a recorder’s analog output level isn’t that important. But when using the DA-3000 in AD-DA mode, it becomes so. You need to match the input voltage sensitivity of the downstream preamp. The DA-3000 has a setting called “Reference Level” that sets this. Indirectly, this sets the analog output voltage for digital peak levels. The range is -9 dB which is +15 dBu (quiet) to -20 dB which is +24 dBu (loud). In Volts RMS this ranges from 4.36 to 12.28. The first is the consumer audio standard, the second is the professional standard.

Most consumer preamps have voltage sensitivity for their balanced analog inputs that expects peak levels around 4 V. Higher voltages can cause them to clip or distort. So you would set the DA3000 to -9 dB.

The Corda Soul has an internal switch to set its analog input voltage sensitivity. The default setting is for professional audio, expecting 12 Volts (low gain). Flick the switch to the other position and it changes to consumer, expecting 4 Volts (high gain). With the Soul set to low gain, the DA3000 setting that matches the output level of the Soul’s internal DAC is -16 to -18: -16 is about 0.5 dB quieter and -18 is about 1.5 dB louder.

Conclusion

The Tascam DA-3000 is a wonderful recorder. It is incredibly flexible, easy to use, with SOTA transparent sound quality and professional build quality. It has many other features not described here, since I’ve focused on its quirks. I’ve wanted one for years and I am so happy I finally found it!

Like any piece of gear, it has a few quirks as seen above. But none of these are serious problems, they all have workarounds.

Topping E70 DAC Review

Introduction

After I had to return my 2nd piece of Chi-Fi equipment due to poor build quality and support, I said I was done with Chi-Fi and would stick to other manufacturers. However, after Amir reviewed the Topping E70 on ASR, I couldn’t resist. A fully balanced DAC among the best and cleanest he has ever measured, for $350 would be too good to be true.

My Corda Soul is a DAC, preamp, headphone amp, and DSP processor. Of these functions, most are SOTA quality except for its DAC. It uses dual WM8741 chips which were great for 2007, but DAC technology has improved.

The topping E70 is a line level DAC and nothing more. That is:

  • DAC using ESS 9028 Pro chips
  • Analog outputs: both balanced/XLR and single ended/RCA
  • Inputs: SPDIF (coax and toslink), USB, and Bluetooth
  • Internal power supply
  • Digital volume control
  • Display showing sample rate and output level
  • High build quality with a metal case
  • Excellent measured performance, among the best at ASR

Setup

I measured the E70 and the Soul using my Tascam DA3000, which has excellent DA and AD converters. Better than my Juli@ sound card, but not as good as an APx555.

E70 Review

The E70 is a small black box with minimal controls:

  • Power switch on the rear left side
  • Rotary knob / button on the front right side
  • Capacitive touch button on the front left side
Features and Observations

You can leave the power switch on all the time and it will automatically power up and down as it detects a digital input signal.

You can set its balanced output level to 4V or 5V, which is about 2 dB louder with consequently higher SNR. 5 Volts may be too much for some devices, so make sure it is compatible. However, if this is the case, I recommend using 5 V anyway and setting the digital volume to -2 or -3 dB for reasons explained below.

Note: for balanced analog audio, the consumer standard is 4V yet the professional standard is about 11 dB louder at 14V. I wish the E70 supported 14 V (like the Tascam DA3000 has). But it doesn’t.

The E70 has digital volume control set in software. It might seem there is no reason to set it to anything other than max (0 dB). Yet setting it to -2 or -3 dB gives more headroom to better decode digital audio that is recorded too hot with intersample overs or clipping.

Note: 5V is about 2dB louder than 4V. If you want 4V output, set the output level to 5V with the digital volume control at -2.0 dB. This way you will get the same 4V max output, but with 2dB of headroom for lower distortion when handling hot/loud recordings.

When the digital volume control is enabled, the display shows only the volume level, not the current sample rate. When disabled (always output max volume), the display always shows the current sample rate. I wish this were configurable. I’d like to enable digital volume and see the current sample rate.

The display can be configured to go dark and light up only when the knob is used. This is a nice feature yet it has a little bug described below.

The E70 has 7 different digital filters. Here’s how they measured at 44.1 kHz:

Filter #3 is the default, which is a decent choice. But it is minimum phase, so I switched to filter #1 which has the same response and is linear phase.

Distortion

The E70 has noise & distortion so low it falls below the distortion &  noise floor of the Tascam DA3000 I use to measure equipment. It is at least -100 dB.

Drawbacks & Limitations

Whenever the input sample rate changes, the E70 emits a “click” / “chirp” to the analog outputs. Take care to adjust volume when changing recordings.

If while the display is dark you turn the knob to adjust the volume, the first knob click that wakes up the display changes the volume yet the display shows the prior volume before it changed, so the displayed volume is incorrect. Keep turning the knob and the next volume click will show the correct value.

Firmware 1.04 adds the capability to set SPDIF sample rate lock sensitivity with a new setting called DPLL. This was essential for me because the default DPLL setting 5 emitted periodic tics at 88.2 and 176.4 sampling, so I upped DPLL to 7 and it became clean. Setting 6 also worked but I figured I’d give it one extra nudge just to be sure. But Topping hasn’t yet put this firmware up on their support site. You can get an unofficial copy at ASR: https://www.audiosciencereview.com/forum/index.php?threads/topping-e70-stereo-dac-review.39188/post-1411763

Update: Even now, as of April 2025, Topping still doesn't show any firmware updates for the E70. Their support is terrible.

Sound Quality (Subjective)

When level matched, the E70 sounds very similar to the Corda Soul’s built-in DAC which uses dual WM8741 chips. Yet they’re not quite identical – when playing certain kinds of music there is a slight difference. The E70 bass extends a touch deeper and better resolves complex orchestral music near peak levels. In comparison, the Soul extracts a touch more detail through the mids & treble, though its overall voicing is a bit thinner especially near peak levels. These differences are very subtle, audible with only some kinds of music, and easy to over-state. Yet they can be heard.

Note: in measurements, the E70 is clean all the way up to within 1 dB of digital full scale. The Corda Soul has slightly increasing distortion near full scale. More on this here.

In contrast, the Tascam DA3000 in DA-AD mode (DAC only) shows a greater sonic difference. It is voiced a touch softer/warmer without the slight glare in the upper mids that all DACs seem to have (including the E70 and to a lesser extent the Corda Soul). This difference is subtle, but consistent and detectable in blind testing. Its frequency response and distortion are flat and clean showing no obvious reason why it sounds slightly different.

The reason I mention this is that while the E70 has exemplary measurements and sound quality, there is nothing unique about it. Commodity DACs have gotten so good that this kind of exemplary performance is barely distinguishable. In a top notch audio system it may make an audible difference, but if so it’s going to be subtle.

Conclusion

If the E70 is this clean and relatively inexpensive one might ask why not use the E70 to directly drive my power amp? Why use a preamp like the Soul at all?

  • The Soul has multiple digital inputs making it easy to switch between them.
  • The Soul has both digital and analog outputs, making it more flexible and capable.
  • The Soul has unique and valuable DSP functions: tone controls, headphone crossfeed, etc.
  • The Soul’s volume control is a mechanical analog stepped attenuator that is reliable and ultra clean with perfect channel balance at all settings.
  • The E70’s volume control is software which occasionally forgets its setting and reverts to full scale, which can damage speakers.
  • The Soul’s analog stage is clean and transparent, so there is no downside to its value and convenience.
  • Reliability and durability: the Soul is built like a rock by Lake People in Germany, well beyond Chi-Fi quality standards.
  • Redundancy: if the E70 (or any other external DAC that I use) ever dies, I can use the Soul as a complete system while getting the DAC repaired or replaced.

The E70 provides truly SOTA sound quality measurements, a marvel of excellent engineering. Topping clearly did its homework and nailed this one. Yet the E70 is not perfect, having some minor firmware bugs and Topping is not known for good support. The build quality seems good yet long term reliability is unknown (see below). But for the price (about $350) its engineering, features and sound quality cannot be beat.

All well engineered DACs sound similar, many identical, though some can sound slightly different which ties into subjective preferences and system compatibility. Great measurements don’t necessarily mean a DAC sounds better (depends on what you’re measuring, and exactly how and under what conditions), but with the E70 this does hold true. Compared to the DAC in the Tascam DA3000, the E70 has slightly better clarity & resolution. Compared to the Corda Soul’s built-in DAC, the E70 has the same clarity & resolution, yet slightly deeper sub-bass extension and dynamics.

Note: as of Dec 2025, with over 2 years of daily use, the E70 is holding up well.

 

Audio: DACs and Revelations

Introduction

It’s commonly held among audiophiles who understand electronics that well engineered and built DACs are audibly transparent. This belief comes from properly conducted double blind tests with well trained listeners, performing ABX testing, learning about how DACs work and how to measure them, reading detailed DAC measurements made by others and performing those measurements themselves.

However, “well engineered and built” is a loaded phrase. Some DACs use a AA filters that start attenuating within the passband (below 20 kHz), or have passband ripple, or non-flat phase response. Some DACs have elevated IM distortion at moderate levels (the ESS IM hump). Others have increasing distortion near full scale. Some modulate power or clock noise into the outputs due to insufficient filtering. All of these limitations can be audible under the right conditions, and have been observed with DACs considered to be well engineered and built.

Also, “audibly transparent” is a loaded phrase. Does it mean musically transparent, or perceptually transparent? Consider the  difference between 96 kHz and 44.1 kHz rate, or a linear vs. minimum phase filter having equal amplitude responses. These differences are considered to be inaudible. I can differentiate them in an ABX test, but only using “appropriate source material”. In this case, a high quality recording of jangling keys or a square wave. Differentiating them with a musical signal is much more difficult, and I’m not sure I could do that. In some cases, I’ve detected these differences with high quality castanet recordings, but is that really music? I consider it on the borderline between music and test signal. We listen to music, not test signals, so while I believe a good audio system should strive for perceptual transparency, some people consider the lower bar of musical transparency to be sufficient.

The Corda Soul is a DAC, preamp, and headphone amp with useful DSP functions. I’ve owned one for nearly 5 years and in some ways it’s one of the best measuring pieces of gear I have seen. Subjectively it sounds fantastic (by which I mean it is transparent, or doesn’t sound like anything – and many DACs and preamps do not achieve this, adding their own coloration to the sound) and I prefer the Soul to other high quality DAC / preamps in direct comparisons. I never expected to encounter a better sounding DAC…

The Setup

I recently replaced my Tascam SS-R1 with the newer model, the DA3000. The SS-R1 still works like new but is limited to 44.1 k and 48 k sampling, where the DA3000 supports every sample rate from 44.1 k to 192 k and DSD 64 and 128. This means I can connect the Soul digital output to the DA3000 digital input, and the DA3000 will simply work regardless of the sample rate. The DA3000 analog output (balanced XLR) goes to the Soul’s analog input.

I tested the DA3000 and the Soul by playing test signals through the Soul and capturing its analog output on the DA3000. The Soul always had a hump in the distortion curve that peaks at -70 to -80 dB at 1,000 to 2,000 Hz, and appears at every sample rate. But only at high digital input levels (above -12 dB). More on that here. Since I now had two recorders – both the DA3000 and the SS-R1 – I was able to narrow down what causes this by bypassing the Soul’s DA converters, using only its analog gain stage. I connected the Soul’s digital output to the DA3000, then sent the DA3000 analog output to the Soul’s input, then recorded the Soul’s analog output on the SS-R1. The hump disappeared entirely!

This means the Soul’s distortion hump was coming from its internal DA converters, or its FF de-emphasis curve which is implemented in DSP (both of which are bypassed when you use an external DAC). This is surprising, since the Soul goes to great lengths to ensure clean DA conversion. It uses well regulated switching power supplies and dual WM8741 DAC chips, each in mono mode, one for each channel, fully balanced. However, the Soul’s analog gain stage measured entirely transparent. Noise was below any threshold I could record. The SS-R1 is only 16 bit, so all I can say is that noise is below -96 dB even at low volume settings. Frequency response was perfectly flat. Distortion measured at -96 dB, the limits of 16-bit.

So: the Tascam DA3000 DA converters measured cleaner than the Soul (here for measurement details). And not slightly cleaner, but a whopping difference: from -70 dB to below -96 dB, at least 26 dB and probably more. And this is in a frequency range where our hearing is most sensitive. But that said, not every difference you can measure, is audible… For just one example, this difference only exists at high digital input levels. From -12 dB and below there is no difference I can measure.

The Revelation

The Soul allows the use of an external DAC and has a switch to instantly switch between that and its internal DAC. The difference is readily audible, by which I mean I can hear it not only with test signals but on a wide variety of music. Perceptually and subjectively, compared to the DA3000, I characterize the Soul’s internal DAC as:

  • Slightly edgier, tonally as if adding just a smidge of upper midrange
  • A touch “thinner” in overall tonal balance
  • Bass is a bit less prominent, but this could be subtle perceptual masking from the above
  • Soundstage is a bit narrower
  • About 0.2 dB louder

In contrast, the DA3000 DAC sounds a touch smoother, softer, warmer.

I call this a revelation because it was so unexpected. It really surprised me. Up to now, the Soul has been less edgy / grainy than other DACs I have owned, such as the Oppo HA-1. Even though the difference is subtle, it is a joy to listen to my familiar recordings with a slightly smoother, warmer perspective.

Note: The 0.2 dB loudness difference is the obvious culprit. It’s small enough to be barely perceptible as loudness, yet perceived indirectly as “richer”, “more detailed”. Yet normally, all else equal, slightly louder is perceived as slightly better. So it’s the opposite of expected. And I hear the same subtle differences even after adjusting for the 0.2 dB loudness difference.

But Wait, There’s More!

Upon further listening I made some other observations. The Tascam DA3000 DAC doesn’t resolve fine detail quite as well as the Soul. It slightly veils some of the subtle background sounds. However, in voicing and soundstage I still preferred the Tascam. So the difference was more of a trade-off.

The Conclusion

The DA3000 isn’t better, it’s just different. As an analog preamp, the Soul is unmatched both subjectively and objectively: clean and transparent with noise and distortion so low I can’t measure it, and perfect channel balance at every volume setting. Its DSP functions are useful and well implemented. And it is well built with great support. D/A conversion is its weak point, but even there, it has exemplary performance below about -6 dB digital input level.

To summarize DA300 vs. Soul, the Soul sounds more detailed yet thinner. The DA3000 sounds softer, warmer, but less detailed. These differences are subtle and nothing obvious in the measurements indicates why.

If my opinion isn’t clear by now, I’ll just say it. Well engineered DACs do not all sound the same. Some may sound the same, while others may have audible differences. All audible differences can be measured – if you know what to measure, under what conditions to measure it, what signals to use when measuring, and how to do it right. But most published specifications are only the most basic measurements that don’t nearly cove everything that can be heard. So just because basic specs like SINAD and FR are the same, doesn’t necessarily imply they sound the same.

Schiit Jotunheim 2 Review: DAC+Preamp+Headphone Amp

Introduction

Note: about a year ago I got an SMSL SU-6 DAC. More on that here.

I’ve always enjoyed listening to music on headphones at work. As we are returning to the office, I want to have high quality audio listening. My Etymotic ER6 IEMs sound great, but (A) they isolate all other sounds, so when people walk by and say “hi” I don’t even hear them, and (B) they don’t reproduce the top half-octave, so while they do sound clean, there’s something subtly missing. I still have my old Sennheiser HD-580 which are still as good as new, but they have low voltage sensitivity so I needed an amp to drive them.

I wanted to play music from my phone (USB Audio Player Pro), my laptop, or my desktop. And most (but not all) my music is on a small external hard disk which occupies the phone USB port, so when playing from the phone I may use its USB output or its analog headphone jack. But when playing from the laptop or desktop, I’ll use USB since their built-in DACs are crappy and don’t handle sample rates above 48k.

So I needed an audio device that is a DAC with USB input, also analog input, with a built-in headphone amp. Furthermore, I have limited power plugs at work so I couldn’t use separate devices having external wall-wart power supplies. I needed this to be a single box with an internal power supply and standard power plug. And of course having excellent audio quality in its DAC and amp, with sufficient power to drive my Sennheiser HD-580. And after my recent experience with Topping and SMSL, made in USA (or Europe) with a good warranty and support. And not too expensive.

The Schiit Jotunheim 2 with DAC module is the only device that meets all of the above requirements, so I ordered one. The Asgard would also meet these requirements, so which to get? I opted for the Jotunheim because:

  • It has both single-ended and balanced outputs and inputs.
  • It has slightly cleaner audio (lower noise & distortion), and more power.
  • It has a better volume knob (Alps RK27 blue velvet) with better channel matching.
  • It has switch-selectable preamp outs.

Amir reviewed it at ASR a few years ago, when it had the prior version of the DAC card that wasn’t so great. He found it to be a great amp & preamp with a crappy DAC. Since then, Schiit revised and greatly improved the DAC. The DAC is a plug-in replaceable internal module/card that costs about $100, so folks who bought an earlier Jotunheim (or Asgard) can also upgrade to the new DAC.

Photos

With its all-metal construction, switches and knobs it has a look that says, “tools, not toys”.

Removing the cover reveals clean layout and construction, and that awesome Alps RK27 Blue Velvet volume potentiometer.

The rear view shows the flexibility of this one-box-does-it-all device:

 

Summary

The Jotunheim has

  • Internal power supply, no wall wart.
  • DAC with USB C input
  • 2 Analog inputs: RCA and XLR
  • 4 Analog outputs
    • Line level RCA
    • Line level XLR
    • Headphone balanced (4-pin)
    • Headphone unbalanced (1/4″)
  • Switchable gain: low and high
  • Switchable line outputs (the don’t auto-mute when headphones are plugged in)
  • Analog volume control (Alps RK27)
  • High power, low noise and distortion
  • High build quality (all metal construction, knobs, switches)
  • Made in USA with excellent warranty and support

The Jotunheim does not have

  • Digital display: does not show sample rate, bit depth, etc.
  • S/PDIF or Bluetooth digital inputs: it has USB C only
  • DSP algorithms: no tone controls, crossfeed, etc.
  • Perfect channel balance: the Alps RK27 is one of the best, but no potentiometer is perfect

Measurements

I measure using my desktop PC and Juli@ sound card with Room EQ Wizard software. The Juli@ sound card is not up to professional measuring equipment standards, but it is one of the best PC sound cards. My measurements are good enough to detect any flaws that might be audible, and some others below audibility.

I connected the Jotunheim to the PC (running Ubuntu 18) via USB, connected the Jotunheim’s analog RCA (single ended) outputs to the Juli@ inputs, disabled PulseAudio, and let Room EQ Wizard do its thing.

First I ran frequency sweeps. Each was -1 dB digital level at every common sampling rate: 44.1, 48, 88.2, 96 and 192. All were ruler flat. The most difficult is at 44.1k since the transition band is so narrow. Many DACs have ripple or roll off before 20 kHz. Here’s the Jotunheim:

It is down -0.1 dB at 14 Hz and 19,900 Hz. There is no ripple and the phase response is dead flat, which tells us it uses a linear phase digital filter. This is great for 44.1k sampling. The only drawback at 44.1k is that it doesn’t fully attenuate until 24.1 kHz, which is above Nyquist. This leaks HF noise, but it should be benign as all aliases must be > 20 kHz (inaudible). Higher sample rates are flat to much higher frequencies and fully attenuate by Nyquist. For example here is the Jotunheim at 192k Hz:

Here the low frequency roll-off and phase shift is in the Juli@ card (it also appears in loopback mode). The Jotunheim is down 0.1 dB at about 62 kHz. I would prefer to see a more gradual filter that uses the entire transition band (20k – 96k), but it doesn’t seem to suffer from this sharp attenuation.

Here is distortion & noise at 44.1k at max volume, low gain:

We’ve got something interesting going on here: surprisingly high 2nd harmonic (2H) distortion. It’s below 70 dB which should be inaudible, but could become audible for low level signals. For example if the music was at -30 dB, at 3 kHz where our hearing is most sensitive, this distortion is only 48 dB lower which could be audible to some people under the right circumstances.

Note: this measurement is not an anomaly. It matches Schitt's specs, which quote THD on single ended outputs at .03%, which is -70 dB. The Jotunheim is optimized for balanced outputs, which measure about 100x or 40 dB cleaner.

This smiley shaped 2H distortion appeared at every sample rate, at the same level. I suspect it comes from using the Jotunheim’s single ended RCA outputs. It’s optimized for the balanced outputs and if I read Schiit’s description correctly, it converts to single ended by ignoring the inverted polarity signal instead of differencing it. Differencing would eliminate 2H distortion. Some balanced circuits are so clean they don’t need to be differenced, but others require it.

I tested this theory by playing a frequency sweep from my phone using USB Audio Player Pro in bit perfect mode, connecting the phone’s USB output to the Jotunheim, and the Jotunheim’s balanced XLR line level outputs to my Tascam SS-R1 recorder. Here’s what I got:

Ah, this is more like it! Noise and distortion around -100 dB in the bass to -92 dB in the treble. This uses the Tascam SS-R1 recorder’s balanced analog input and A/D converter, so it’s truly excellent.

Gain and Output

The Jotunheim has two gain settings: low and high. Low gain at max volume is unity. High gain is 12.7 dB louder than low gain, or about 4.3x the voltage, which is about 18.5x the power. I find low gain more than sufficient even for my insensitive Sennheiser HD-580 headphones when playing from digital sources having -6 dB pre-attenuation.

The Jotunheim is a truly balanced, differentially signalled amp. The 1/4″ headphone jack output level is about 6 dB quieter than the balanced headphone jack.

Volume Knob

The next thing I measured was the volume knob. Analog potentiometers are a common weak point in any preamp or headphone amp. They never have perfect channel balance, especially at the lower knob settings which we use most often.

Here’s a frequency sweep using the Jotunheim’s single-ended RCA outputs, on low gain with the volume at the 12:00 position:

The smile shaped distortion curve is gone. Turning down the volume eliminated it. This appears related to the Jotunheim’s internal amp, which Schiit calls “continuity”. If I read Schiit’s description correctly, “continuity” means a class AB amp, but it’s biased high enough to operate in symmetric class A up to about 500 mW output (according to Schiit). I suspect that when you turn the volume down to 12:00 it’s below the output threshold, and symmetric class A (even though single ended) which eliminates that 2nd harmonic distortion. I didn’t expect a transition from class A to AB to make such a difference, and it could have a different cause.

Anyway, back to the volume knob channel balance. No knob is perfect, each individual knob is different, and remember this is an Alps RK27 Blue Velvet knob. If you aren’t impressed, consider that this single part alone costs a whopping $40!? I’m not kidding: here it is at Mouser.

OK so here’s a table showing each of the clock volume knob positions, attenuation and channel balance. Obviously, there’s a margin of error in positioning the knob, so the numbers are all approximate. I’ve added the JDS Atom volume knob for comparison, which I think uses an Alps RK09. That’s a good potentiometer, but a cut below the RK27. Also, the Atom 2 which uses a hand-matched Alps RK09. You can see that the Atom 2 is as good as the Jotunheim.

ClockJot LevelJot DiffAtom LevelAtom DiffA2 LevelA2 Diff
05:00 (max)N/AMatchN/AMatchN/AMatch
04:00-1.3Match-0.8Match0Match
03:00-3.6Match-2.1Match0Match
02:00-6.0Match-5.3Match-2.25Match
01:00-10Match-8.8Match-6.25Match
12:00 (half)-16Match-14.3Match-17Match
11:00-20Match-18.0Match-19.5Match
10:00-25Match-23.4L +0.5-22Match
09:00-36L +0.5-33.8L +1.5-26R +0.3
08:00-48L +1.0-41.3L +1.0-40R +1.0
07:00 (above min)-74L +2.3-68.3L -8.0-60R +4.0

In summary:

  • Volume knob channel balance is matched to 0.5 dB or better for the top 3/4 of its range, from 09:00 to max.
  • At 09:00, which is -36 dB, the L is 0.5 dB louder than the R
  • At 08:00, which is -48 dB, the L is 1.0 dB louder than the R
  • At 07:00 (lowest non-zero), which is -74 dB, the L is 2.3 dB louder than the R

This is as good or better than any potentiometer I have measured.

Analog Input from Phone Headphone Jack

One way I plan to use the Jotunheim is to play music from my phone out its analog headphone jack. This can go wrong in several ways, so I measured it. I played an REW frequency sweep on my phone, using USB Audio Player Pro, connected its headphone jack (at max volume) to the Jotunheim’s single ended RCA inputs, recorded on the Tascam SS-R1 then imported into Room EQ Wizard for analysis.

TLDR; it’s super clean and should provide excellent sound quality.

Jotunheim on low gain, max volume:

We can see it’s super clean, though the SNR suffers a bit due to the phone’s low max output level, it’s still 70-80 dB. The phone’s output level is so low, the Jotunheim at max volume doesn’t trigger its unusual smile-shaped distortion curve.

Jotunheim on high gain, max volume:

This is just as clean, even cleaner. How can high gain be cleaner than low gain? It’s not an equal comparison – the overall level is much higher/louder. The phone’s max output is so low that the Jotunheim on high gain max volume doesn’t overload the Tascam recorder inputs.

Distortion: Balanced vs. Single Ended

When I noticed elevated distortion from single ended line level RCA outputs at max volume, and discovered that it disappeared at half volume, I did some exploring to learn more about the relationship between knob position and distortion. Here are the graphs:

Once again, max volume (about 05:00 on the clock). The min at 200 Hz is about -96 dB, the peak at 10 kHz is -68 dB.

Here it is turned down just a bit to the 04:00 position: -92 @ 200, -70 @ 10k

Here it is at the 03:00 position: -91 @ 200, -72 @ 10k

Here it is at the 02:00 position: -90 @ 200, -75 @ 10k. The smile is flattening.

Here it is at the 01:00 position: -84 dB @ 200, -84 dB @ 10k. The smile is gone.

Of course we expect distortion & noise to rise relative to the signal as we turn down the volume. But how much? Let’s quantify this. At the 01:00 position, the signal is attenuated about 10 dB from max. The minimum distortion max volume is -96 dB; the minimum distortion at 01:00 is -84 dB. So when we reduce the volume by 10 dB, distortion drops by 12 dB. Since this involves eyeballing the position of the volume knob, there’s a margin for error so call it 1:1 linear. The distortion profile looks normal / flat up to about the 02:00 position, at which point a smile (rising distortion in low & high frequencies) just starts to emerge.

Again, this is only on single ended outputs. The balanced outputs are clean all the way up to max volume. At least as high as I could measure them – the voltage of the Jotunheim’s balanced outputs goes so high it overloads my sound card and Tascam. So I had turn the volume down in order to measure it. Summary:

  • Single ended/unbalanced output is as clean as balanced at low to moderate levels.
  • At high levels (02:00  on volume knob with full scale input), unbalanced output has slightly elevated 2H distortion, up to -70 dB in the mid-treble.
  • This elevated distortion should be inaudible in most cases.

Conclusion

The Schiit Jotunheim is a nice piece of gear. It does a lot in a single box, with an internal power supply (no wall wart). And it does it well, with good to great measurements. It also sounds great subjectively. It has high parts and build quality, metal not plastic, the volume knob is silky smooth with just the right amount of friction, the metal switches are a pleasure to operate, having the solid “smack” of professional equipment.

It works seamlessly from Ubuntu Linux, from Windows 10, and from my phone, with both digital USB and analog inputs. It didn’t reveal firmware bugs nor shut off during testing, like some DACs from Topping and SMSL have done. I didn’t encounter any issues recognizing it or sending music to it, nor any glitches on long-term playing. And I didn’t have to install any drivers.

The Jotunheim is inherently balanced and performs best in this mode with excellent near SOTA measurements. Yet it also has unbalanced inputs and outputs that measure good enough, and it supports all combinations across its inputs & outputs.

Finally, the Jotunheim is made in the USA with good warranty and support. It reminds me of the amps that Headroom in Montana used to build 25 years ago, only even better engineered and built, with more functionality. Years ago a device with this functionality, build quality and engineering would have cost thousands of dollars.

Audio: How Much Data is That?

It’s easy to compute but I figured I’d save it here for reference

RatebPSBPSKB/secMins/GBCD ratioNotes
44.1-161,411,200176,400172.271011.00Redbook CD
44.1-242,116,800264,600258.4671.50
48-161,536,000192,000187.5931.09
48-242,304,000288,000281.25621.63Standard DVD
88.2-244,233,600529,200516.80333.00
96-244,608,000576,000562.5313.27Popular for modern classical music recordings
176.4-248,467,2001,058,4001,033.616.96.00
192-249,216,0001,152,0001,125.015.56.53

This represents actual data bits to represent the music – no overhead. If you want to know what bandwidth is needed to carry an SPDIF signal at a given rate, add extra for packet overhead.

The formula is simple:

bits per second = S * C * B
S = sample rate (samples per second)
C = channels (2 for stereo)
B = bits per sample

For example for CD we have

S = 44100
C = 2
B = 16
S * C * B = 1,411,200 bits per second

Note: most DACs internally oversample before D-A conversion. They typically oversample at the highest integer multiple of the source rate that is less than their max rate. For example the Cirrus/Wolfson WM8741 has a max rate of 192k, so CD and DVD are oversampled 4x to 176.4 and 192 respectively. This happens automatically within the DAC chip. Because of this, it’s usually pointless to oversample an audio signal before feeding it to a DAC – the DAC is going to do it anyway, so why waste processing power and bandwidth doing it yourself?

Corda COUNTry: All in One Audio

Summary

The Meier Audio Corda COUNTry is a unique little device:

  • Equalizer, headphone crossfeed, reverb and other audio functions implemented in DSP (Digital Signal Processing)
  • Inputs (digital only): USB, SPDIF coax and toslink
  • Digital outputs: SPDIF coax and toslink
  • D to A converter
  • Analog output: single ended RCA (line level, volume controlled)
  • Analog output: single ended 1/4″ headphone jack

Its purpose is to adjust or tailor the sound to listener preferences. You can use it in many ways, though they fall into 3 categories:

  1. Pure DSP upstream from your DAC
  2. Headphone amp
  3. Preamp

In the first case you already have a headphone amp or preamp and you only want the DSP features. In cases (2) and (3) the COUNTry is an all-in-one device. The COUNTry was originally designed for (1) without any D/A or analog outputs. Later, the D/A and analog outputs were added since they increase flexibility with minimal cost impact.

The COUNTry operates internally at a single fixed sample rate: either 96k or 192k (buyer’s option). Digital inputs are resampled (if necessary) to this rate. I received a 192k unit.

The COUNtry

As auditioned, tested, measured

Features

I’ll review the features in the order in which I might use them most myself. With some of the features, like crossfeed and reverb, I couldn’t imagine a way to measure them. However, I did use and listen to all the features, and found that each does what it says and the effect is easily audible.

Measurements

I measured the COUNTry using a PC running Ubuntu 18, an ESI Juli@ sound card, with Room EQ Wizard software. I also have an SMSL SU-6 DAC and a JDS Atom amp. The Juli@ SPDIF coax output went directly to the COUNTry. I measured it in 2 ways:

  • COUNTry analog line level outputs to Juli@ analog inputs
  • COUNTry digital SPDIF coax output to SMSL SU-6 DAC, to Juli@ analog inputs

This measured the COUNTry as an all-in-one device with D/A conversion and analog output, and also as a DSP-only device upstream from a separate DAC.

The Juli@ sound card is high quality, but it’s nothing like professional measurement equipment from manufacturers like Audio Precision. I can measure the basics (frequency response and distortion), but take the measurements that follow as directional guidance within the limitations of my equipment.

Equalizer

The equalizer’s 7 bands have equal octave spacing with frequency ratio of 2.5:1 or 1.32 octaves. They are symmetric and complementary, so they can be combined without ripple. A picture’s worth 1000 words, so here are frequency response graphs of the positive and negative ranges respectively, showing each control individually, and all combinations.

The manual says each band is +/- 6 dB, which is roughly true yet oversimplified. The max effect of any single band is +/- 4.3 dB. Two adjacent bands maxed together is +/- 5.7 dB. Three or more is 6.0 dB.

This enables adjacent sliders to be combined to form new bands. For example, consider sliders 5 and 6, centered at 2.5 and 6.2 kHz respectively. What I need to adjust the LCD-2F headphones is a slightly wider band centered at 4 kHz. And that’s exactly what I get when using both together, as you can see in the above frequency response graph. And, you can use different levels of these 2 sliders to shift the combined center frequency a bit higher or lower, to get a center frequency anywhere between 2.5 and 6.2 kHz. This makes the COUNTry’s EQ even more versatile than it appears.

For example, the following chart shows two combos: band 4 at max with band 5 at half (in teal), and band 4 at half with band 5 at max (in magenta). You can see the center frequencies are 3 kHz and 5 kHz respectively.

Regarding slider sensitivity: the following shows the center 1 kHz band at positions 1/4, 1/2, 1, 2, 3, 4, 5 and 6:

The slider effects are nearly continuous down to a fraction of a dB, allowing very small gradations. Each slider has 6 marked notches on each side (positive & negative), though only the center position is a tactile notch. The first 4 marks are about 1 dB each. The 5th mark is another 0.7 dB, and the 6th / last / max mark is the same as the 5th.

I like this design: it works like a conventional equalizer, but is more flexible. It’s a creative solution to an old problem.

Bass Boost

What: a gentle bass lift starting at 200 Hz and gradually increasing to + 6 dB at 20 Hz. This closely follows the bass attenuation of the popular Sennheiser HD-580 and HD-600 headphones, which is nice. It also mirrors the COUNTry’s bass attenuation in high gain mode, so use it if you want flat response in high gain. Its measured curve is shown twice in the following graph:

  • The top red line versus the green line.
  • The purple line versus the bottom orange line.

The manual says it’s a shelf boost with center frequency of 45 Hz and Q=0.5, which is true to the measured response. Q=0.5 is such a gentle slope that it is +1 dB as high as 120 Hz (evident in the above graph).

Stereo Crossfeed / Expander

Some recordings have sounds hard-panned to the left or right channels. This sounds wonky on headphones. Unfortunately, this was a common recording technique in jazz albums from the 1950s and 1960s – for example the classic Miles Davis / Coltrane album Kind of Blue. Crossfeed mixes a little of these sounds into the opposite channel, with a brief delay; it narrows the stereo separation. When listening to albums like this, it makes it sound more natural. The COUNTry has 7 levels of crossfeed (the Soul has only 5), and an 8th switch position that is mono (standard mono without crossfeed or delay). I don’t use crossfeed for normal listening, but it’s one of my favorite features because it’s so nice for those albums that need it.

Note: when clicking into mono, the sound suddenly becomes more dull. This effect is purely perceptual – the measured frequency response is exactly the same as in normal stereo.

Stereo expander does the opposite, making stereo wider. It’s intended for speakers but you can hear the effect somewhat on headphones.

Notch Filter

Many headphones have a resonance that causes a spike in frequency response in the 6k to 11k range. The COUNTry has a notch filter that cancels these spikes. Here’s the measured response of all 15 of the settings. It measures true to the specified Q=2.0, -6 dB.

My Sennheiser HD-580 and Audeze LCD-2F don’t have such a spike, so I don’t use this feature. But the Sennheiser HD-800 does, as do many other popular headphones, making this a useful feature.

Reverb

This does exactly what it says: it adds reverb to the music. I’ve tried it with various recordings across a variety of musical styles from classical, to jazz, rock, etc. It’s not my cup of tea, as I prefer dry recordings. Yet this is a personal subjective thing. The reverb sounds natural and well implemented, and has 3 levels to play with.

Volume Control

The volume control feels analog but is digital, having perfect channel balance at every step from max to min. It also lights up an LED at certain exact positions: 0 (max), -6, -12, -18, and -24. This is useful for setting levels to avoid clipping when using DSP features.

Analog Gain

The COUNTry has 3 gain levels for its analog outputs: low, medium and high. Strangely, in high gain it attenuates low frequencies. The manual says this is to reduce excessive excursions of drivers at high levels. This doesn’t make sense to me, since high gain would be used for low sensitivity headphones or amps that need more voltage for the same sound level. And the COUNTry enables you to adjust the low frequencies if you want to. However, the bass boost switch exactly mirrors this bass attenuation, so if you are using high gain mode, turn on bass boost to get flat frequency response.

We’ve heard the mantra “the more gain, the more pain”. This is generally true, due to the constant gain * bandwidth of the transistors & opamps used in amplifiers. Because of this, the best approach is normally to use low gain whenever possible. That is, for a given loudness level, low gain at a higher volume position is usually cleaner than medium or high gain at a lower volume position. This also preserves digital resolution.

Note: This is especially true with conventional analog potentiometer volume knobs, which typically have better channel balance at high settings. However, the COUNTry's digital volume control has perfect balance at all settings. So that's not a factor here.

To test how the gain affects noise & distortion, I measured the COUNTry noise & distortion at each gain setting, with volume adjusted so that each had the same output level. Because the volume knob is digital, I couldn’t match the levels exactly, but I could match within 0.3 dB. More specifically:

  • Low gain at volume -6 dB
  • Medium gain at volume -16 dB
  • High gain at volume -26 dB

Medium gain measured slightly cleaner than high gain, but only slightly. Low gain was about the same as medium gain. So with the COUNTry, the gain level you use doesn’t make a significant difference in distortion or noise. Just select the gain that matches the sensitivity of the downstream device the COUNTry is driving. Of course, remember that high gain attenuates bass so use the bass boost to get flat response.

CD De-Emphasis

As mentioned above, the 7 band EQ has a creative design that eliminates ripple across the bands and enables adjacent bands to be combined to shift center frequencies. However, the highest band (16 kHz) has a special feature. When set to the minimum, it applies the Redbook CD de-emphasis curve. It’s nice to be able to apply this manually since some old CDs use it, they sound much too bright unless it’s applied, and many aren’t formatted properly for DACs to recognize and apply it automatically.

However, the equalizer slider has no indication when this triggers. It triggers at the bottom position, but as you raise the slider, it moves a short distance before disabling de-emphasis and attenuating the 16 kHz band. If you want the most 16 kHz attenuation without triggering de-emphasis, you must do it by ear. Slide it all the way to the bottom, then slowly lift it until the sound suddenly gets a bit brighter. It would be nice to have an indicator that lights up when de-emphasis is activated. The LED on the 16 kHz hand is already used as a power indicator, but it would be nice to have it change color or blink when de-emphasis is activated.

Miscellaneous

The measured impulse response is symmetric and phase response is flat into the high frequencies, which means the COUNTry uses standard linear phase filtering, rather than minimum phase.

The case and knobs are constructed in a manner that appears easy to disassemble and service. It’s good to see this exception to our modern age of cheap disposable equipment. I did not test this by opening the unit, since it is just a loaner.

Support is excellent. You can contact Jan Meier of Meier Audio directly on the company website or on Head-Fi. He is responsive, knowledgeable and helpful.

Usage and Build Quality

The COUNTry is a nice little device with an unusual look. It’s an “old-school” look and feel with physical knobs and LEDs instead of a display screen with menus. It has high build and parts quality.

Some of the indicators are a bit obscure but they become intuitive as you use them. For example, the digital sample rate display is done with 2 LEDs. One for the base rate (32, 44, 48) and another to indicate a multiplier (2x or 4x). Another LED lights up when the volume control is exactly at certain positions: 0 (max), -6 dB, -12 dB, -18 dB and -24 dB. This is a nice guide for setting precise levels.

The rotary switches make a solid “snap” and feel like professional test gear. The toggle switches are similar. The EQ sliders feel like potentiometers,  smooth with just the right amount of friction. The COUNTry is fully digital, so it detects the slider position and translates to a digital value. There is a tactile detent for the center position, but no others indicating when it’s shifted from one value to another. The controls feel good to use.

The headphone jack is seriously robust and overbuilt. The back panel connectors are not as robust but still feel solid. This makes sense as the headphone jack is likely to be plugged & unplugged much more often than the rear connectors.

Sound Quality (Subjective)

OK so what does it actually sound like? I listened on my Sennheiser HD-580 headphones. They are over 20 years old, but have fresh pads and I recently tested them with a MiniDSP EARS rig. They still have measured performance like new. I also used Audeze LCD-2F headphones (also tested & measured). The sound source was my PC with its ESI Juli@ sound card, and lossless FLAC files at bit rates ranging from 44.1 to 192. The Juli@ card coax SPDIF output routed to the COUNTry. I routed the COUNTry’s SPDIF digital output to my SMSL SU-6 DAC and JDS Atom headphone amp. With this setup, I could plug the headphones directly into the COUNTry, or into the JDS Atom. This enabled me to test the differences (if any) between the COUNTry in pure digital mode, versus its D/A and analog outputs.

I level matched by playing white noise, routing the analog outputs to my Juli@ card and measuring the level. With the JDS Atom’s analog volume knob, this enables level matching to about 0.1 dB.

In a word, the COUNTry sounds just a bit brighter than the SU-6 + JDS Atom. I first noticed this with music, and confirmed it with pink noise, which is a useful test signal for hearing subtle differences in frequency response. This brightness was unexpected, since the COUNTry’s analog frequency response has a slight bass boost and treble cut. However, the brightness sounds like it’s in the upper mids / lower treble, rather than in the highest frequencies. Loud parts with many instruments playing (like a symphonic crescendo) are slightly less resolved on the COUNTry analog output, compared to the SU-6 + JDS Atom.

Subjectively, the COUNTry analog output has a good clean sound across a variety of music with no obvious issues or artifacts. Though it’s not state of the art in terms of linearity, smoothness or detail – nor was it intended to be. Think of the COUNTry analog outputs as a sonically competent add-on feature. The COUNTry digital outputs are more transparent.

When you plug in headphones while the COUNTry is playing, it sometimes emits two loud CLICKs in the headphones, then pauses for about 1 second before the music starts. Inserting the headphone plug quickly usually avoids this. Meanwhile, the line level outputs are always playing and do not pause or CLICK. If you power on the COUNTry while it has musical input, you get a single loud CLICK then the sound starts playing in the headphones.

Anomalies

Frequency Response

Analog frequency response is not quite flat, and different in low (blue), medium (green) and high (red) gain. Medium gain has a 0.5 dB lift in low bass, and high gain has a 6 dB drop in low bass. All modes gently taper high frequencies, reaching about -0.6 dB at 20 kHz.

Note: in the above high gain curve (red), digital bass boost was applied to flatten the response. The uncorrected response is shown in another graph below.

Why the frequency response differences at different analog gain levels? This is due to the Meier Audio FF or Frequency Adaptive Feedback. It attenuates low frequencies in the digital inputs, then boosts them back to flat again in the analog outputs. This means the attenuation curve (implemented in DSP) must match the boost curve (implemented in passive analog components). Meier Audio optimized this matching at low gain, since they expect that will be most often used. The purpose of FF is to frequency shape and optimize DA conversion and the gain-feedback loop, so it is only used for the analog outputs, not on the digital outputs.

As mentioned above, in high gain the frequency response attenuates bass beginning at 200 Hz, gradually reaching -6 dB at 20 Hz (this is noted in the manual). The COUNTry has a DSP bass boost that applies the exact reverse of this. So if you want flat response in high gain mode, turn that on (as it is in the above graph).

Let’s take another look at the bass boost frequency response graph shown earlier. From bottom to top:

  • Orange is high gain
  • Purple is high gain with bass boost activated
  • Green is medium gain
  • Red is medium gain with bass boost activated

The COUNTry’s digital output is smoother and more linear, but still has gentle HF attenuation reaching -0.6 dB at 20 kHz, and even gentler LF attenuation about -0.2 dB at 20 Hz. We see below that this slight attenuation happens in the digital domain. This graph shows the digital output with all sampling rates on top of each other:

Noise at High Sample Rates

At high sample rates (176.4 and 192) the COUNTry has a lot of high frequency noise. This is unexpected and unusual, so I tested in several different ways:

  • Analog outputs
  • Analog outputs at lower levels (-6 dB, -12 dB)
  • Analog outputs with lower digital input levels (to -48 dB)
  • Analog outputs with input from my phone (USB Audio Player Pro) in bit perfect mode, instead of from my computer (ESI Juli@ sound card)
  • Digital outputs
  • Digital outputs at lower levels (to -48 dB)

It measured the same in all cases. This suggests the issue is not in the D/A conversion or analog stage, but in the DSP.

Here’s what that noise looks like at 176.4 kHz. Actually, in the graphs below it looks like distortion rather than noise, but more on that later. The horizontal line at y=0 dB is the sweep signal. It is not really at 0 dB, but this is relative to facilitate reading the levels. The brown line is noise. The black line is THD. The colored lines are 2H, 3H, etc., which sum to the black line.

At 176.4k, it’s clean up to 11 kHz and that first distortion spike is at 11,960 Hz. This is inaudible since it’s 7th harmonic so the distortion tone is at 11,960 * 7 = 83,720 Hz. However, these distortion spikes are big enough that their intermodulation (IM) differences are in the midrange. They are spaced 1-3 kHz apart, which puts the IM smack-dab where our hearing is most sensitive to it.

Here’s what it looks like at 192 kHz:

At 192k we have a similar situation, first distortion spike at 9,580 Hz, which will be inaudible since it’s 9th harmonic so the distortion tone is at 9,580 * 9 = 86,220 Hz. The 7th, 6th, and rest of harmonics are the same as at 176.4k sampling. And as above, the IM difference tones will be in the midrange.

Two interesting observations about these frequencies:

  1. They are exactly the same at 176.4 and 192 kHz. This suggests it is noise, not distortion – it’s not correlated with the signal.
  2. They all point to noise in the same region: 53 to 86 kHz

More precisely:

  • H9 @ 9,580 Hz means a frequency at 86,220 Hz
  • H8 @ 10,620 means 84,960
  • H7 @ 11,960 means 83,720
  • H6 @ 13,640 means 81,840
  • H5 @ 15,870 means 79,350
  • H4 @ 18,940 means 75,760
  • H3 @ 23,320 means 69,960
  • H2 @ 30,000 means 60,000

Here’s my speculation as to the root cause. Something in the COUNTry (perhaps a switching power supply?) is operating at 65 kHz. This is not fully suppressed or filtered and is leaking (somehow?) into the digital data. At sample rates 96k and lower, it’s above Nyquist and thus digitally filtered. But at 176.4 and 192, it’s below the Nyquist limit of 88.2 and 96 kHz respectively, so it is in the passband. Thus this power supply switching noise appears as harmonics of the given lower frequencies. If so, then it’s not really distortion, it’s noise.

Wherever the source of this noise, it’s interesting to study it closer. I created another graph below for this. Noise goes through the roof (literally – greater than 100% or louder than the fundamental) with spikes at 54.6 and 65 kHz. This noise profile and the spike frequencies are exactly the same at 176.4 and 192 kHz, so it’s independent of sampling frequency. It looks like this noise is what the graph (incorrectly) shows as distortion. Each of the N harmonic spikes is simply that same noise frequency divided by the next larger number (2nd, 3rd, 4th, etc.). Note that noise above the 0 dB line is not a bug. The spike at 65 kHz at +10 dB means it’s 10 dB louder than the signal.

In case this noise were caused by the high level of the digital signal (even though it wasn’t clipping), I ran another sweep at -48 dB. The noise profile looks the same:

In short, the noise is a constant level, and a constant frequency spectrum. It’s independent of the sample rate and of the input signal. This suggests it’s noise not distortion.

I said earlier that I was speculating – let me clarify. What is not speculation, but observation, is a lot of supersonic noise at high sample rates. My speculation is toward the root cause. I love a good puzzle and this explanation fits the observations. But I don’t really know what is causing that noise. So let’s set root cause speculation aside…

For comparison, here’s the COUNTry distortion and noise at 96 kHz, measured at the analog outputs at medium gain:

BTW, see that drop in noise & distortion from 700 to 2,000 Hz? I’m guessing this is the previously mentioned FF at work.

Here’s the distortion and noise of the measuring system, my ESI Juli@ sound card in loopback:

This typical of all sample rates 96 kHz and lower. So the COUNTry’s D/A and analog output is pretty clean – just a bit higher than the loopback connector, but not much. This should be well below audible levels.

Finally, I used Audacity to under-sample the 192 kHz test signal to 96 kHz, then played it through the COUNTry. The output looked clean, just like the 96k signal above. As expected.

Just in case the issue was with the 192 kHz tone itself, I measured how the SMSL SU-6 reproduces that test sweep signal, directly without the COUNTry. You can see those rising harmonics, but they cut off around -80 dB. This is the inherent noise and distortion of the Juli@ card’s analog input and A/D converter.

Conclusion

The COUNTry is a unique device. At 1 kilobuck it’s rather pricey, but considering its functionality, as an all-in-one device it replaces several others: DAC, amp and EQ with DSP. If you bought these separately, the total cost might be similar. And the COUNTry’s DSP features are unique and well implemented – you might not be able to find such a flexible EQ, or DSP with crossfeed or reverb. It’s built to last and the sound quality, both measured and subjective, is quite good if not state of the art. Used in purely digital mode, it should be sonically transparent, at least up to 96 kHz.

Meier Audio sent me one on request because I was curious about it. I don’t get to keep it. Yet over an extended trial using it nearly every day, here’s what I like best about it:

  • The flexibility of the EQ (shifting center freqs by combining adjacent bands) enables me to match the LCD-2F and HD-580 headphones, and most others.
  • The crossfeed is nice especially with albums having hard-panned L-R stereo separation.
  • Flexibility to be an all-in-one device or run in digital-only mode.
  • Works with my various audio systems with no observed software/firmware bugs.
  • Good quality, seems built to last with good support.

Suggestions for improving the COUNTry:

  1. Fix the HF noise/distortion issue at high sampling rates. The solution likely involves hardware changes to filter/suppress/isolate noise from the switching power supply.
  2. For improved transparency, make a version that runs DSP at the native sampling rate of the source without resampling. If this is not possible due to DSP memory or processing limitations, then over or under sample at integer multiples. Example:
    1. Implement all DSP at 2 rates: 88.2 & 96
    2. Input at 44.1, 88.2 and 176.4, resample and process at 88.2
    3. Input at 48, 96 and 192, resample and process at 96
  3. Eliminate the bass attenuation in high gain mode.
    1. Sure you can normalize it with bass boost, but better to give it flat response like low & medium gain. This simplifies COUNTry usage and obviates the need for bass boost, so you can replace it with a different function.
    2. Not really an issue for me, since low gain is plenty for my headphones.
  4. Provide an indicator when CD de-emphasis is activated (perhaps change the color of the 16k EQ band).
  5. One of the nice things about the COUNTry is that due to the physical knobs you can see all the modes at a glance. But the knob detents are hard to see. If I owned this device I’d fill the detent notches with white paint.

Of the above, the the only ones holding me back from buying the COUNTry are the first 2 items. Eliminating the high frequency noise is most important, and improving the transparency of resampling is second.

Meier Audio makes another version of the COUNTry that resamples everything to 96 kHz instead of 192 kHz. This 96k version has a more complex implementation of bass boost, called bass enhancement. It’s quite an interesting feature that leverages the psychoacoustic phenomena known as the “false fundamental”. As cool as that is, this 192k version has certain advantages, even if one doesn’t care about the difference in sample rate:

  • Bass boost exactly offsets the analog bass attenuation at high gain. The 96k version has no way to do this, since it replaces boost with enhancement.
  • Bass boost closely offsets the bass attenuation of several headphones, especially the Sennheiser HD 580/600/650/800 models.

Note that neither of the above reasons has anything to do with 96k versus 192k sample rates. In my opinion, 192k offers no real advantage over 96k because whatever advantages are gained from rates higher than the 44.1k CD standard, are fully realized at 96k. In fact, 192k is actually a disadvantage because it can allow ultrasonic noise that is not a concern with 96k. The above is an example of this.

Update: Apr 2023

Meier audio has a new version of the COUNTry:

  • Performs all DSP at the native sample rate (32, 44.1, 48, 64, 88.2, 96, 128, 176.4, 192)
    • Digital-only mode has no resampling, should be fully transparent
  • D/A conversion is always done at 96k, since the WM8716 chip is optimized for this rate
    • The analog audio output is resampled to 96k before D/A conversion
  • Equalizer step sizes are 0.5 dB resolution
  • Reverb replaced with 3 levels of bass boost (50 Hz shelf, Q=1.0) +2, +4 and +6
  • The original bass boost (45 Hz shelf, Q=0.5, +6 dB) is retained, and can be applied in addition.