Hi, On 09.09.2012 23:26, chris hermansen wrote: > I recently acquired a Schiit Bifrost and have been attempting to > achieve (what I would call) "bit perfect" performance with 16 and 24 > bit music files at 44.1, 96 and 192K over the USB interface. [...] > In all of these cases, I end up with results that appear to be the > same, or at least differ in ways indistinguishable to me. To > elaborate, if I play a 16bit/44.1K FLAC file, then switch to a 24 bit > and/or higher resolution file, the audio for the second file is > garbled in a very distinctive way - it sounds like it is being passed > through some sort of "distortion network". The basic nature of the > melody is apparent, but everything sounds really odd. If I stop the > second song and restart it, often on this second try it will play > fine. Sometimes I have to do this more than once to get it to play > fine. I have dealt with a number of USB audio interfaces lately that have similar problems under Linux. The reason, as far as I could track it down, is that these interfaces do not properly flush their feedback endpoint buffers when switching from one sample rate to another, which results in wrong data being sent after each stream start. The Linux driver has code for feedback format auto-detection which gets confused by that and assumes a different format, consequently sending data at a wrong rate. Some of these issues have been resolved by fixing the firmwares of affected devices, for others I just recently submitted a patch that makes the driver ignore the first n packets of a stream, to work around that hardware bug: https://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commit;h=2b58fd5b > If anyone has any suggestions, I am willing to experiment (carefully) > and document results. Yes, you could try building a kernel from git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git And add a quirk to sound/usb/quirks.c, in function snd_usb_endpoint_start_quirk(). Just add a check for your device's USB VID/PID and do the same "ep->skip_packets = 4" for the SYNC endpoint. If you're not sure what to do, send me the output of "lsusb -v" on your system and I'll provide a patch. Thanks, Daniel ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Alsa-user mailing list Alsa-user@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-user