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@suse.de 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@superlative.org 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@nostatic.org
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@superlative.org>
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@nostatic.org 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@superlative.org>
wrote:
> On Wed, 14 Oct 2020 at 17:12, Mike Oliphant <oliphant@nostatic.org
> 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