This has been the subject of many debates over the years (I went back
only to 2019), but only now it became relevant to me. I wasn’t paying
much attention to the datails at the time, but since all the people
involved in those conversations seemed happy with the arrived at
solution, I assumed that it was a good one. But now, after a couple of
exchanges with ‘Sam F.’ in the “Denon AVP Control Plugin” thread, I
realized that:

a) My settings for the players I have were not optimally correct, and
b) The way Material Skin (MS) treats the correct for such players
settings needs to be (still) changed.

The bottom line is that MS, as a controlling interface, should not be
concerned which down-stream device responds to a command, or how, it
should just send that command, which, BTW, is what the Classic skin
does. Craig had it right in 'this'
(https://forums.slimdevices.com/showthread.php?109624-Announce-Material-Skin&p=1003564&viewfull=1#post1003564)
post.

The setting in question is “Volume Control” (in
Player-settings->Advanced->Audio), and the type of player that is not
being served well with current approach in MS is software player, like
‘squeezelite’, running on, as it’s common, RPi hardware, or any device
that has its own built-in pre-amplifier.
Let’s consider. The RPi can be, at minimum, represented functionally as
a pre-amp, and when plugged into a standalone amplifier through its RCA
(analog) out, the resulting audio path would look like this:

[Squeezelite]->[(RPi)pre-amp]->[amplifier]->[speakers]

In such a case, the proper setting for the player Volume Control would
be, “Volume controls adjust outputs”, i.e., the signal level sent to the
[amplifier] would be controlled by the [(RPi)pre-amp] part of the audio
path. There's one more thing to understand; the volume is (in this case)
controlled in analog domain, i.e., the DAC (digital to analog converter)
in the RPi converts the signal from digital domain to analog, and then
passes the analog output to the pre-amp for control.

Another variant of the above to consider is when the RPi is plugged into
a receiver type of device, i.e., an integrated device that combines
both, a pre-amp, and an amplifier. In this case the audio path would
look like this:

Squeezelite->[(RPi)pre-amp]->[(receiver)pre-amp->(receiver)amp]->speakers

In such a case, the proper setting for the player Volume Control would
be, “Output Level is fixed at 100%”, i.e., the signal level sent to the
[(receiver)amplifier] would be controlled by the [(receiver)pre-amp],
and not by the [(RPi)pre-amp]. The “Output Level is fixed at 100%”
setting really means *bypass* the [(RPi)pre-amp] part of the audio path,
and what that ultimately means, is that the signal from the DAC is
passed directly to the [(receiver)pre-amp], which then regulates the
signal level that is then passed to the [(receiver)amplifier].

The audio path in the above examples is all in the analog domain after
the initial conversion from digital in the RPi’s DAC, but even there,
having two low-level devices (pre-amps) affecting the signal is not
desirable because of the accumulation of noise. Things get really bad
fast should the RPis in the above examples be connected through a
digital interface to a receiver AND the setting for the Volume Control
be set to “Volume controls adjust outputs”. Since controlling volume
happens in the analog domain, the signal would be first converted into
analog in the RPi’s DAC, then volume is adjusted in the [(RPi)pre-amp],
THEN re-digitized for transport to the [receiver], which then converts
that digital signal into analog again before the final amplification
stage. Now in addition to two pre-amps in the signal path, there would
be accumulation of digital conversion artifacts, and that's very
undesireundesirable.

So, suggestions:

1 – To clarify the functional meaning of the player Volume Control
setting, rename the options for its dropdown;
        a) from “Volume controls adjust outputs” to “is by Player”
        b) from “Output Level is fixed at 100%” to “is by Receiver”,

or something to that effect, and

2 – MS should not second guess how, and which of the down-stream devices
choose to respond to volume commands. It’s simply not for it to know, or
be concerned about.


------------------------------------------------------------------------
MarSOnEarth's Profile: http://forums.slimdevices.com/member.php?userid=69826
View this thread: http://forums.slimdevices.com/showthread.php?t=109624

_______________________________________________
plugins mailing list
plugins@lists.slimdevices.com
http://lists.slimdevices.com/mailman/listinfo/plugins

Reply via email to