Improved volume level handling

Look at a manual scenario:

  1. Listen to a tune with volume 30
  2. New tune, to high so you manually reduce volume to 20

Would it not be better if volume leveling did it like this, but automatic? Especially when you have volume handled by the DAC and the DAC has high-quality volume handling (like my DragonFly Red, which is excellent btw)? The scenario would then be this:

  1. Listen to a tune with volume 30
  2. New tune, before it starts Roon adjusts volume to 20 to make it equal volume level.

This would also (ever so slightly) improve music quality in cases where the DAC handles the volume, since it will do volume-calculations anyway, and you get rid of the manually recalculation done by Roon.

Have you turned on Roon’s volume leveling?

Yes, volume leveling works, its just that I think it can be done in a better way with no extra calculations performed by Roon.

Roon’s volume leveling is lossless. How would a DAC handle volume leveling and how would it be better?

No volume leveling is lossless, and since the DAC does the volume leveling anyway unless you run it at 100% fixed output, you reduce the number of volume leveling done from 2 to 1 in total. This is why you should always run software volume at 100%, and if possible tie the system volume level to DAC volume as (which can be done in Roon). Fever volume leveling done = better quality (although very marginally).

It would also reduce the CPU usage by Roon a little.

This should be an option though, since if you have a DAC that does not handle the volume (or use built in DAC in motherboard or audio card) than the current solution is the only possible one.

Have a look at Roon’s signal path with volume leveling turned on and go read a little more about digital attenuation. It’s not by definition lossy. I’d suggest Roon would do a better job with volume leveling than most DACs would do internally. Additionally, CPU usage on the PC running core is irrelevant unless your connecting directly to a DAC via USB, which is not recommended.

Volume leveling is lossy, although very slight. It involves recalculation of discrete values using float and rounding (rounding between floats and integers are lossy),

Here is my setup: I use Roon on a single computer, so my path is digital music -> Roon engine -> DAC. I use the DAC in exclusive mode, and the DAC takes its volume level from the computer system audio level. This means that unless I always use the system audio level at 100% the DAC already does recalculation of audio level.

Since the DAC in this scenario already does volume recalculation, its unnecessary for Roon to also do that during automatic volume leveling, and it would be better to adjust system audio volume to change the DAC volume. Its not a huge benefit, but it would have 2 advantages:

  1. One volume recalculation instead of two.
  2. Less CPU usage for Roon, which is an advantage when you use Roon in a single computer environment and do work on the computer at the same time as listening to Roon.

Since the DAC is used in exclusive mode, changing system audio level will not affect system sounds etc (they can’t be heard on that signal path due to exclusive mode).

You should be more concerned with the sq impact of the direct connection than that of volume leveling.

Why would a direct connection be bad? With only one computer available, its hard to do it any other way and this is probably how the majority of users uses Roon.

Anyway, I am not saying that the current auto-volume solution is flawed, in fact it seems to work very well. I just feel it could be improved upon slightly.

The pc running Roon Core has a lot going on most times iro CPU usage etc. so makes for an electrically noisy environment. If sq is s priority it’s recommended that a Roon Bridge enabled endpoint be placed between Roon Core and the DAC.

I see the value in combining the adjustments in the DAC.

The better solution is for DACs to implement two volume numbers: one public and tied to the device and the other private and tied to the current playback stream. Then it can sum those adjustments in whatever way is optimal for it.

We’re in talks with a few Roon Ready partners about making networked devices that do this. There are also some USB devices coming that may be able to support this down the road. It’s the “right” way to do it for sure.

As for the hack where we move the volume knob around for you…I don’t think we’ll do that. It’s very messy.

Volume controls are shared resources–with the OS, with other apps, and with other inputs. There’s no way to coordinate the “real” and “temporary” parts of the volume level with all of those other parties who might be interacting with the volume control. And they will get confused, and Roon will be trying to untangle ambiguous situations. The volume will jerk around, or volume saving/restoring will break, or (…). The weirdness that would ensue is not something we could reasonably support.

Yea, adjusting the system level automatically might be messy, although it should only be done if DAC is in exclusive mode so it won’t change audio output from other software. The two volumes idea sound better (or one volume and one offset value sent at the start of a tune).

How do i turn it off ?

Have a read of the Volume Leveling section in the RKB.