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--
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--