Hi,

I am working on an arm64-based, squeezebox touch-like system.

The system plays through a USB DAC  (C_MEDIA 6632A) using
squeezelite.

The results vary depending on how I start up the system:

If I connect and power on the DAC first, then the squeezebox system, I
get this:

1. The DAC is picked up as soon as usb starts and can be listed using
lsusb and aplay -l
2. As soon as the init process starts ALSA, the DAC plays white noise
until squeezelite starts. Squeezelite is set up to play through "Direct
hardware device without any conversion".
3. When squeezelite has started the DAC is silent and plays music very
nicely (no pops, clicks or XRUN's).

If I start the squeezelite system before powering on the DAC:

1. usb starts without finding the DAC (not surprising)
2. alsa starts with no soundcards (as I have removed all other driver
modules except for snd_usb_audio from the kernel)
3. squeezelite also fails to start as the configured soundcard is
missing (also not surprising)
BUT
4. if I then plug or start the DAC, it is still not registered (dmesg
shows nothing and lsusb still doesn't list it).  This persists even
through a cold reboot of the system. Nothing found.  The only way I have
found to make the DAC discoverable again is to plug it into a different
system.   If I do that, then procedure one works as expected.

Obviously, in a real-life system, we have to handle starting components
in different orders.

The same DAC connected to a squeezebox touch plays no white noise on
startup and can be turned on or connected beofore or after the touch,
without problems. SO


1. How can I start the system/ALSA making sure that the DAC is silent (I
have heard that this may have to do with dither, which produces white
noise on non-zero silent streams, but which also reduces distortion 
when playing audio - something I obvioulsy want).

2. What can I do to force discovery of the DAC even when it is
hotplugged?  I don't understand why the DAC should remain invisible also
when cold rebooting the system. Can anyone offer an explanation?
If I can work out what's going on , then it should be possible to catch
it and script a workaround.

Very glad for any advice.

BR.

--Marius--


------------------------------------------------------------------------
Learnincurve's Profile: http://forums.slimdevices.com/member.php?userid=64807
View this thread: http://forums.slimdevices.com/showthread.php?t=107082

_______________________________________________
unix mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/unix

Reply via email to