JohnSwenson wrote: > Another thing to think about is volume control. Currently we are > looking at 5 possible outputs, USB, S/PDIF coax, S/PDIF optical, line > level analog and headphone. There are going to be three dirvers > involved, USB, S/PDIF and analog. I'm not sure whether we are planning > on having these running at the same time or not, but at least > theoretically it's possible to have different volume on different > streams. In addition the DAC has a digitalvolume control and the > headphone amp has an analog volume control (digitally controled), so we > have a number of possible ways the "squeezebox volume" can be routed. > > For example a full volume stream can be sent to S/PDIF and analog and > the SB volume sent to the DAC chip, in which case both the line out and > headphone will track the volume and the S/PDIF stays at full level. Or > the full level stream can be sent to the DAC, which has no attenuation > and the SB volume gets sent to the headphone out. > > Triode is going to have to let us know whether Squeezelite can handle > output to more than one driver, and if so can they have different > volumes. In the Touch there was one stream sent to ALSA, an ALSA config > was used to clone the stream to two devices, this could certainly be > used in our system as well. > > With the hardware volume control in both the DAC chip and headphone amp > there is a fair amount of flexibility here. > > We have to determine whether we want different outputs at the same time, > and if so do we want different volumes for them, and to what level we > want to be able to address that. > > > Just some food for thought. > > John S.
I tend to think we should take the approach taken by touch. The hardware drivers should make the devices appear as standard alsa ports and then the playback application can act as a standard playback client which does the volume scaling/replaygain. I think we should use the alsa plug layer to do duplicating of the stream to multiple devices as this is already well known and well tested. Though as we found with EDO, I think there is a case for making this optional and actually preferring to select a single output from the application to be used at once, this allows use of direct alsa hw: devices with minimal buffer sizes possible (if you like that). I believe we should be able to have a GUI to allow output selection (possibly even reusing EDO applet!) if we have an HDMI output and perhaps can have a remote desktop virtual version of this as well (not sure yet). I'd prefer initially to use the volume control which is built into squeezelite, this scales using the squeezeplay logic and so should do the same thing a Touch does. I've not looked at whether alsa would give us access to any hardware volume as well, but it would need more device driver work to make use of it. I'd say this should be a second phase if we go there. ------------------------------------------------------------------------ Triode's Profile: http://forums.slimdevices.com/member.php?userid=17 View this thread: http://forums.slimdevices.com/showthread.php?t=97881 _______________________________________________ discuss mailing list [email protected] http://lists.slimdevices.com/mailman/listinfo/discuss
