Thanks for the input, Takashi - and I completely understand the difficulty in resolving problems for specific hardware that you don't have available. Mike On Thu, Oct 15, 2020 at 5:37 AM Takashi Iwai <tiwai@xxxxxxx> wrote: > On Wed, 14 Oct 2020 23:49:25 +0200, > Mike Oliphant wrote: > > > > Yeah, I think the work-around I found is just that - a solution that > works > > in my particular situation, but does not resolve what seems to be a > deeper > > issue with implicit feedback on these devices. > > > > I'd love to see a real fix, but I haven't had the time to dig more into > the > > code. It would be great to get some input from whoever wrote the implicit > > feedback system in the first place. > > The already-in-use error is a long-standing problem of implicit fb > implementations. Recently the support for full duplex was introduced > and should work in some level, but I'm afraid that it's not perfect. > In particular, it may still depend on the order of the device opens. > > Unfortunately I have no hardware to test that shows the behavior, so > it's a bit tough to debug from my side. > > > thanks, > > Takashi > > > > > > Mike > > > > On Wed, Oct 14, 2020 at 1:57 PM Keith Milner <maillist@xxxxxxxxxxxxxxx> > > wrote: > > > > > I thought I would re-try the change you made. When I tried this last > year > > > on my old laptop, I recall I couldn't get it working properly. > > > > > > This time around it works... sort of, but isn't without some > significant > > > issues for me. For a start, it only works in Jack. If I try to access > the > > > alsa device directly (for instance, using ALSA mode in Ardour or using > > > Audacity) it doesn't work. It also fills my dmesg with error messages: > > > > > > [ 184.089158] usb 1-4: Unable to change format on ep #8e: already in > use > > > [ 184.089232] usb 1-4: Unable to change format on ep #8e: already in > use > > > [ 184.089401] usb 1-4: Unable to change format on ep #8e: already in > use > > > [ 184.089619] usb 1-4: Unable to change format on ep #8e: already in > use > > > > > > So, unfortunately, whilst it seems like it's a tactical fix for some > > > situations, it seems to be broken in other ways. > > > > > > When I tried it on my GT-001 I got similar results, although only one > > > "Unable to change format on ep #8e: already in use" message this time > > > rather than the logs getting spammed. Interestingly, I got more xruns > with > > > this as well. > > > > > > Personally I'll be going back to how I had it before with the implicit > > > feedback disabled, as it's more reliable and functional for me, but > it's > > > clear this one isn't solved yet. > > > > > > Cheers, > > > > > > Keith > > > > > > On Wed, 14 Oct 2020 at 19:17, Mike Oliphant <oliphant@xxxxxxxxxxxx> > wrote: > > > > > >> That's also what I see from dmesg when I use the quirk device ID > patch. > > >> I'm pretty sure it means that implicit feedback is not being enabled > for > > >> your device. > > >> > > >> Since these devices are designed to work with implicit feedback, the > > >> ideal solution would be to have them work by using it, rather than > > >> disabling it. > > >> > > >> That said, patching the quirk code with the extra device IDs would > > >> make it so they at least produce output... > > >> > > >> The "fix" I'm currently using (linked to in my first response) makes > the > > >> implicit feedback code not wait to send data until it has received > some. It > > >> works perfectly for me, but success has been mixed for others so I > didn't > > >> feel comfortable submitting it as a patch. > > >> > > >> FYI, I did a little write-up here: > > >> > > >> > > >> > http://blog.nostatic.org/2020/01/getting-boss-gt-1-effects-processor-to.html > > >> > > >> It outlines my struggle with this issue - from trying the quirk ID > patch, > > >> to messing with the sample rate, and finally to modifying the implicit > > >> feedback behavior. > > >> > > >> Mike > > >> > > >> On Wed, Oct 14, 2020 at 10:23 AM Mailing Lists < > maillist@xxxxxxxxxxxxxxx> > > >> wrote: > > >> > > >>> Hi Mike, > > >>> I'm getting this: > > >>> > > >>> [Oct14 18:21] snd_usb_audio:set_format: usb 1-4: setting usb > interface > > >>> 1:1 > > >>> [ +0.000003] snd_usb_audio:snd_usb_add_endpoint: usb 1-4: Re-using > EP d > > >>> in iface 1,1 @00000000d0aa6911 > > >>> [ +0.000018] snd_usb_audio:snd_usb_endpoint_set_params: usb 1-4: > > >>> Setting params for ep #d (type 0, 3 urbs), ret=0 > > >>> [ +0.000002] snd_usb_audio:start_endpoints: usb 1-4: Starting data > EP > > >>> @00000000d0aa6911 > > >>> > > >>> Cheers, > > >>> > > >>> Keith > > >>> > > >>> On Wed, 14 Oct 2020 at 17:46, Mike Oliphant <oliphant@xxxxxxxxxxxx> > > >>> wrote: > > >>> > > >>>> Hi Keith, > > >>>> > > >>>> The lsusb output just shows that the endpoint is there, but not > that it > > >>>> is getting connected when the device is initialized. Can you check > dmesg > > >>>> output when you use the device for playback? > > >>>> > > >>>> This is what I see from dmesg when the implicit feedback endpoint is > > >>>> being used: > > >>>> > > >>>> [ 26.787360] usb 1-1.1: setting usb interface 1:1 > > >>>> [ 26.787367] Creating new playback data endpoint #d > > >>>> [ 26.787375] Creating new capture data endpoint #8e > > >>>> [ 26.787678] usb 1-1.1: Setting params for ep #d (type 0, 12 > urbs), > > >>>> ret=0 > > >>>> [ 26.787685] usb 1-1.1: match_endpoint_audioformats: (fmt > @6bc43c84) > > >>>> score 2 > > >>>> [ 26.787745] usb 1-1.1: Setting params for ep #8e (type 0, 12 > urbs), > > >>>> ret=0 > > >>>> [ 26.787751] usb 1-1.1: Starting data EP @a14130b5 > > >>>> [ 26.788420] usb 1-1.1: Starting sync EP @720fb7cf > > >>>> > > >>>> Note the "Starting sync EP". > > >>>> > > >>>> Mike > > >>>> > > >>>> On Wed, Oct 14, 2020 at 9:35 AM Mailing Lists < > maillist@xxxxxxxxxxxxxxx> > > >>>> wrote: > > >>>> > > >>>>> On Wed, 14 Oct 2020 at 17:12, Mike Oliphant <oliphant@xxxxxxxxxxxx > > > > >>>>> wrote: > > >>>>> > > >>>>>> Keith - are you getting an implicit feedback endpoint created when > > >>>>>> you run with the patch? > > >>>>>> > > >>>>> > > >>>>> Hi Mike, > > >>>>> > > >>>>> It appears that I do. For reference I'm on kernel 5.4.0-51: > > >>>>> > > >>>>> Bus 001 Device 007: ID 0582:01d6 Roland Corp. GT-1 > > >>>>> Device Descriptor: > > >>>>> bLength 18 > > >>>>> bDescriptorType 1 > > >>>>> bcdUSB 2.00 > > >>>>> bDeviceClass 255 Vendor Specific Class > > >>>>> bDeviceSubClass 0 > > >>>>> bDeviceProtocol 255 > > >>>>> bMaxPacketSize0 64 > > >>>>> idVendor 0x0582 Roland Corp. > > >>>>> idProduct 0x01d6 > > >>>>> bcdDevice 0.00 > > >>>>> iManufacturer 1 BOSS > > >>>>> iProduct 2 GT-1 > > >>>>> iSerial 0 > > >>>>> bNumConfigurations 1 > > >>>>> Configuration Descriptor: > > >>>>> bLength 9 > > >>>>> bDescriptorType 2 > > >>>>> wTotalLength 0x00bc > > >>>>> bNumInterfaces 4 > > >>>>> bConfigurationValue 1 > > >>>>> iConfiguration 0 > > >>>>> bmAttributes 0xc0 > > >>>>> Self Powered > > >>>>> MaxPower 0mA > > >>>>> Interface Descriptor: > > >>>>> bLength 9 > > >>>>> bDescriptorType 4 > > >>>>> bInterfaceNumber 0 > > >>>>> bAlternateSetting 0 > > >>>>> bNumEndpoints 0 > > >>>>> bInterfaceClass 255 Vendor Specific Class > > >>>>> bInterfaceSubClass 255 Vendor Specific Subclass > > >>>>> bInterfaceProtocol 0 > > >>>>> iInterface 0 > > >>>>> Interface Descriptor: > > >>>>> bLength 9 > > >>>>> bDescriptorType 4 > > >>>>> bInterfaceNumber 1 > > >>>>> bAlternateSetting 0 > > >>>>> bNumEndpoints 0 > > >>>>> bInterfaceClass 255 Vendor Specific Class > > >>>>> bInterfaceSubClass 2 > > >>>>> bInterfaceProtocol 2 > > >>>>> iInterface 0 > > >>>>> ** UNRECOGNIZED: 06 24 f1 01 00 00 > > >>>>> Interface Descriptor: > > >>>>> bLength 9 > > >>>>> bDescriptorType 4 > > >>>>> bInterfaceNumber 1 > > >>>>> bAlternateSetting 1 > > >>>>> bNumEndpoints 1 > > >>>>> bInterfaceClass 255 Vendor Specific Class > > >>>>> bInterfaceSubClass 2 > > >>>>> bInterfaceProtocol 2 > > >>>>> iInterface 0 > > >>>>> ** UNRECOGNIZED: 07 24 01 01 00 01 00 > > >>>>> ** UNRECOGNIZED: 0b 24 02 01 02 04 18 01 44 ac 00 > > >>>>> ** UNRECOGNIZED: 06 24 f1 04 16 00 > > >>>>> Endpoint Descriptor: > > >>>>> bLength 7 > > >>>>> bDescriptorType 5 > > >>>>> bEndpointAddress 0x0d EP 13 OUT > > >>>>> bmAttributes 5 > > >>>>> Transfer Type Isochronous > > >>>>> Synch Type Asynchronous > > >>>>> Usage Type Data > > >>>>> wMaxPacketSize 0x0038 1x 56 bytes > > >>>>> bInterval 1 > > >>>>> Interface Descriptor: > > >>>>> bLength 9 > > >>>>> bDescriptorType 4 > > >>>>> bInterfaceNumber 2 > > >>>>> bAlternateSetting 0 > > >>>>> bNumEndpoints 0 > > >>>>> bInterfaceClass 255 Vendor Specific Class > > >>>>> bInterfaceSubClass 2 > > >>>>> bInterfaceProtocol 1 > > >>>>> iInterface 0 > > >>>>> Interface Descriptor: > > >>>>> bLength 9 > > >>>>> bDescriptorType 4 > > >>>>> bInterfaceNumber 2 > > >>>>> bAlternateSetting 1 > > >>>>> bNumEndpoints 1 > > >>>>> bInterfaceClass 255 Vendor Specific Class > > >>>>> bInterfaceSubClass 2 > > >>>>> bInterfaceProtocol 1 > > >>>>> iInterface 0 > > >>>>> ** UNRECOGNIZED: 07 24 01 07 00 01 00 > > >>>>> ** UNRECOGNIZED: 0b 24 02 01 02 04 18 01 44 ac 00 > > >>>>> ** UNRECOGNIZED: 06 24 f1 04 16 00 > > >>>>> Endpoint Descriptor: > > >>>>> bLength 7 > > >>>>> bDescriptorType 5 > > >>>>> bEndpointAddress 0x8e EP 14 IN > > >>>>> bmAttributes 37 > > >>>>> Transfer Type Isochronous > > >>>>> Synch Type Asynchronous > > >>>>> Usage Type Implicit feedback Data > > >>>>> wMaxPacketSize 0x0038 1x 56 bytes > > >>>>> bInterval 1 > > >>>>> Interface Descriptor: > > >>>>> bLength 9 > > >>>>> bDescriptorType 4 > > >>>>> bInterfaceNumber 3 > > >>>>> bAlternateSetting 0 > > >>>>> bNumEndpoints 2 > > >>>>> bInterfaceClass 255 Vendor Specific Class > > >>>>> bInterfaceSubClass 3 > > >>>>> bInterfaceProtocol 0 > > >>>>> iInterface 0 > > >>>>> ** UNRECOGNIZED: 06 24 f1 02 01 01 > > >>>>> Endpoint Descriptor: > > >>>>> bLength 7 > > >>>>> bDescriptorType 5 > > >>>>> bEndpointAddress 0x03 EP 3 OUT > > >>>>> bmAttributes 2 > > >>>>> Transfer Type Bulk > > >>>>> Synch Type None > > >>>>> Usage Type Data > > >>>>> wMaxPacketSize 0x0200 1x 512 bytes > > >>>>> bInterval 1 > > >>>>> Endpoint Descriptor: > > >>>>> bLength 7 > > >>>>> bDescriptorType 5 > > >>>>> bEndpointAddress 0x84 EP 4 IN > > >>>>> bmAttributes 2 > > >>>>> Transfer Type Bulk > > >>>>> Synch Type None > > >>>>> Usage Type Data > > >>>>> wMaxPacketSize 0x0200 1x 512 bytes > > >>>>> bInterval 0 > > >>>>> Interface Descriptor: > > >>>>> bLength 9 > > >>>>> bDescriptorType 4 > > >>>>> bInterfaceNumber 3 > > >>>>> bAlternateSetting 1 > > >>>>> bNumEndpoints 2 > > >>>>> bInterfaceClass 255 Vendor Specific Class > > >>>>> bInterfaceSubClass 3 > > >>>>> bInterfaceProtocol 0 > > >>>>> iInterface 0 > > >>>>> Endpoint Descriptor: > > >>>>> bLength 7 > > >>>>> bDescriptorType 5 > > >>>>> bEndpointAddress 0x03 EP 3 OUT > > >>>>> bmAttributes 3 > > >>>>> Transfer Type Interrupt > > >>>>> Synch Type None > > >>>>> Usage Type Data > > >>>>> wMaxPacketSize 0x0200 1x 512 bytes > > >>>>> bInterval 4 > > >>>>> Endpoint Descriptor: > > >>>>> bLength 7 > > >>>>> bDescriptorType 5 > > >>>>> bEndpointAddress 0x85 EP 5 IN > > >>>>> bmAttributes 3 > > >>>>> Transfer Type Interrupt > > >>>>> Synch Type None > > >>>>> Usage Type Data > > >>>>> wMaxPacketSize 0x0200 1x 512 bytes > > >>>>> bInterval 4 > > >>>>> Device Qualifier (for other device speed): > > >>>>> bLength 10 > > >>>>> bDescriptorType 6 > > >>>>> bcdUSB 2.00 > > >>>>> bDeviceClass 255 Vendor Specific Class > > >>>>> bDeviceSubClass 0 > > >>>>> bDeviceProtocol 255 > > >>>>> bMaxPacketSize0 64 > > >>>>> bNumConfigurations 1 > > >>>>> can't get debug descriptor: Resource temporarily unavailable > > >>>>> Device Status: 0x0001 > > >>>>> Self Powered > > >>>>> > > >>>>> > > >>>>> -- > > >>>>> Keith A Milner > > >>>>> > > >>>> > > >>> > > >>> -- > > >>> -- > > >>> Keith A Milner > > >>> > > >> > > > > > > -- > > > -- > > > Keith A Milner > > > > > >