* Pioneer DJ DDJ-SR2 sound degradation @ 2021-03-18 22:41 Geraldo 2021-03-21 4:31 ` Geraldo 0 siblings, 1 reply; 4+ messages in thread From: Geraldo @ 2021-03-18 22:41 UTC (permalink / raw) To: alsa-devel Hi everyone, I'm running stable kernel 5.11.6 together with my Pioneer DJ DDJ-SR2 and JACK. Mixxx is running on top of JACK. After I start JACK I have about 40 minutes of good sound quality from the inputs. After this period the sound will begin to degrade slowly until it is almost pure distortion. The issue is gone if I restart the JACK server, no need to reboot the hardware. The description I gave above sounds a lot like soundcard clock drift (which happens to those using more than one soundcard. You know) which motivates me to believe we missed a bug somewhere around the recent changes introduced in implicit feedback sync for Pioneer devices Dyndbg shows nothing useful I guess. No xruns reported. I've recorded a 1KHz tone and after 50+ minutes the sound degradation kicks in. Only problem is even after cutting and encoding to mp3 128kbps it's still a 10 megabytes file. I suppose I could post it to Soundcloud or Mixcloud if anyone is interested. Is anyone else experiencing these symptoms with Pioneer hardware? Note that the sound degradation kicks in after about an hour, more or less, and it's for the inputs only. Outputs continue to operate fine without the need to restart the JACK server every hour. Thanks everybody, Geraldo ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Pioneer DJ DDJ-SR2 sound degradation 2021-03-18 22:41 Pioneer DJ DDJ-SR2 sound degradation Geraldo @ 2021-03-21 4:31 ` Geraldo 2021-03-21 8:22 ` Takashi Iwai 0 siblings, 1 reply; 4+ messages in thread From: Geraldo @ 2021-03-21 4:31 UTC (permalink / raw) To: alsa-devel Until we manage to engage implicit feedback sync for Pioneer gear I'm afraid the clock will drift on DUPLEX mode. I reread the Pioneer related source code and implicit feedback sync was disabled because it gave Incompatible EP Setup messages. I should know, I was a reporter on that regression. Only those messages are fake. They arise because our ALSA code it's not honoring .ep_attr on quirks-table.h specifically in regards to USB_ENDPOINT_USAGE_IMPLICIT_FB. In fact the new improved implicit feedback sync code inside pcm.c that sets sync upon probe is failing to set implicit_fb to 1. I commented the conditional for testing and I told endpoint_compatible to always return true. Voilà, JACK started in duplex mode without nasty Incompatible EP Setup problems and supposedly with implicit feedback sync on. We are not setting bits 5..7 of bmAttributes, at least that's what I get from the missing Usage field in lsusb. My JACK transport has been rolling for 17 minutes and if it goes for two complete hours without distortion passing-thru vinyl on Mixxxx I'll provide the list with a more elegant PATCH and not this gambiarra as we say on Brazil. Hopefully their will be implicit feedback sync for Pioneer :-) On Thu, Mar 18, 2021 at 7:41 PM Geraldo <geraldogabriel@gmail.com> wrote: > > Hi everyone, > > I'm running stable kernel 5.11.6 together with my Pioneer DJ DDJ-SR2 and JACK. Mixxx is running on top of JACK. > > > After I start JACK I have about 40 minutes of good sound quality from the inputs. After this period the sound will begin to degrade slowly until it is almost pure distortion. > > The issue is gone if I restart the JACK server, no need to reboot the hardware. The description I gave above sounds a lot like soundcard clock drift (which happens to those using more than one soundcard. You know) which motivates me to believe we missed a bug somewhere around the recent changes introduced in implicit feedback sync for Pioneer devices > > Dyndbg shows nothing useful I guess. No xruns reported. > > I've recorded a 1KHz tone and after 50+ minutes the sound degradation kicks in. Only problem is even after cutting and encoding to mp3 128kbps it's still a 10 megabytes file. I suppose I could post it to Soundcloud or Mixcloud if anyone is interested. > > Is anyone else experiencing these symptoms with Pioneer hardware? Note that the sound degradation kicks in after about an hour, more or less, and it's for the inputs only. Outputs continue to operate fine without the need to restart the JACK server every hour. > > Thanks everybody, > Geraldo ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Pioneer DJ DDJ-SR2 sound degradation 2021-03-21 4:31 ` Geraldo @ 2021-03-21 8:22 ` Takashi Iwai [not found] ` <CAEsQvcuS84fUoaCxsoixCPH7F-XGxbpK067-rxVA+EMDr2KAGg@mail.gmail.com> 0 siblings, 1 reply; 4+ messages in thread From: Takashi Iwai @ 2021-03-21 8:22 UTC (permalink / raw) To: Geraldo; +Cc: alsa-devel On Sun, 21 Mar 2021 05:31:11 +0100, Geraldo wrote: > > Until we manage to engage implicit feedback sync for Pioneer gear I'm > afraid the clock will drift on DUPLEX mode. > > I reread the Pioneer related source code and implicit feedback sync was > disabled because it gave Incompatible EP Setup messages. I should know, I > was a reporter on that regression. > > Only those messages are fake. They arise because our ALSA code it's not > honoring .ep_attr on quirks-table.h specifically in regards to > USB_ENDPOINT_USAGE_IMPLICIT_FB. That's right. The parser reads from the original descriptor, not the one from the quirk table. That is, the implicit fb quirk has to be declared explicitly in another quirk table. And, the implicit fb is skipped for those devices because they didn't work; see sound/usb/implicit.c. > In fact the new improved implicit feedback sync code inside pcm.c that sets > sync upon probe is failing to set implicit_fb to 1. I commented the > conditional for testing and I told endpoint_compatible to always return > true. > > Voilà, JACK started in duplex mode without nasty Incompatible EP Setup > problems and supposedly with implicit feedback sync on. We are not setting > bits 5..7 of bmAttributes, at least that's what I get from the missing > Usage field in lsusb. > > My JACK transport has been rolling for 17 minutes and if it goes for two > complete hours without distortion passing-thru vinyl on Mixxxx I'll provide > the list with a more elegant PATCH and not this gambiarra as we say on > Brazil. > > Hopefully their will be implicit feedback sync for Pioneer :-) I know there are quite a few users with Pioneer devices around here, so let's hope that they can test the implicit feedback things and find the culprit of the buggy behavior. Unfortunately it's quite hard to debug such a thing remotely without the hardware from my side. Takashi > > > On Thu, Mar 18, 2021 at 7:41 PM Geraldo <geraldogabriel@gmail.com> wrote: > > > > Hi everyone, > > > > I'm running stable kernel 5.11.6 together with my Pioneer DJ DDJ-SR2 and > JACK. Mixxx is running on top of JACK. > > > > > > After I start JACK I have about 40 minutes of good sound quality from the > inputs. After this period the sound will begin to degrade slowly until it > is almost pure distortion. > > > > The issue is gone if I restart the JACK server, no need to reboot the > hardware. The description I gave above sounds a lot like soundcard clock > drift (which happens to those using more than one soundcard. You know) > which motivates me to believe we missed a bug somewhere around the recent > changes introduced in implicit feedback sync for Pioneer devices > > > > Dyndbg shows nothing useful I guess. No xruns reported. > > > > I've recorded a 1KHz tone and after 50+ minutes the sound degradation > kicks in. Only problem is even after cutting and encoding to mp3 128kbps > it's still a 10 megabytes file. I suppose I could post it to Soundcloud or > Mixcloud if anyone is interested. > > > > Is anyone else experiencing these symptoms with Pioneer hardware? Note > that the sound degradation kicks in after about an hour, more or less, and > it's for the inputs only. Outputs continue to operate fine without the need > to restart the JACK server every hour. > > > > Thanks everybody, > > Geraldo > ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <CAEsQvcuS84fUoaCxsoixCPH7F-XGxbpK067-rxVA+EMDr2KAGg@mail.gmail.com>]
* Fwd: Pioneer DJ DDJ-SR2 sound degradation [not found] ` <CAEsQvcuS84fUoaCxsoixCPH7F-XGxbpK067-rxVA+EMDr2KAGg@mail.gmail.com> @ 2021-03-21 15:47 ` Geraldo 0 siblings, 0 replies; 4+ messages in thread From: Geraldo @ 2021-03-21 15:47 UTC (permalink / raw) To: alsa-devel Good news: my JACK transport has been rolling for more than 2 hours without sound degradation. I'll leave it overnight just to be sure sound degradation has been fixed and not just postponed. But yes, I think I managed to engage implicit feedback sync for the playback on my Pioneer DJ DDJ-SR2. Dr. Iwai, my initial assesment was ALSA not honoring .ep_attr on quirks-table.h was the culprit for the Incompatible EP Setup messages. Turns out that for implicit feedback sync the EP is opened twice, and the ep->opened refcount prevents that. Once I commented out ep->opened++; inside snd_usb_endpoint_open on endpoint.c the kernel was able to open the EP twice(one time for data, second time for sync). I could use some help in coding an elegant way of going around the ep->opened refcount instead of simpy disabling it! Once that particular problem is sorted out I'll be able to provide a proper PATCH for all users of Pioneer gear to test implicit feedback sync. Here's the relevant dyndbg info for the success case: [35084.131891] usb 3-2: 0:1: added playback implicit_fb sync_ep 82, iface 0:1 [35084.131905] usb 3-2: Creating new data endpoint #1 [35084.131911] usb 3-2: Creating new data endpoint #82 [35084.131917] xhci_hcd 0000:00:14.0: xhci_check_bandwidth called for udev 0000000052e95692 [35084.132102] usb 3-2: 0:1 Set sample rate 44100, clock 0 [35084.132116] xhci_hcd 0000:00:14.0: xhci_check_bandwidth called for udev 0000000052e95692 [35084.132163] usb 3-2: 0:1 Set sample rate 44100, clock 0 [35084.132592] usbcore: registered new interface driver snd-usb-audio [35096.805245] usb 3-2: Open EP 0x82, iface=0:1, idx=1 [35096.805254] usb 3-2: channels=6, rate=44100, format=S24_3LE, period_bytes=9216, periods=2, implicit_fb=0 [35096.805259] usb 3-2: Setting usb interface 0:0 for EP 0x82 [35096.805264] xhci_hcd 0000:00:14.0: xhci_check_bandwidth called for udev 0000000052e95692 [35096.805475] usb 3-2: Setting usb interface 0:1 for EP 0x82 [35096.805486] xhci_hcd 0000:00:14.0: add ep 0x1, slot id 32, new drop flags = 0x0, new add flags = 0x5 [35096.805492] xhci_hcd 0000:00:14.0: add ep 0x82, slot id 32, new drop flags = 0x0, new add flags = 0x25 [35096.805495] xhci_hcd 0000:00:14.0: xhci_check_bandwidth called for udev 0000000052e95692 [35096.805499] xhci_hcd 0000:00:14.0: Adding 2 ep ctxs, 6 now active. [35096.805503] xhci_hcd 0000:00:14.0: Recalculating BW for rootport 2 [35096.805505] xhci_hcd 0000:00:14.0: Final bandwidth: 282, Limit: 1607, Reserved: 322, Available: 62 percent [35096.805510] xhci_hcd 0000:00:14.0: // Ding dong! [35096.805652] xhci_hcd 0000:00:14.0: Successful Endpoint Configure command [35096.805895] usb 3-2: 0:1 Set sample rate 44100, clock 0 [35096.805902] usb 3-2: Setting params for data EP 0x82, pipe 0x14180 [35096.805910] usb 3-2: Set up 12 URBS, ret=0 [35096.805996] usb 3-2: Open EP 0x1, iface=0:1, idx=0 [35096.806000] usb 3-2: channels=4, rate=44100, format=S24_3LE, period_bytes=6144, periods=2, implicit_fb=1 [35096.806003] usb 3-2: Open EP 0x82, iface=0:1, idx=1 [35096.806005] usb 3-2: channels=6, rate=44100, format=S24_3LE, period_bytes=9216, periods=2, implicit_fb=0 [35096.806008] usb 3-2: 0:1 Set sample rate 44100, clock 0 [35096.806011] usb 3-2: Setting params for data EP 0x1, pipe 0xc100 [35096.806018] usb 3-2: Set up 12 URBS, ret=0 [35096.806021] usb 3-2: 0:1 Set sample rate 44100, clock 0 [35096.806025] usb 3-2: Setting params for data EP 0x82, pipe 0x14180 [35096.806029] usb 3-2: Set up 12 URBS, ret=0 [35096.806048] usb 3-2: Starting data EP 0x1 (running 0) [35096.806051] usb 3-2: No URB submission due to implicit fb sync [35096.806053] usb 3-2: Starting data EP 0x82 (running 0) [35096.806076] usb 3-2: 12 URBs submitted for EP 0x82 [35096.807337] usb 3-2: Starting data EP 0x82 (running 1) [35096.807343] usb 3-2: 0:1 Start Capture PCM [35096.807346] usb 3-2: 0:1 Start Playback PCM On Sun, Mar 21, 2021 at 5:22 AM Takashi Iwai <tiwai@suse.de> wrote: > > On Sun, 21 Mar 2021 05:31:11 +0100, > Geraldo wrote: > > > > Until we manage to engage implicit feedback sync for Pioneer gear I'm > > afraid the clock will drift on DUPLEX mode. > > > > I reread the Pioneer related source code and implicit feedback sync was > > disabled because it gave Incompatible EP Setup messages. I should know, I > > was a reporter on that regression. > > > > Only those messages are fake. They arise because our ALSA code it's not > > honoring .ep_attr on quirks-table.h specifically in regards to > > USB_ENDPOINT_USAGE_IMPLICIT_FB. > > That's right. The parser reads from the original descriptor, not the > one from the quirk table. That is, the implicit fb quirk has to be > declared explicitly in another quirk table. And, the implicit fb is > skipped for those devices because they didn't work; see > sound/usb/implicit.c. > > > In fact the new improved implicit feedback sync code inside pcm.c that sets > > sync upon probe is failing to set implicit_fb to 1. I commented the > > conditional for testing and I told endpoint_compatible to always return > > true. > > > > Voilà, JACK started in duplex mode without nasty Incompatible EP Setup > > problems and supposedly with implicit feedback sync on. We are not setting > > bits 5..7 of bmAttributes, at least that's what I get from the missing > > Usage field in lsusb. > > > > My JACK transport has been rolling for 17 minutes and if it goes for two > > complete hours without distortion passing-thru vinyl on Mixxxx I'll provide > > the list with a more elegant PATCH and not this gambiarra as we say on > > Brazil. > > > > Hopefully their will be implicit feedback sync for Pioneer :-) > > I know there are quite a few users with Pioneer devices around here, > so let's hope that they can test the implicit feedback things and find > the culprit of the buggy behavior. Unfortunately it's quite hard to > debug such a thing remotely without the hardware from my side. > > > Takashi > > > > > > > > On Thu, Mar 18, 2021 at 7:41 PM Geraldo <geraldogabriel@gmail.com> wrote: > > > > > > Hi everyone, > > > > > > I'm running stable kernel 5.11.6 together with my Pioneer DJ DDJ-SR2 and > > JACK. Mixxx is running on top of JACK. > > > > > > > > > After I start JACK I have about 40 minutes of good sound quality from the > > inputs. After this period the sound will begin to degrade slowly until it > > is almost pure distortion. > > > > > > The issue is gone if I restart the JACK server, no need to reboot the > > hardware. The description I gave above sounds a lot like soundcard clock > > drift (which happens to those using more than one soundcard. You know) > > which motivates me to believe we missed a bug somewhere around the recent > > changes introduced in implicit feedback sync for Pioneer devices > > > > > > Dyndbg shows nothing useful I guess. No xruns reported. > > > > > > I've recorded a 1KHz tone and after 50+ minutes the sound degradation > > kicks in. Only problem is even after cutting and encoding to mp3 128kbps > > it's still a 10 megabytes file. I suppose I could post it to Soundcloud or > > Mixcloud if anyone is interested. > > > > > > Is anyone else experiencing these symptoms with Pioneer hardware? Note > > that the sound degradation kicks in after about an hour, more or less, and > > it's for the inputs only. Outputs continue to operate fine without the need > > to restart the JACK server every hour. > > > > > > Thanks everybody, > > > Geraldo > > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-03-21 15:52 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-03-18 22:41 Pioneer DJ DDJ-SR2 sound degradation Geraldo 2021-03-21 4:31 ` Geraldo 2021-03-21 8:22 ` Takashi Iwai [not found] ` <CAEsQvcuS84fUoaCxsoixCPH7F-XGxbpK067-rxVA+EMDr2KAGg@mail.gmail.com> 2021-03-21 15:47 ` Fwd: " Geraldo
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.