• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Hardware volume via USB

zuli

Member
Forum Donor
Joined
Oct 22, 2019
Messages
39
Likes
9
I'm trying to understand how the hardware volume via USB works.
I've a Ropieee connected to a Benchmark DAC3 HGC via USB. In Roon I can select "Device volume", which is changing the volume.
This is what I can see in the RaspberryPie.
image003.png

image004.png


When I change the volume in Roon or in the alsamixer, the volume of the mixer `Benchmark DAC2 Audio 2.0 Output Playback Vo` changes, but the dac's volume knob is not rotating accordingly.
The same happens if I'm using Volumio instead of Roon.

So the question is what is changing what?
 

somebodyelse

Major Contributor
Joined
Dec 5, 2018
Messages
3,745
Likes
3,032
Perhaps ask Benchmark? The 'Hybrid Gain Control' section of the manual isn't clear on which bit(s) are adjusted via USB, but I'd guess it's just the digital part as the knob isn't moving.
 
OP
Z

zuli

Member
Forum Donor
Joined
Oct 22, 2019
Messages
39
Likes
9
Well, I have asked them and they told me "You are undoubtedly using volume in the software player." and "You need to consult with the player’s forum." :(

In this dac a single motor-driven potentiometer is controlling the analog and digital inputs (see below). And the "position of the pot determines the multiplier for the 32-bit digital gain control that feeds the 32-bit input of the ES9018".

I've also experimented with the "software volume".
Roon is doing this via the endpoint (i.e the Ropiee). Therefore the process in the end point is : 24bit -> 64bit -> Volume DSP-> Dither to 32/24bits .
Volumio seems to be using the mixer software part instead.

Reference:

https://benchmarkmedia.com/blogs/ap...1191-inside-the-dac2-part-1-analog-processing

"The DAC2 features our unique Hybrid-Gain-Control™ system which separates analog and digital inputs into two entirely different volume control systems. We use 32-bit digital gain control for digital inputs, and an analog potentiometer for analog inputs. We do not convert analog inputs to digital, nor do we pass the output of the D/A converter through an analog volume control. Nevertheless, both types of inputs are controlled by a single motor-driven potentiometer. Analog input signals pass directly through this pot while digital input signals follow a shorter analog signal path that bypasses the pot. For digital inputs, the position of the pot determines the multiplier for the 32-bit digital gain control that feeds the 32-bit input of the ES9018. This hybrid system provides two signal paths; one that is optimized for analog inputs, and one that is optimized for digital inputs. This hybrid system delivers the lowest possible noise and distortion for each signal type.

Remote control is achieved through the use of a motor drive. The analog and digital gains track very precisely as the knob rotates. This makes it easy to switch between analog and digital sources without readjusting the volume.
"

https://benchmarkmedia.com/blogs/application_notes/inside-the-dac2-part-2-digital-processing

"The DAC2 has a 32-bit digital volume control that feeds the array of 32-bit D/A converters. This 32-bit connection allows the use of digital volume control without causing a loss of resolution. At an attenuation of 48 dB, all bits from a 24-bit input still reach the D/A converter. When the DAC2 is properly gain-matched to a power amplifier, the noise produced by the DAC2 will remain inaudible at all volume control settings. The XLR outputs on the DAC2 are equipped with passive analog attenuators which should be used to optimize the gain range of the volume control. This hybrid volume control system is another key to the overall performance of the DAC2. It allows optimization of the output level to match the input sensitivity of any power amplifier."
 

RayDunzl

Grand Contributor
Central Scrutinizer
Joined
Mar 9, 2016
Messages
13,246
Likes
17,161
Location
Riverview FL
I have a DAC2 HGC.

The Benchmark driver is installed.

There is a "control panel".

Setting the slider has no effect on the DAC.


1611941614489.png
 
Last edited:
OP
Z

zuli

Member
Forum Donor
Joined
Oct 22, 2019
Messages
39
Likes
9
I don't have a pc on hand to try the windows USB audio driver, but it's definitely working on a linux
Screenshot 2021-01-29 at 18.41.15.jpgScreenshot 2021-01-29 at 18.41.02.jpg
Edited: added the 80/100 image
 
Last edited:

RayDunzl

Grand Contributor
Central Scrutinizer
Joined
Mar 9, 2016
Messages
13,246
Likes
17,161
Location
Riverview FL
OP
Z

zuli

Member
Forum Donor
Joined
Oct 22, 2019
Messages
39
Likes
9
@RayDunzl I've read the post you linked and also the post linked inside it. It seems to be an old thread with not updated info.
Facts are that the dac is advertising an hardware mixer via USB 2.0 protocol, and that you can use it via linux at least.
My current hypotheses are:
1. the usb driver is actually doing a "software" volume management, or
2. the dac is receiving the volume instructions and doing the digital volume management, but it's not rotating the knob.
 

RayDunzl

Grand Contributor
Central Scrutinizer
Joined
Mar 9, 2016
Messages
13,246
Likes
17,161
Location
Riverview FL
2. the dac is receiving the volume instructions and doing the digital volume management, but it's not rotating the knob.

The volume of that to which I am listening doesn't change when I twiddle the slider in the driver..
 
OP
Z

zuli

Member
Forum Donor
Joined
Oct 22, 2019
Messages
39
Likes
9
I hear you, that can be the Windows USB driver that is not implementing the hardware mixer.
 

mansr

Major Contributor
Joined
Oct 5, 2018
Messages
4,685
Likes
10,703
Location
Hampshire
Since you're running Linux, can you post the output of running lsusb -v -d 1781:0e4f? I believe that's the USB vendor/product ID for this DAC. If not, a plain lsusb will reveal the correct value.
 

voodooless

Grand Contributor
Forum Donor
Joined
Jun 16, 2020
Messages
10,371
Likes
18,283
Location
Netherlands
Main issue here in implementing this is that the motor control can only do up/down, and a mixer actually let’s you set a specific value. What must happen then is that the motor must “find” the corresponding potenter setting. That is probably not very easy. Usually these motors are not very exact. Of course some firmware magic could be made to at least make it look as if it works perfectly. They might not have taken the effort.
 
OP
Z

zuli

Member
Forum Donor
Joined
Oct 22, 2019
Messages
39
Likes
9
@mansr: I've attached the output for `lsusb`. The vendor /product ID was the correct one
 

Attachments

  • lsusb.txt
    14.7 KB · Views: 139
OP
Z

zuli

Member
Forum Donor
Joined
Oct 22, 2019
Messages
39
Likes
9
@RayDunzl I've tried with a Win10 and a Mac. Both are exposing a slider which you can use to set the volume. I'm using a Dac3. In your case can be the dac firmware or the driver that is not enabling you to change the volume

Screenshot 2021-01-30 at 11.34.48.pngScreenshot 2021-01-30 at 11.34.33.pngScreenshot 2021-01-30 at 11.39.33.pngScreenshot 2021-01-30 at 11.47.01.png
 

mansr

Major Contributor
Joined
Oct 5, 2018
Messages
4,685
Likes
10,703
Location
Hampshire
Without going too deeply into the details of USB audio, this is the relevant part:
Code:
      AudioControl Interface Descriptor:
        bLength                18
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                10
        bSourceID               2
        bmaControls( 0)      0x0000000f
          Mute Control (read/write)
          Volume Control (read/write)
        bmaControls( 1)      0x0000000f
          Mute Control (read/write)
          Volume Control (read/write)
        bmaControls( 2)      0x0000000f
          Mute Control (read/write)
          Volume Control (read/write)
        iFeature                0
This declares the existence of a volume and mute controls, combined and per-channel, readable and writeable by the host computer.

The description quoted earlier suggests that the microcontroller uses an ADC (many have one on-chip) to sense the position of the knob and sets the digital attenuation accordingly. Nothing, in principle, prevents a USB command overriding the physical pot reading and setting a different value without engaging the motor drive.

What happens if you change the volume from the PC by a substantial amount, then nudge the knob on the unit? Does the volume then jump back to the original setting?
 
OP
Z

zuli

Member
Forum Donor
Joined
Oct 22, 2019
Messages
39
Likes
9
No, it stays where you set it. I think that the usb volume control is added on top of the dac volume level (e.g. dac is unit gain and the usb adds -17db). This behaviour would be coherent to protect the speakers: you set the maximum level using the dac's digital volume, and then the device can lower the volume. Does this make sense?
And also the usb volume setting is volatile, meaning that if I switch between Mac and Windows, the usb volume level is not read by the other system. Each one is setting his own value.
 

voodooless

Grand Contributor
Forum Donor
Joined
Jun 16, 2020
Messages
10,371
Likes
18,283
Location
Netherlands
Well, I have asked them and they told me "You are undoubtedly using volume in the software player." and "You need to consult with the player’s forum." :(

Is that all they told you? Might be good to ask how you should expect it to work. The “analog” on top of digital approach might be correct indeed.
Edit: removed the part about this being hard.. On second thought, it’s not :p
 
Last edited:

Geert

Major Contributor
Joined
Mar 20, 2020
Messages
1,944
Likes
3,548
No, it stays where you set it. I think that the usb volume control is added on top of the dac volume level
That's exactly how it works on my Atoll IN200 Signature integrated amplifier (hardware volume controled via Ubuntu).
 

mansr

Major Contributor
Joined
Oct 5, 2018
Messages
4,685
Likes
10,703
Location
Hampshire
No, it stays where it is. I think that the usb volume control is added on top of the dac volume level (e.g. dac is unit gain and the usb adds -17db). This behaviour would be coherent to protect the speakers: you set the maximum level using the dac's digital volume, and then the device can lower the volume. Does this make sense?
Sure, the USB volume control might be a separate thing connected in series with the main one set by the knob.

And also the usb volume setting is volatile, meaning that if I switch between Mac and Windows, the usb volume level is not read by the other system. Each one is setting his own value.
This suggests that Windows and MacOS save the last volume setting somewhere and restore it when the DAC is next connected.
 
OP
Z

zuli

Member
Forum Donor
Joined
Oct 22, 2019
Messages
39
Likes
9
Is that all they told you? Might be good to ask how you should expect it to work. The “analog” on top of digital approach might be correct indeed.
Edit: removed the part about this being hard.. On second thought, it’s not :p
They suggested me to either "If you want to control volume in the player, the DAC would be in HT mode so that no digital volume of the dac would be used.", or "If you want to control in the dac, HT should be off, the player’s volume should be in the full output mode, usually considered to be 100%.".
The first option seems to be related to a "Software volume control" solution. Otherwise it would be contradicting our findings. I don't know if it's better the digital dac volume control or the Roon's "DSP volume", which on the endpoint is doing 24bit -> 64bit -> Volume DSP-> Dither to 32/24bits .
The second one is what you can get using a "Fixed mode".

To sum up.
It seems that using the "hardware volume" via the usb interface is going through the dac's digital volume control, so in terms of sound quality it's equivalent to use only the dac's knob for the digital volume.

Thank you guys for your support!
 
Top Bottom