PDA

View Full Version : Digital volume control



jhenderson010759
2005-04-26, 08:09
Is there any means by which the data samples sent to the Squeezebox 1 or Squeezebox 2 can be up-sampled to 24-bits, prior to implementing volume control? If this were done, then when playing 16-bit streams, such as FLAC tracks, up to 48 dB of digital attenuation could be effected without any theoretical loss in signal quality.

If this is not currently implemented in the Squeezebox firmware, would it be possible for me to write a plug-in in C++ for SlimServer to perform this sample conversion?

My motivation is to maintain full signal resolution in conjunction with digital volume control. I use Telcanto running on a PDA as a remote control which provides portable control of the SlimServer.

seanadams
2005-04-26, 08:32
This is already how it's done.

On Apr 26, 2005, at 8:09 AM, jhenderson010759 wrote:

>
> Is there any means by which the data samples sent to the Squeezebox 1
> or
> Squeezebox 2 can be up-sampled to 24-bits, prior to implementing volume
> control?
>

jhenderson010759
2005-04-26, 15:57
Sean -

Is this how it is implemented on SB1 as well as SB2, or is only SB2 implemented this way?

Also, on the systems that are implemented in this fashion, are the SP/DIF data samples which are sent over TosLink/Coax 24-bit words, or is it truncated to 16-bits after the volume scaling operation is performed? I would imagine that the format would remain 24-bits, but you may have chosen to converted it to 16-bit words, so that it would be compatible with 16-bit external DAC devices.

seanadams
2005-04-26, 20:09
>
> Is this how it is implemented on SB1 as well as SB2, or is only SB2
> implemented this way?

Both - SB1 is 20-bit and SB2 is 24-bit output. This applies to both the
DAC and the S/PDIF outputs.

> I would imagine that the format would remain 24-bits, but
> you may have chosen to converted it to 16-bit words, so that it would
> be compatible with 16-bit external DAC devices.

We output all the bits. I've never heard of an s/pdif receiver that
would barf on more than 16 bits - they'd just ignore the least
significant bits, since the data is MSB-justified.