All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Oliphant <oliphant@nostatic.org>
To: Lucas <jaffa225man@gmail.com>
Cc: alsa-devel@alsa-project.org,
	Geraldo Nascimento <geraldogabriel@gmail.com>
Subject: Re: Implicit feedback on BOSS GT-1, the saga continues...
Date: Sun, 11 Apr 2021 12:46:05 -0700	[thread overview]
Message-ID: <CAHXb3bcAR9RxwUJ+T9sMX4UdS3tXLZV-kWwHbbawW0ANUx2cGw@mail.gmail.com> (raw)
In-Reply-To: <CAOsVg8rD==rjuVU0MR8rkp4VQi_6=UfO16huhsZx4-hM-su1xA@mail.gmail.com>

Hi Lucas - it is very useful to have the results from those other
interfaces. Takashi has been working on a patch that handles my endpoint
fix using a flag set during endpoint configuration. Right now it is only
enabled for the BOSS devices, but It will be very easy for you to add your
extra working Roland devices.

Mike

On Sun, Apr 11, 2021 at 12:25 AM Lucas <jaffa225man@gmail.com> wrote:

> Here's my interesting, slightly-surprising results, but first the test
> criteria:
>
> I enabled the playback quirk table line as "IMPLICIT_FB_GENERIC_DEV" for
> each of these devices being tested, and changed endpoint.c's "if
> (snd_usb_endpoint_implicit_feedback_sink(ep))" to evaluate false for the
> Roland/BOSS vender ID of 0x0582 (with the vender matching method by
> Geraldo).
>
> EDIROL UA-4FX failed to capture, but plays well (only tested 48 kHz):
> arecord -D hw:UA4FX -f S24_3LE -r 48000 -c 2 ./file.wav
> Recording WAVE './test.wav' : Signed 24 bit Little Endian in 3bytes, Rate
> 48000 Hz, Stereo
> arecord: xrun:1672: read/write error, state = PREPARED
>
> aplay -D hw:UA4FX -f S24_3LE -r 48000 -c 2 ./other-file.wav
> Playing WAVE './other-file.wav' : Signed 24 bit Little Endian in 3bytes,
> Rate 48000 Hz, Stereo
>
>
> EDIROL UA-101 "full speed" USB 1.1 mode doesn't capture or play (only
> tested 48 kHz):
> arecord -D hw:UA101 -f S32_LE -r 48000 -c 2 ./file.wav
> arecord: main:830: audio open error: Connection timed out
>
> aplay -D plughw:UA101 -f S32_LE -r 48000 -c 2 ./other-file.wav
> aplay: main:830: audio open error: Connection timed out
>
>
> EDIROL UA-101 "high speed" USB 2 mode captures and plays well (only tested
> 48 kHz):
> arecord -D plughw:UA101 -f S32_LE -r 48000 -c 2 ./file.wav
> Recording WAVE './file.wav' : Signed 32 bit Little Endian, Rate 48000 Hz,
> Stereo
> ^CAborted by signal Interrupt...
>
> aplay -D plughw:UA101 -f S32_LE -r 48000 -c 2 ./file.wav
> Playing WAVE './file.wav' : Signed 32 bit Little Endian, Rate 48000 Hz,
> Stereo
>
>
> Roland R-26 captures and plays fine:
> arecord -D hw:R26AUDIO -f S32_LE -r 96000 -c 2 ./file.wav
> Recording WAVE './file.wav' : Signed 32 bit Little Endian, Rate 96000 Hz,
> Stereo
> ^CAborted by signal Interrupt...
>
> aplay -D hw:R26AUDIO -f S32_LE -r 96000 -c 2 ./file.wav
> Playing WAVE './file.wav' : Signed 32 bit Little Endian, Rate 96000 Hz,
> Stereo
>
>
> Roland INTEGRA-7 captures and plays well (playback at 96 kHz is new!)
> arecord -D hw:INTEGRA7 -f S32_LE -r 96000 -c 2 ./file.wav
> Recording WAVE './file.wav' : Signed 32 bit Little Endian, Rate 96000 Hz,
> Stereo
> ^CAborted by signal Interrupt...
>
> aplay -D hw:INTEGRA7 -f S32_LE -r 96000 -c 2 ./file.wav
> Playing WAVE './file.wav' : Signed 32 bit Little Endian, Rate 96000 Hz,
> Stereo
> (Wow, now audible at 96 kHz with this endpoint.c trick!)
>
> arecord -D hw:INTEGRA7 -f S32_LE -r 44100 -c 2 ./file.wav
> Recording WAVE './file.wav' : Signed 32 bit Little Endian, Rate 44100 Hz,
> Stereo
> ^CAborted by signal Interrupt...
>
> aplay -D hw:INTEGRA7 -f S32_LE -r 44100 -c 2 ./file.wav
> Playing WAVE './file.wav' : Signed 32 bit Little Endian, Rate 44100 Hz,
> Stereo
>
>
> Roland VG-99 doesn't capture, but plays well:
> arecord -D hw:VG99 -f S24_3LE -r 44100 -c 2 ./file.wav
> Recording WAVE './file.wav' : Signed 24 bit Little Endian in 3bytes, Rate
> 44100 Hz, Stereo
> arecord: xrun:1672: read/write error, state = PREPARED
>
> aplay -D hw:VG99 -f S24_3LE -r 44100 -c 2 ./other-file.wav
> Playing WAVE './other-file.wav' : Signed 24 bit Little Endian in 3bytes,
> Rate 44100 Hz, Stereo
>
>
> And, of course, you already know the Roland Boutique D-05 captures and
> finally plays back perfectly with this trick.
>
>
> Next, I'm going to use these findings to tailor the patch to only those
> devices benefiting from it.  I had already suspected the EDIROL UA-*
> devices didn't need this, but I was fairly sure they would still be
> compatible.  They aren't and neither is the VG-99.  Improvements are in the
> INTEGRA-7 (with it's playback mode of 96 kHz working crystal clearly) and
> Boutique D-05, but possibly also the R-26 (which I haven't noticed clock
> skew on either way)
>
> Thanks!
>
> Here's the patch used to test these, to reveal any accidentally left out
> details:
> diff -Nurp linux-5.11.9.orig/sound/usb/endpoint.c
> linux-5.11.9.roland-geraldo-nascimento/sound/usb/endpoint.c
> --- linux-5.11.9.orig/sound/usb/endpoint.c 2021-03-24 05:54:19.000000000
> -0500
> +++ linux-5.11.9.roland-geraldo-nascimento/sound/usb/endpoint.c 2021-04-10
> 00:14:30.836421501 -0500
> @@ -1343,6 +1343,7 @@ int snd_usb_endpoint_start(struct snd_us
>  {
>   int err;
>   unsigned int i;
> + bool skip_implicit_fb_urb_hold;
>
>   if (atomic_read(&ep->chip->shutdown))
>   return -EBADFD;
> @@ -1375,7 +1376,14 @@ int snd_usb_endpoint_start(struct snd_us
>   if (!ep_state_update(ep, EP_STATE_STOPPED, EP_STATE_RUNNING))
>   goto __error;
>
> - if (snd_usb_endpoint_implicit_feedback_sink(ep)) {
> + //if (snd_usb_endpoint_implicit_feedback_sink(ep)) {
> +        skip_implicit_fb_urb_hold = false;
> +
> +        if (USB_ID_VENDOR(ep->chip->usb_id) == 0x0582) // &&
> +        //   USB_ID_PRODUCT(ep->chip->usb_id) == 0x01ff)
> +               skip_implicit_fb_urb_hold = true;
> +
> +       if (snd_usb_endpoint_implicit_feedback_sink(ep) &&
> !skip_implicit_fb_urb_hold) {
>   for (i = 0; i < ep->nurbs; i++) {
>   struct snd_urb_ctx *ctx = ep->urb + i;
>   list_add_tail(&ctx->ready_list, &ep->ready_playback_urbs);
> diff -Nurp linux-5.11.9.orig/sound/usb/implicit.c
> linux-5.11.9.roland-geraldo-nascimento/sound/usb/implicit.c
> --- linux-5.11.9.orig/sound/usb/implicit.c 2021-04-01 20:55:06.079399075
> -0500
> +++ linux-5.11.9.roland-geraldo-nascimento/sound/usb/implicit.c 2021-04-10
> 00:22:41.942550829 -0500
> @@ -71,27 +71,155 @@ static const struct snd_usb_implicit_fb_
>    .ep_num = 0x84, .iface = 0 }, /* MOTU MicroBook II */
>
>   /* No quirk for playback but with capture quirk (see below) */
> - IMPLICIT_FB_SKIP_DEV(0x0582, 0x0130), /* BOSS BR-80 */
> - IMPLICIT_FB_SKIP_DEV(0x0582, 0x0171),   /* BOSS RC-505 */
> - IMPLICIT_FB_SKIP_DEV(0x0582, 0x0185), /* BOSS GP-10 */
> - IMPLICIT_FB_SKIP_DEV(0x0582, 0x0189), /* BOSS GT-100v2 */
> - IMPLICIT_FB_SKIP_DEV(0x0582, 0x01d6), /* BOSS GT-1 */
> - IMPLICIT_FB_SKIP_DEV(0x0582, 0x01d8), /* BOSS Katana */
> - IMPLICIT_FB_SKIP_DEV(0x0582, 0x01e5), /* BOSS GT-001 */
> - IMPLICIT_FB_SKIP_DEV(0x0582, 0x0203),   /* BOSS AD-10 */
> + IMPLICIT_FB_GENERIC_DEV(0x0582, 0x007d), /* Edirol UA-101 High Speed */
> + IMPLICIT_FB_GENERIC_DEV(0x0582, 0x008d), /* Edirol UA-101 Full Speed */
> + IMPLICIT_FB_GENERIC_DEV(0x0582, 0x00a3), /* Edirol UA-4FX */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00a6), /* Roland JUNO-G */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00a9), /* Roland MC-808 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00ad), /* Roland SH-201 */
> + IMPLICIT_FB_GENERIC_DEV(0x0582, 0x00b2), /* Roland VG-99 */
> + IMPLICIT_FB_GENERIC_DEV(0x0582, 0x00b3), /* Roland VG-99 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00c2), /* Roland SonicCell */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00c4), /* Edirol M-16DX */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00c5), /* Roland SP-555 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00c7), /* Roland V-Synth GT */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00d1), /* Roland Music Atelier */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00da), /* BOSS GT-10 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00db), /* BOSS GT-10 Guitar Effects
> Processor */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00dc), /* BOSS GT-10B */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00de), /* Roland Fantom-G */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00eb), /* Roland VS-100 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00f8), /* Roland JUNO Series */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00fc), /* Roland VS-700C */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00fd), /* Roland VS-700 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00fe), /* Roland VS-700 M1 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x00ff), /* Roland VS-700 M2 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0100), /* Roland VS-700 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0101), /* Roland VS-700 M2 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0102), /* Roland VB-99 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0109), /* BOSS eBand JS-8 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0111), /* Roland GAIA SH-01 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0113), /* BOSS ME-25 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0114), /* Roland SD-50 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0117), /* Roland VS-20 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0119), /* Roland OCTAPAD SPD-30 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x011c), /* Roland Lucina AX-09 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x011e), /* BOSS BR-800 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0120), /* Roland OCTA-CAPTURE */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0121), /* Roland OCTA-CAPTURE */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0123), /* Roland JUNO-Gi */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0124), /* Roland M-300 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0127), /* Roland GR-55 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x012b), /* Roland DUO-CAPTURE */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x012f), /* Roland QUAD-CAPTURE */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0130), /* BOSS BR-80 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0132), /* Roland TRI-CAPTURE */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0134), /* Roland V-Mixer */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0138), /* BOSS RC-300 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x013a), /* Roland JUPITER-80 */
> + IMPLICIT_FB_GENERIC_DEV(0x0582, 0x013e), /* Roland R-26 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0145), /* Roland SPD-SX */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x014b), /* BOSS eBand JS-10 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x014d), /* BOSS GT-100 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0150), /* Roland TD-15 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0151), /* Roland TD-11 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0154), /* Roland JUPITER-50 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0158), /* Roland TD-30 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0159), /* Roland DUO-CAPTURE EX */
> + IMPLICIT_FB_GENERIC_DEV(0x0582, 0x015b), /* Roland INTEGRA-7 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x015d), /* Roland R-88 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0171), /* BOSS RC-505 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x017a), /* Roland VT-3 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x017c), /* Roland TR-8 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0185), /* BOSS GP-10 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0189), /* BOSS GT-100v2 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x01b5), /* Roland Boutique Series
> Synthesizer */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x01d6), /* BOSS GT-1 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x01d8), /* BOSS Katana */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x01df), /* Roland Rubix22 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x01e0), /* Roland Rubix24 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x01e1), /* Roland Rubix44 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x01e5), /* BOSS GT-001 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x01fd), /* Roland Boutique SH-01A */
> + IMPLICIT_FB_GENERIC_DEV(0x0582, 0x01ff), /* Roland Boutique D-05 */
> + IMPLICIT_FB_SKIP_DEV(0x0582, 0x0203), /* BOSS AD-10 */
>
>   {} /* terminator */
>  };
>
>  /* Implicit feedback quirk table for capture: only FIXED type */
>  static const struct snd_usb_implicit_fb_match
> capture_implicit_fb_quirks[] = {
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x007d, 0x0d, 0x01), /* Edirol UA-101 High
> Speed */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x008d, 0x0d, 0x01), /* Edirol UA-101 Full
> Speed */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00a3, 0x0d, 0x01), /* Edirol UA-4FX */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00a6, 0x0d, 0x01), /* Roland JUNO-G */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00a9, 0x0d, 0x01), /* Roland MC-808 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00ad, 0x0d, 0x01), /* Roland SH-201 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00b2, 0x0d, 0x01), /* Roland VG-99 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00b3, 0x0d, 0x01), /* Roland VG-99 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00c2, 0x0d, 0x01), /* Roland SonicCell */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00c4, 0x0d, 0x01), /* Edirol M-16DX */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00c5, 0x0d, 0x01), /* Roland SP-555 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00c7, 0x0d, 0x01), /* Roland V-Synth GT
> */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00d1, 0x0d, 0x01), /* Roland Music
> Atelier */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00da, 0x0d, 0x01), /* BOSS GT-10 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00db, 0x0d, 0x01), /* BOSS GT-10 Guitar
> Effects Processor */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00dc, 0x0d, 0x01), /* BOSS GT-10B */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00de, 0x0d, 0x01), /* Roland Fantom-G */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00eb, 0x0d, 0x01), /* Roland VS-100 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00f8, 0x0d, 0x01), /* Roland JUNO Series
> */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00fc, 0x0d, 0x01), /* Roland VS-700C */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00fd, 0x0d, 0x01), /* Roland VS-700 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00fe, 0x0d, 0x01), /* Roland VS-700 M1 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x00ff, 0x0d, 0x01), /* Roland VS-700 M2 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0100, 0x0d, 0x01), /* Roland VS-700 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0101, 0x0d, 0x01), /* Roland VS-700 M2 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0102, 0x0d, 0x01), /* Roland VB-99 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0109, 0x0d, 0x01), /* BOSS eBand JS-8 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0111, 0x0d, 0x01), /* Roland GAIA SH-01
> */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0113, 0x0d, 0x01), /* BOSS ME-25 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0114, 0x0d, 0x01), /* Roland SD-50 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0117, 0x0d, 0x01), /* Roland VS-20 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0119, 0x0d, 0x01), /* Roland OCTAPAD
> SPD-30 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x011c, 0x0d, 0x01), /* Roland Lucina
> AX-09 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x011e, 0x0d, 0x01), /* BOSS BR-800 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0120, 0x0d, 0x01), /* Roland
> OCTA-CAPTURE */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0121, 0x0d, 0x01), /* Roland
> OCTA-CAPTURE */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0123, 0x0d, 0x01), /* Roland JUNO-Gi */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0124, 0x0d, 0x01), /* Roland M-300 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0127, 0x0d, 0x01), /* Roland GR-55 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x012b, 0x0d, 0x01), /* Roland DUO-CAPTURE
> */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x012f, 0x0d, 0x01), /* Roland
> QUAD-CAPTURE */
>   IMPLICIT_FB_FIXED_DEV(0x0582, 0x0130, 0x0d, 0x01), /* BOSS BR-80 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0132, 0x0d, 0x01), /* Roland TRI-CAPTURE
> */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0134, 0x0d, 0x01), /* Roland V-Mixer */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0138, 0x0d, 0x01), /* BOSS RC-300 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x013a, 0x0d, 0x01), /* Roland JUPITER-80
> */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x013e, 0x0d, 0x01), /* Roland R-26 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0145, 0x0d, 0x01), /* Roland SPD-SX */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x014b, 0x0d, 0x01), /* BOSS eBand JS-10 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x014d, 0x0d, 0x01), /* BOSS GT-100 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0150, 0x0d, 0x01), /* Roland TD-15 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0151, 0x0d, 0x01), /* Roland TD-11 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0154, 0x0d, 0x01), /* Roland JUPITER-50
> */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0158, 0x0d, 0x01), /* Roland TD-30 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x0159, 0x0d, 0x01), /* Roland DUO-CAPTURE
> EX */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x015b, 0x0d, 0x01), /* Roland INTEGRA-7 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x015d, 0x0d, 0x01), /* Roland R-88 */
>   IMPLICIT_FB_FIXED_DEV(0x0582, 0x0171, 0x0d, 0x01), /* BOSS RC-505 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x017a, 0x0d, 0x01), /* Roland VT-3 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x017c, 0x0d, 0x01), /* Roland TR-8 */
>   IMPLICIT_FB_FIXED_DEV(0x0582, 0x0185, 0x0d, 0x01), /* BOSS GP-10 */
>   IMPLICIT_FB_FIXED_DEV(0x0582, 0x0189, 0x0d, 0x01), /* BOSS GT-100v2 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x01b5, 0x0d, 0x01), /* Roland Boutique
> Series Synthesizer */
>   IMPLICIT_FB_FIXED_DEV(0x0582, 0x01d6, 0x0d, 0x01), /* BOSS GT-1 */
>   IMPLICIT_FB_FIXED_DEV(0x0582, 0x01d8, 0x0d, 0x01), /* BOSS Katana */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x01df, 0x0d, 0x01), /* Roland Rubix22 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x01e0, 0x0d, 0x01), /* Roland Rubix24 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x01e1, 0x0d, 0x01), /* Roland Rubix44 */
>   IMPLICIT_FB_FIXED_DEV(0x0582, 0x01e5, 0x0d, 0x01), /* BOSS GT-001 */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x01fd, 0x0d, 0x01), /* Roland Boutique
> SH-01A */
> + IMPLICIT_FB_FIXED_DEV(0x0582, 0x01ff, 0x0d, 0x01), /* Roland Boutique
> D-05 */
>   IMPLICIT_FB_FIXED_DEV(0x0582, 0x0203, 0x0d, 0x01), /* BOSS AD-10 */
>
>   {} /* terminator */
> @@ -278,6 +406,11 @@ static int audioformat_implicit_fb_quirk
>   }
>   }
>
> + ///* Don't apply playback quirks for the devices with capture quirk */
> + //p = find_implicit_fb_entry(chip, capture_implicit_fb_quirks, alts);
> + //if (p && p->type == IMPLICIT_FB_FIXED)
> + // return 0; /* no quirk */
> +
>   /* Generic UAC2 implicit feedback */
>   if (attr == USB_ENDPOINT_SYNC_ASYNC &&
>      alts->desc.bInterfaceClass == USB_CLASS_AUDIO &&
>
>
> On Fri, Apr 9, 2021 at 2:09 PM Lucas <jaffa225man@gmail.com> wrote:
>
>> I wholeheartedly agree with everything you wrote, Mike.  Takashi is the
>> person who knows best how to implement these changes, and is definitely the
>> most capable.  I will get back to you about retesting my other Roland
>> devices with this trick, although I only have a few of the many devices I'd
>> ultimately like this solution implemented for.  Also, I haven't noticed the
>> sync-related clicking with the other devices I own, but I'm confident they
>> won't be hurt by the change.  I'll let you both know, though, when I get
>> around to testing them.
>>
>> Thanks as ever,
>>
>>   Lucas
>>
>
>

  parent reply	other threads:[~2021-04-11 19:47 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-07 19:54 Implicit feedback on BOSS GT-1, the saga continues Mike Oliphant
2021-04-07 20:08 ` Geraldo Nascimento
2021-04-07 20:16   ` Mike Oliphant
2021-04-07 20:35     ` Geraldo Nascimento
2021-04-08  0:38       ` Mike Oliphant
2021-04-08  2:26         ` Geraldo Nascimento
2021-04-08  2:46           ` Mike Oliphant
2021-04-08  3:08             ` Lucas
2021-04-08  3:25               ` Lucas
     [not found]             ` <CAEsQvcsCJUi8eP_t8MGUKf0zSf7Zmqiof8b0fmk-XhZtUScbmg@mail.gmail.com>
2021-04-08  5:05               ` Geraldo Nascimento
2021-04-08  5:36                 ` Lucas
2021-04-08  6:14                   ` Geraldo Nascimento
2021-04-08  8:40                     ` Lucas
2021-04-08 15:56                   ` Mike Oliphant
2021-04-08 19:17                 ` Geraldo Nascimento
2021-04-08 19:42                   ` Mike Oliphant
2021-04-08 20:14                     ` Geraldo Nascimento
2021-04-08 20:31                       ` Lucas
2021-04-08 21:05                         ` Geraldo Nascimento
2021-04-08 21:21                           ` Lucas
2021-04-08 20:54                       ` Mike Oliphant
2021-04-08 21:24                         ` Geraldo Nascimento
2021-04-08 22:02                           ` Mike Oliphant
2021-04-09  1:04                             ` Geraldo Nascimento
2021-04-09  1:54                               ` Lucas
2021-04-09  2:40                                 ` Geraldo Nascimento
2021-04-09  3:56                                   ` Lucas
2021-04-09  4:27                                     ` Geraldo Nascimento
2021-04-09  4:55                                       ` Lucas
2021-04-09  6:02                                         ` Geraldo Nascimento
2021-04-09 16:47                                         ` Mike Oliphant
2021-04-09 19:08                                           ` Geraldo Nascimento
2021-04-09 19:09                                           ` Lucas
2021-04-11  7:25                                             ` Lucas
2021-04-11  7:46                                               ` Lucas
2021-04-11 19:46                                               ` Mike Oliphant [this message]
2021-04-11 21:11                                                 ` Lucas
2021-04-11 21:33                                               ` Geraldo Nascimento
2021-04-12  5:57                                                 ` Lucas
2021-04-12 23:24                                                   ` Geraldo Nascimento
2021-04-16  1:25                                                     ` Lucas
2021-04-16  1:28                                                       ` Lucas
2021-04-16  7:48                                                         ` Takashi Iwai
2021-04-16 16:19                                                           ` Lucas
2021-04-07 20:18   ` Lucas
2021-04-07 20:23     ` Lucas
2021-04-07 20:24     ` Mike Oliphant
2021-04-07 20:26       ` Mike Oliphant

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAHXb3bcAR9RxwUJ+T9sMX4UdS3tXLZV-kWwHbbawW0ANUx2cGw@mail.gmail.com \
    --to=oliphant@nostatic.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=geraldogabriel@gmail.com \
    --cc=jaffa225man@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.