Issue with Distortion at Very Low Volume When Using WiiM Ultra with External DAC

For anyone connecting to an external DAC, but not willing to use the volume control of that DAC, and instead using the volume control on the Wiim Ultra:
Use the SPDIF outputs (either Optical or Coax) and then enable Fixed Resolution at 24 bits and with any sampling rate your DAC supports apart from 192khz. This will enable the Wiim to always use 24 bits for its output, and thus enabling a high quality volume control.
This is not possible for the USB connection, so this follows the same logic as when Fixed Resolution is not enabled for the SPDIF outputs, meaning that the output bitdepth depends on the input bitdepth (If your input is 16 bits, so is your output to your DAC. Playing back mp3 is also done in 16 bits, while ogg and aac in 24 bits. Lossless formats like flac are obviously done in whatever bitdepth the file was created from.)

This is now possible as the resampling inside the Wiim Ultra was fixed with the firmware v5.2.705437.
 
Last edited:
For anyone connecting to an external DAC, but not willing to use the volume control of that DAC, and instead using the volume control on the Wiim Ultra:
Use the SPDIF outputs (either Optical or Coax) and then enable Fixed Resolution at 24 bits and with any sampling rate your DAC supports apart from 192khz. This will enable the Wiim to always use 24 bits for its output, and thus enabling a high quality volume control.
This is not possible for the USB connection, so this follows the same logic as when Fixed Resolution is not enabled for the SPDIF outputs, meaning that the output bitdepth depends on the input bitdepth (If your input is 16 bits, so is your output to your DAC. Playing back mp3 is also done in 16 bits, while ogg and aac in 24 bits. Lossless formats like flac are obviously done in whatever bitdepth the file was created from.)

This is now possible as the resampling inside the Wiim Ultra was fixed with the firmware v5.2.705437.
Is it true that the digital volume has better precision using fixed 24 bit 96 kHz on everything ? I doubt that .

According to WiiM , the volume control resolution is done with 32 bit resolution on all material , also when using 16 bit 44.1 kHz material .
 
I found the answer from WiiM :

Both digital outputs , spdif coax and toslink , and when using the internal dac with volume regulation uses 32 bit resolution processing algorithms for volume regulation meaning the precision from spdif out is 24 bit ( the limit for spdif ) , regardless if the source material are 16 bit or 24 bit .

This means the volume control from spdif out has a dynamic range of 144 dB ( 24 bit resolution processing) even when using 16 bit source material .

This means one can lower the volume thru spdif to dac 48 dB before the 16 bit signal starts to loose information .

 
Vintageflanker measurements of the digital volumecontrol of the Pro on spdif out:

”Last but not least, a quick world about digital volume implementation. This is what I get when measuring the same 1kHz tone (Wi-Fi In, 44.1kHz) at different levels:”

Fixed: -141.8dB THD+N
≃75%: -138.2dB THD+N
≃50%: -131.5dB THD+N
≃25%: -115.5dB THD+N
≃10%: -99.6dB THD+N
 
I found the answer from WiiM :

Both digital outputs , spdif coax and toslink , and when using the internal dac with volume regulation uses 32 bit resolution processing algorithms for volume regulation meaning the precision from spdif out is 24 bit ( the limit for spdif ) , regardless if the source material are 16 bit or 24 bit .
This is only possible if the WiiM then indeed sends 24 bits to the external DAC.

If the WiiM sends 16 bits (ie same as source) to the DAC after volume control then the dynamic range will have been reduced significantly for a very low volume

I need to check what my DAC says it's receiving later (not near it now)
 
This is only possible if the WiiM then indeed sends 24 bits to the external DAC.

If the WiiM sends 16 bits (ie same as source) to the DAC after volume control then the dynamic range will have been reduced significantly for a very low volume

I need to check what my DAC says it's receiving later (not near it now)
I can confidently say I've never seen a 24 bit output for a 16 bit input when using variable volume.

Edit: ok, reworded (based on comment below!), my dac doesn't report 24 bits.
 
Last edited:
This is only possible if the WiiM then indeed sends 24 bits to the external DAC.

If the WiiM sends 16 bits (ie same as source) to the DAC after volume control then the dynamic range will have been reduced significantly for a very low volume

I need to check what my DAC says it's receiving later (not near it now)
DAC always gets 20+4 bits over spdif. In case of 16 bit content additional zeroes are sent.
 
DAC always gets 20+4 bits over spdif. In case of 16 bit content additional zeroes are sent.
Kind of .. but this is encoded as such in the control word meaning that's just an artifact of transport. I don't expect the receiver to use anything other than the defined 16 bits of data when word length is set to 20 and sample length to -4...

What you describe is an artifact of the link layer. It remains that if DAC says it's receiving 16 bits, then only 16 bits are effectively extracted and whatever else is in the frames is just padding. This is really only a 16 bit pipe from an application layer perspective when configured as such.

Hence my point remains, if the DAC says it's getting 16, then volume control will have caused a significant loss of range at low volume. There is just no way around that.

The only way volume control does not loses resolution (or loses less) are:

* Actually sending a real 24b stream to the DAC, identified and recognised as such. Hopefully that is what happens when using fixed resolution . Unfortunately that also fixed the frequency meaning possible resampling which is in this case not desirable. Also this require that WiiM properly does the fixed resolution scaling without first dropping to 16b... We don't know that.

* Sending data at full volume and using a sideband channel to control the DAC volume, possible with USB (and some DACs) but we don't know if WiiM exploits that possibility

* Using the internal DAC

That's it really. There is no magic here. If you source is 16b and your DAC is receiving (and decoding) a 16b PCM stream, it does not matter wether things were scaled to 32b for volume and transmitted over a link that has 4 it 8 more bits of padding, only 16 significant bits are going to be used and thus dynamic range will have been lost. I prefer not trying to count how many for a given volume percent as it's a log scale not linear and I didn't have y morning coffee for maths yet :-)
 
when word length is set to 20
WiiM always sets word length to 24. How would you like to tell the DAC that you send 16 bits in this situation?
DACs ignore word length or sample length settings because it's garbage usually.
 
WiiM always sets word length to 24. How would you like to tell the DAC that you send 16 bits in this situation?
DACs ignore word length or sample length settings because it's garbage usually.
If that were true how would the DAC be able to display that you are playing 16b content ?
 
That's the case when 16 bit content is sent, no fixed resolution:

1737930014998.png

and fixed resolution enabled, sample rate as the source but 24 bit depth:

1737930125779.png

Any difference?
 
Actually sending a real 24b stream to the DAC, identified and recognised as such. Hopefully that is what happens when using fixed resolution .
How would you transform 16 bit stream to 24 bit if sample rate doesn't change?
 
Vintageflanker measurements of the digital volumecontrol of the Pro on spdif out:

”Last but not least, a quick world about digital volume implementation. This is what I get when measuring the same 1kHz tone (Wi-Fi In, 44.1kHz) at different levels:”

Fixed: -141.8dB THD+N
≃75%: -138.2dB THD+N
≃50%: -131.5dB THD+N
≃25%: -115.5dB THD+N
≃10%: -99.6dB THD+N
What matters is SNR and effective bits. And for 16 bits content you will get values close to 96 dB and 16 bit in REW.
 
That's the case when 16 bit content is sent, no fixed resolution:

View attachment 16718

and fixed resolution enabled, sample rate as the source but 24 bit depth:

View attachment 16719

Any difference?
Are you applying any volume attenuation? Otherwise I don't see the point of that graph. Additionally as I mentioned we don't know where in the chain WiiM implements the fixed resolution scaling. It may of may not help depending on that.
 
Some DACs look for effective bits, for example RME.
What does that mean ? There's the explicit resolution specified in the control word and there's the data on the wire. You mean the RME DAC ignores the former and counts the number of zero bits in the sample data ?

Not only that would be a gross protocol violation but it should be clearly visible as 16b content with attenuation would then display on the DAC as >16b ... Do we have any evidence of that ever happening ?

Like us french say, c'est extrêmement capilotracté tout ça....
 
What matters is SNR and effective bits. And for 16 bits content you will get values close to 96 dB and 16 bit in REW.
Again what on earth do you define by effective bits ?

We are talking about a digital transport here and wether there is loss of information (resolution) due to attenuation and trying to somewhat quantify it. The impact of that loss on SNR will depend of course on the actual content and the dynamic range of the source.
 
Back
Top