Home > General > The Sabre DAC Digital Volume Control: Better than Analog?

The Sabre DAC Digital Volume Control: Better than Analog?

The ESS Sabre DAC built-in volume control

The volume control is done just before the oversampling filter on the digital data. It can be set to 0.5dB increments and in order to avoid clicking upon volume level changes, it  goes through 64 intermediate levels to move 0.5dB. In addition, the volume does not instantly change when you request, rather it logarithmically moves to the desired level. The way this shows up in a system implementation is that the sound softly changes levels.

Hifiduino Implementation

The code implements the digital volume control and provides the following features:

  • Stereo and Mono (easy to modify to support 8-channel volume)
  • -99 dB to 0dbB in 1 dB increments. I find  the minimum resolution of 0.5 dB too small to be practical. Volume levels can be changed with the rotary encoder or the remote control
  • Volume “DIM”, with SMOOTH return. The volume is dimmed to a predetermined volume. It is currently set to -80 dB. When you “undim”, the volume returns to the prior volume setting in a smooth, “logarithmic” mode to provide a smooth transition to the listener. I found that a linear ramp appeared to abrupt of a change. Volume DIM is currently available only in the remote but it can be implemented in the controller with a button switch
  • Power-on volume is always set to -50 dB (it an be easy to remember the last set volume, but starting with a predetermined low volume seems a more practical and safer approach

Digital Volume with 16-bit audio: the truncation problem

32-bit Digital Volume Control

The digital volume control in the ESS Sabre DAC owes its performance to the availability of a wide internal data path. Using a 32-bit data path, the truncation error (or lack of truncation error) that results from digital attenuation does not reduces the SNR of the DAC.

For a much better explanation on how this work, check the recent  presentation on digital volume control from ESS.

In conclusion, the presentation says:

The message here is that 32-bit digital volume control can beat or match most analog volume controls unless they can beat the -135dB number. (or -132dB in stereo configuration). Note also that DNR is the same weather in voltage or current mode; only THD is enhanced in current mode.

But there is more:

Consider the following recommendation of using iTunes Sound Check:

“Do music a favor by having SOUND CHECK ON by default”

The context of the presentation is the loudness problem with contemporary recordings. You can read more about this here: [link] and watch a video of the presentation here [link]. The presentation has several demos illustrating how some types of distortion sound.

According to the presentation, headroom is needed in several places of the signal path:

  • DAC
  • Filters (digital and analog)
  • Sample Rate Converters
  • Data Reduction Codecs (e.g. AAC or MP3)

As 0 dBFS+ level is hit more and frequently on new pop/rock releases, distortion is created through the signal path. Audiophiles do not typically use data reduction codecs; but DACs and filters cannot be avoided.

The recommendation to use Sound Check is to lower the peak levels in the digital domain in order to avoid the potential distortion that can result from the lack of headroom.

In the Sabre DAC the volume adjustment is done prior to the Oversample Filter (which is also before the built-in ASRC). Normal listening volume is typically many dBs lower than the 0 dB level, thus effectively eliminating the potentially distortion-causing peaks present in modern recording.

Compare this with the “traditional” way of handling volume control: pass the signal at full magnitude through the DAC and then do attenuation in the analog domain through a preamp. If over aggressive signal peaks generate distortion in the DAC, they these can only be attenuated in the preamp but never eliminated.

This fact alone makes digital volume control superior to analog volume control

Further Reading:

Using Dithering

Digital Volume Control -done the right way is a paper by Weiss describing the use of dithering. -I think if you have a large enough data path (like 32 bit), then you won’t have to worry about using dithering because either there is no truncation or the truncated value is below the noise level. There is no mention of the ESS DAC using dithering in the data sheet.

The Wolfson 8741 DAC which has an internal path of 24-bit has dithering control in the register setting. The datasheet specifies:

Dither is applied whenever internal truncation occurs. It is also used when 32 bit input word is applied to the DAC prior to truncation to the internal wordlength. Three types of dither can be selected (in the digital filter) to allow the sound quality of the device to be optimized.

Here is good paper explaining what dithering does to the spectral response of a truncated signal: Dither Explained by Nika Aldrich

About these ads
  1. 2012/02/01 at 21:32

    I completely agree with this article and recommendations, even though I was trying to escape digital volume as far as possible. Now in my system I have two volume controls. One is within the ESS DAC with remote and the second one is my relay controlled resistor based volume control. I compared both and found no difference between the two. After my test I disabled the analog one and will not be looking to go back. The volume control on ESS is exceptional and very simply and elegantly implemented. This approach is completely against our common wisdom, but this article gives excellent explanation why.

  2. Florin
    2012/05/13 at 04:52

    Hi, I am quite new to understanding the registries available in a DAC and the way these ca be accessed and modified. Would it be possible to recommend me a few links to start with? I plan implementing a volume control on the AK4396 / AK4399 dac’s from AKM, however I don’t really have a clue where to start with and the datasheet is pretty thin about this. Thank you!

    • BlogGeanDo
      2012/05/13 at 15:27

      Hi Florin,

      In essence, it is about writing values to a series of registers in a chip. You can read my old blog: hifiduino.blogspot.com from the bottom up. When I started i had no clue on where to start.

      The datasheet tells you the addresses of the registers and what value to put in those registers

  1. No trackbacks yet.

Leave a Reply

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

WordPress.com Logo

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

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 201 other followers