From owner-freebsd-usb@freebsd.org Sun Oct 8 21:47:07 2017 Return-Path: Delivered-To: freebsd-usb@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6C33AE40E0A for ; Sun, 8 Oct 2017 21:47:07 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [IPv6:2a01:4f8:c17:6c4b::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DAB5D7460D for ; Sun, 8 Oct 2017 21:47:06 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.home.selasky.org (unknown [62.141.128.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id A0CE5260342; Sun, 8 Oct 2017 23:47:04 +0200 (CEST) Subject: Re: uaudio - distorted output To: Alexander Leidinger Cc: freebsd-usb@freebsd.org References: <20171008125631.Horde.ZsqSFDr1-uiT1YrkgH5i0tF@webmail.leidinger.net> <633f23dd-3b61-fe17-b894-6b1221a5dfd4@selasky.org> <20171008142514.Horde.hRkzth4Ur4wvjgUIlWuc70c@webmail.leidinger.net> <21e04dc4-045d-fb30-337a-7f7bd4fe8b50@selasky.org> <20171008230836.Horde.gG7VyE_62V3bMJX_VtbUrAP@webmail.leidinger.net> From: Hans Petter Selasky Message-ID: <85f5fd9a-2a58-9f5d-6796-716aae617274@selasky.org> Date: Sun, 8 Oct 2017 23:44:27 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <20171008230836.Horde.gG7VyE_62V3bMJX_VtbUrAP@webmail.leidinger.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Oct 2017 21:47:07 -0000 On 10/08/17 23:08, Alexander Leidinger wrote: > > Quoting Hans Petter Selasky (from Sun, 8 Oct 2017 > 17:28:25 +0200): > >> On 10/08/17 14:25, Alexander Leidinger wrote: >>> >>> Quoting Hans Petter Selasky (from Sun, 8 Oct 2017 >>> 13:19:19 +0200): >>> >>>> On 10/08/17 12:56, Alexander Leidinger wrote: >>>>> >>>>> Hi, >>>>> >>>>> attached are the config descriptors and the device dump of two >>>>> uaudio devices. Both exhibit distorted audio output. It sounds a >>>>> little bit like clipping / not feeding enough samples fast enough... >>>>> >>>>> I played around with dev.pcm.2.bitperfect=1, >>>>> dev.pcm.2.play.vchans=0, dev.pcm.2.play.vchanrate and >>>>> hw.snd.latency=1...10. >>>>> >>>>> At some point vchanrate doesn't work anymore, it always stays at >>>>> 4.0 audio, even when trying to go back to 2.0. I have to usbconfig >>>>> reset the device. >>>>> >>>>> Sometimes (rarely) when playing around I get clear audio output, >>>>> but when I try to reproduce it (going back to default value for the >>>>> last sysctl setting and then going back again to the same setting >>>>> again), the audio is distorted again. >>>>> >>>>> To me it sounds like some kind of buffer is not big enough or the >>>>> data is not delivered fast enough to the uaudio device. But this is >>>>> a dual-socket system with: >>>>>     CPU: Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz >>>>> (2133.36-MHz K8-class CPU) >>>>>     FreeBSD/SMP: Multiprocessor System Detected: 16 CPUs >>>>>     FreeBSD/SMP: 2 package(s) x 4 core(s) x 2 hardware threads >>>>> And while playing around with uaudio the system has a load of >>>>> around 1, so I would expect CPU/RAM is not an issue here. >>>> >>>> Hi, >>>> >>>> What version of FreeBSD is this? >>> >>> current as of r323636 >>> >>>> Try to enable hw.usb.uaudio.debug=16 during playback. >>> >>> No such sysctl, only hw.usb.debug.... >>> I did the hw.usb.debug=16, but no output in dmesg nor >>> /var/log/console.log nor /var/log/messages, where do I need to look? >>> >>> Bye, >>> Alexander. >>> >> >> Can you compile and install snd_uaudio module with >> DEBUG_FLAGS="-DUSB_DEBUG" and KMODDIR=/boot/kernel ? > > Occasionally I get this while playing: > ---snip--- > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: short transfer, 3680 of 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: short transfer, 3360 of 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: short transfer, 4224 of 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: short transfer, 4096 of 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > uaudio_chan_play_callback: transferring 4608 bytes > ---snip--- > > The first number on the short transfer varies: > ---snip--- > # dmesg |grep "transferring 4608 bytes" | wc -l >     2738 > > # dmesg |grep "short transfer" | wc -l >      124 > > # dmesg |grep "short transfer" | sort | uniq -c >    1 uaudio_chan_play_callback: short transfer, 2176 of 4608 bytes >    1 uaudio_chan_play_callback: short transfer, 2528 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 2624 of 4608 bytes >    1 uaudio_chan_play_callback: short transfer, 2848 of 4608 bytes >    1 uaudio_chan_play_callback: short transfer, 2976 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 3008 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 3040 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 3104 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 3136 of 4608 bytes >    1 uaudio_chan_play_callback: short transfer, 3168 of 4608 bytes >    1 uaudio_chan_play_callback: short transfer, 3264 of 4608 bytes >    1 uaudio_chan_play_callback: short transfer, 3296 of 4608 bytes >    1 uaudio_chan_play_callback: short transfer, 3328 of 4608 bytes >    4 uaudio_chan_play_callback: short transfer, 3360 of 4608 bytes >    1 uaudio_chan_play_callback: short transfer, 3424 of 4608 bytes >    1 uaudio_chan_play_callback: short transfer, 3456 of 4608 bytes >    1 uaudio_chan_play_callback: short transfer, 3520 of 4608 bytes >    4 uaudio_chan_play_callback: short transfer, 3552 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 3584 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 3616 of 4608 bytes >    4 uaudio_chan_play_callback: short transfer, 3648 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 3680 of 4608 bytes >    1 uaudio_chan_play_callback: short transfer, 3712 of 4608 bytes >    1 uaudio_chan_play_callback: short transfer, 3744 of 4608 bytes >    4 uaudio_chan_play_callback: short transfer, 3776 of 4608 bytes >    1 uaudio_chan_play_callback: short transfer, 3808 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 3872 of 4608 bytes >    3 uaudio_chan_play_callback: short transfer, 3904 of 4608 bytes >    3 uaudio_chan_play_callback: short transfer, 3936 of 4608 bytes >    1 uaudio_chan_play_callback: short transfer, 3968 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 4032 of 4608 bytes >   28 uaudio_chan_play_callback: short transfer, 4096 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 4128 of 4608 bytes >    5 uaudio_chan_play_callback: short transfer, 4160 of 4608 bytes >    8 uaudio_chan_play_callback: short transfer, 4192 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 4224 of 4608 bytes >    3 uaudio_chan_play_callback: short transfer, 4256 of 4608 bytes >    5 uaudio_chan_play_callback: short transfer, 4288 of 4608 bytes >    3 uaudio_chan_play_callback: short transfer, 4320 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 4352 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 4416 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 4448 of 4608 bytes >    3 uaudio_chan_play_callback: short transfer, 4480 of 4608 bytes >    2 uaudio_chan_play_callback: short transfer, 4544 of 4608 bytes > ---snip--- > > Bye, > Alexander. > Can you trace that with: usbdump -i usbusX -f Y -v ? What rates are supported. Can you try 48000 Hz? --HPS