• 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!

Software Player volume vs DAC digital volume vs Analog volume

ElNino

Addicted to Fun and Learning
Joined
Sep 26, 2019
Messages
557
Likes
722
Did you read the hydrognaudio thread carefully? The post was talking about the original command line version of SoX has clipping problem, and the foobar plugin version does not clip since it uses float. Exactly one of the advantages of floating point processing.

You're completely misunderstanding the Hydrogenaudio thread. There is no clipping problem in the SoX command line version. Any resampling to higher sample rates risks creating inter-sample peaks above FS; the command line version of SoX notes this, warns you, and tells you to add headroom so it doesn't happen. The reason this guy added float support to Foobar's SoX plugin is because he wants to pass above FS floats down through Foobar's pipeline to potentially be dealt with later on with Foobar's normal limiting.

I just realized that you're the author of the guest piece on Archimago's blog. I think you'd probably benefit from some reading on basic DSP concepts so you understand what is going on.
 

bennetng

Major Contributor
Joined
Nov 15, 2017
Messages
1,634
Likes
1,692
You're completely misunderstanding the Hydrogenaudio thread. There is no clipping problem in the SoX command line version. Any resampling to higher sample rates risks creating inter-sample peaks above FS; the command line version of SoX notes this, warns you, and tells you to add headroom so it doesn't happen. The reason this guy added float support to Foobar's SoX plugin is because he wants to pass above FS floats down through Foobar's pipeline to potentially be dealt with later on with Foobar's normal limiting.

I just realized that you're the author of the guest piece on Archimago's blog. I think you'd probably benefit from some reading on basic DSP concepts so you understand what is going on.
Sorry, it is you who misunderstood that hydrogenaudio thread, and if you read carefully I am also the OP of that thread.

[1] You don't understand floating point audio is allowed to exceed 0dBFS by ridiculous amount without clipping.
https://forum.audacityteam.org/viewtopic.php?t=78305#p240828

[2] The SoX log does not involve ANY resampling process at all. Go ahead and read the log carefully.
https://hydrogenaud.io/index.php/topic,101850.0.html

[3] Bringing back out of range floating point value to avoid clipping is not "limiting" at all and this process does not work like those WAVES L1/2/3 limiter thing. It should be called reduce or normalize.

[4] Not only foobar, many floating point compliant audio editors/DAW like Adobe Audition and Reaper can do the things mentioned in [3].

[5] Read and try this:
https://www.audiosciencereview.com/...attenuation-before-power-amp.5844/post-131431
 
Last edited:
OP
L

Leon

Member
Joined
Mar 5, 2018
Messages
18
Likes
3
When I said that digital volume is a very huge/passionate topic ( see already all advises) :D:D:D

If I summarize our discussion:
- Prefer audio player ( Foobar/jriver) which manage a resolution of 24 -->64 bits + Floating points
- Use DAC volume in second step or analog attenuator
- Reason is due to the fact that SnR on palyer/DAC is now very well manage , sometime better than standard preamplifier

Let's continue with all your advise, comment, its very useful for all.

A question for audio player: a list of others audio player with their volume characteristics is welcome (Noon, MPHC, ...)

Thanks again all of you for your contribution.
 
OP
L

Leon

Member
Joined
Mar 5, 2018
Messages
18
Likes
3
Hello everybody,

To continue this analysis, do you know the volume resolution/performance of
-MP-HC (Media Player Home cinema)?
-Windows seven 64 bits ?

Thanks for your advise/answer
 
Last edited:
OP
L

Leon

Member
Joined
Mar 5, 2018
Messages
18
Likes
3
Thank you !
Volume MPC-HC strongly improve if you set max volume at 95% : strange but measurements give the demonstration !
 

Jumbotron

Member
Joined
Sep 14, 2019
Messages
32
Likes
26
Location
Spain
Thank you !
Volume MPC-HC strongly improve if you set max volume at 95% : strange but measurements give the demonstration !
If I recall correctly, the documentation of MPC-HC player does not recommend setting it to max volume, but to 75-80 % for best results.
 
OP
L

Leon

Member
Joined
Mar 5, 2018
Messages
18
Likes
3
OK Jumbotron. Seems coherent with measurement.
 

ofrappier

Active Member
Joined
Jul 20, 2018
Messages
122
Likes
74
Location
France
Here my program in Console Mode OSX, that control with a MIDI controller, 32 BIts float main volume of loopback virtual cable, OSX core audio to my virtual DIGITAL F.I.R linear crossover , and 2 stereo outputs USB 32 bits float driver to my MOTU 8A (for 2 subwoofer / 2 SAT)


:)
 

chebum

Member
Forum Donor
Joined
Feb 7, 2019
Messages
46
Likes
14
Location
Warsaw, Poland
For example, with an ideal 24-bit device, it is possible to playback a 16-bit file 48dB lower without losing quality, because one bit has about 6dB of dynamic range (the exact formula of bitdepth and dynamic range is 6.02*n-bits + 1.76).

Music isn't linear - some frequencies are louder than others. Here is an example. It's a spectrum of a pop song. As you can see, 50Hz is the loudest frequency: its amplitude is -5 dB. 10KHz is -40dB quieter than that. For a 16bit recording this means dynamic range of the 50Hz sounds is 15bits and just 9bits for 10KHz. We're already at the point where amplitude resolution isn't that great.
pop-spectrum.jpg
 

bennetng

Major Contributor
Joined
Nov 15, 2017
Messages
1,634
Likes
1,692
Music isn't linear - some frequencies are louder than others. Here is an example. It's a spectrum of a pop song. As you can see, 50Hz is the loudest frequency: its amplitude is -5 dB. 10KHz is -40dB quieter than that. For a 16bit recording this means dynamic range of the 50Hz sounds is 15bits and just 9bits for 10KHz. We're already at the point where amplitude resolution isn't that great.
View attachment 44533
Yes, but the point is if the original file is 16-bit then a properly dithered > 16-bit digital volume control won't degrade the signal until the bit-depth limit is reached. Also, it is not the main point of the article, please read until the end.
 

xr100

Addicted to Fun and Learning
Joined
Jan 6, 2020
Messages
518
Likes
237
Location
London, UK
It is because those classic WAVES plugins work with hardware working in fixed point like Pro Tools TDM. The newer generation of plugins work in 64-bit float already.

For TDM, Waves used to have a webpage listing single precision (24-bit) and double precision (48-bit) plugins. This may seem like obsolete information, but AFAIK to this day not all Waves plug-ins operate at 64-bit float internally. In my setup (Reaper 6 / Waves 9), all output 32-bit float; not sure if inputs are also 32-bit float.

A few years ago, I found that certain setups in the Q10 parametric EQ (VST version in Reaper) would result in idle tones.

Feeding a clean 1kHz sine (-1dBFS) into L1+ (threshold at 0dBFS), with Dither set to "24-bit, Type 1, Normal shaping," added harmonics can be seen in a spectrum analyser; they are >140dB down, but they are there--and, by way of comparison, using the JS* plug-in "Bit Reduction and Dither with Psychoacoustic Noise Shaping," only the noise floor is visible.

(*Reaper's native script-based plugin format; definitely 64-bit float.)

Waves have released overhauled versions of L1 and Q10 ("25th anniversary",) so if the update is more than "skin-deep" (pun intended--certainly "True Peak" limiting has been added to L1,) perhaps the above no longer applies.

Note that I am not suggesting anything about audibility here (nor the need or otherwise to "redither" given audio data that already contains a suitably high noise floor)--but it is, in any case, clear that some care is needed if one wishes to avoid the effects of inadvertent truncation.
 
Last edited:

xr100

Addicted to Fun and Learning
Joined
Jan 6, 2020
Messages
518
Likes
237
Location
London, UK
As you can see, 50Hz is the loudest frequency: its amplitude is -5 dB. 10KHz is -40dB quieter than that. For a 16bit recording this means dynamic range of the 50Hz sounds is 15bits and just 9bits for 10KHz. We're already at the point where amplitude resolution isn't that great.

Bits per sample, not "resolution"...

To quote from "Quantization and Dither: A Theoretical Survey" (Lipshitz et al.):

"We recommend the use of nonsubtractive, triangular pdf dither of 2-LSB peak-to-peak amplitude for most audio applications requiring multibit quantization or requantization operations, since this type of dither renders the first and second moments of the error signal constant with respect to the input, while incurring the minimum increase in error variance."

Without a solid background in statistics--and count me in!--the paper is somewhat impenetrable. However, as a practical demonstration, in software that operates in floating-point, one can generate a test tone way below -100dBFS, dither to 16-bits, then scale (amplify) back up to an audible level--and the test tone is audible under the noise; whereas simply truncating to 16-bits would yield--as one would expect from the "resolution" concept--nothing at all.

As the likes of J.J. Johnston (formerly of Bell Labs) have pointed out many times, that dither is essential has been known about since at least the 1950s--absence of dither means an "illegal" signal--and a broken system.
 
Last edited:

bennetng

Major Contributor
Joined
Nov 15, 2017
Messages
1,634
Likes
1,692
Feeding a clean 1kHz sine (-1dBFS) into L1+ (threshold at 0dBFS), with Dither set to "24-bit, Type 1, Normal shaping," added harmonics can be seen in a spectrum analyser; they are >140dB down, but they are there--and, by way of comparison, using the JS* plug-in "Bit Reduction and Dither with Psychoacoustic Noise Shaping," only the noise floor is visible.
Interesting. I am no longer using those Waves plugins as there are a lot of other choices these days. If you did nothing other than bit conversion then harmonics at -140dB is still pretty high even for 32-bit float. For instance here is the 15 years old Adobe Audition 1.5 generating a sine then dithered to 24-bit (white) , and the free Audacity (blue) doing the same thing, analyzed by DeltaWave:
au.png


and Reaper analyzing the 24-bit file from Audition:
audition reaper.png
 

xr100

Addicted to Fun and Learning
Joined
Jan 6, 2020
Messages
518
Likes
237
Location
London, UK
Interesting. I am no longer using those Waves plugins as there are a lot of other choices these days. If you did nothing other than bit conversion then harmonics at -140dB is still pretty high even for 32-bit float.

Using the same Reaper "JSFX" Spectrum Analyzer with identical settings (albeit 96kHz sample rate, so relatively shorter FFT size)...

Reaper "JSFX" Tone Generator -- 1kHz sine (-1dBFS amplitude):
ASR 1.png


Reaper Export to 32-bit FP:
ASR 2.png


L1+ Dither to 24-bit:
ASR 3.png


Reaper "JSFX" Bit Reduction and Dither w/ Noise Shaping:
ASR 4.png



Harmonic distortion components are far below -140dB on these plots, but they are clearly visible.
 
Last edited:

bennetng

Major Contributor
Joined
Nov 15, 2017
Messages
1,634
Likes
1,692
Using the same Reaper "JSFX" Spectrum Analyzer with identical settings (albeit 96kHz sample rate, so relatively shorter FFT size)...

Reaper "JSFX" Tone Generator -- 1kHz sine (-1dBFS amplitude):
View attachment 45129

Reaper Export to 32-bit FP:
View attachment 45133

L1+ Dither to 24-bit:
View attachment 45135

Reaper "JSFX" Bit Reduction and Dither w/ Noise Shaping:
View attachment 45136


Harmonic distortion components are far below -140dB on these plots, but they are clearly visible.
The height of the harmonics are related to sample rate and the frequency of the test tone. For example, try to generate a 6kHz sine at 48kHz, then try 5999Hz.

In real (even synthesized) music, the spectrum is rarely a single tone and the truncation effect is negligible, and the practical benefit for floating point is clipping prevention rather than the inaudible low level distortion.
 

xr100

Addicted to Fun and Learning
Joined
Jan 6, 2020
Messages
518
Likes
237
Location
London, UK
The height of the harmonics are related to sample rate and the frequency of the test tone. For example, try to generate a 6kHz sine at 48kHz, then try 5999Hz.

Indeed.

Plots also look different depending on FFT window etc. They look quite different in Voxengo SPAN, for example.

In real (even synthesized) music, the spectrum is rarely a single tone and the truncation effect is negligible, and the practical benefit for floating point is clipping prevention rather than the inaudible low level distortion.

In the case of DSP processes running natively on a "PC," i.e. on an "Intel" processor, 64-bit floating-point is "free," so there really is no reason for 32-bit floating-point internally anywhere--other than software availability, i.e. no alternative exists or the option chosen is greatly more convenient than the alternatives.

The other aspect was to show that one should not make any assumptions about the behaviour of software DSP processes. In this case, the artifacts may well be benign. However, I have measured "professional" plug-ins for which the cost of a license is into three figures, and yet garbage appears at the output, such as spurious tones around 10kHz.

What (modern) "PC" software uses fixed-point DSP for audio processing?
 
Last edited:

bennetng

Major Contributor
Joined
Nov 15, 2017
Messages
1,634
Likes
1,692
The other aspect was to show that one should not make any assumptions about the behaviour of software DSP processes. In this case, the artifacts may well be benign. However, I have measured "professional" plug-ins for which the cost of a license is into three figures, and yet garbage appears at the output, such as spurious tones around 10kHz.

What (modern) "PC" software uses fixed-point DSP for audio processing?
In fact there is another (locked) thread about this issue:
https://www.audiosciencereview.com/...es-dsd-sound-better-than-pcm.5700/post-176220

Not only my posts, replies from others are very interesting as well.
 
Top Bottom