All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* Patch for some Roland devices' USB digital audio
@ 2021-03-25 19:09 Lucas
  0 siblings, 0 replies; 3+ messages in thread
From: Lucas @ 2021-03-25 19:09 UTC (permalink / raw
  To: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 1433 bytes --]

A couple days ago, I found this excellent informational post, and that Mike
Oliphant's patch is in mainline now:
http://blog.nostatic.org/2020/01/getting-boss-gt-1-effects-processor-to.html

Since I was fairly certain it applies to the Roland devices I own, I added
my USB IDs.  Wonderfully, now USB audio capture seems to be working
perfectly from the three devices I can test: the INTEGRA-7, Boutique D-05,
& VG-99!

I don't know if the D-05 and VG-99 have digital audio playback/output, as I
only tried it with the INTEGRA-7.  It does work, but only when the
INTEGRA-7's "Sampling Rate" is set to "44.1 kHz" and "Ext Part Source
Select" is set to "USB AUDIO".

I searched a bit for other Roland devices people have had USB digital audio
issues with over the years, and took the liberty of adding them to the
patch too.  Likely there are still many more, especially in the Boutique
line, but I couldn't find their USB IDs.

I hope this can be added to the mainline kernel too, as this support should
help many that have struggled.  I, certainly, have been hoping somebody
would figure this out for quite a while, and even bought a USB
through/monitoring device to try to develop it myself (sadly, the software
supporting that has its own bugs, so I probably should've just used
wireshark).  Suffice it to say, I'm quite happy to have this figured out,
and to not have to delve into stuff I know nothing about! :)

Thanks,

  Lucas

[-- Attachment #2: linux-5.11.9-roland.patch --]
[-- Type: text/x-patch, Size: 3550 bytes --]

diff -Nur ./linux-5.11.9.orig/sound/usb/implicit.c ./linux-5.11.9.roland/sound/usb/implicit.c
--- ./linux-5.11.9.orig/sound/usb/implicit.c	2021-03-24 05:54:19.000000000 -0500
+++ ./linux-5.11.9.roland/sound/usb/implicit.c	2021-03-25 03:05:33.414870404 -0500
@@ -71,13 +71,27 @@
 	  .ep_num = 0x84, .iface = 0 },		/* MOTU MicroBook II */
 
 	/* No quirk for playback but with capture quirk (see below) */
+	IMPLICIT_FB_SKIP_DEV(0x0582, 0x00a6),	/* Roland JUNO-G */
+	IMPLICIT_FB_SKIP_DEV(0x0582, 0x00ad),	/* Roland SH-201 */
+	IMPLICIT_FB_SKIP_DEV(0x0582, 0x00b2),	/* Roland VG-99 */
+	IMPLICIT_FB_SKIP_DEV(0x0582, 0x00c7),	/* Roland V-Synth GT */
+	IMPLICIT_FB_SKIP_DEV(0x0582, 0x0111),	/* Roland GAIA SH-01 */
+	IMPLICIT_FB_SKIP_DEV(0x0582, 0x0120),	/* Roland OCTA-CAPTURE */
+	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, 0x0138),	/* BOSS RC-300 */
+	IMPLICIT_FB_SKIP_DEV(0x0582, 0x013e),	/* Roland R-26 */
+	IMPLICIT_FB_SKIP_DEV(0x0582, 0x015b),	/* Roland INTEGRA-7 */
 	IMPLICIT_FB_SKIP_DEV(0x0582, 0x0171),   /* BOSS RC-505 */
+	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 JP-08 */
 	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, 0x01ff),	/* Roland D-05 */
 	IMPLICIT_FB_SKIP_DEV(0x0582, 0x0203),   /* BOSS AD-10 */
 
 	{} /* terminator */
@@ -85,13 +99,27 @@
 
 /* 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, 0x00a6, 0x0d, 0x01), /* Roland JUNO-G */
+	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, 0x00c7, 0x0d, 0x01), /* Roland V-Synth GT */
+	IMPLICIT_FB_FIXED_DEV(0x0582, 0x0111, 0x0d, 0x01), /* Roland GAIA SH-01 */
+	IMPLICIT_FB_FIXED_DEV(0x0582, 0x0120, 0x0d, 0x01), /* Roland OCTA-CAPTURE */
+	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, 0x0138, 0x0d, 0x01), /* BOSS RC-300 */
+	IMPLICIT_FB_FIXED_DEV(0x0582, 0x013e, 0x0d, 0x01), /* Roland R-26 */
+	IMPLICIT_FB_FIXED_DEV(0x0582, 0x015b, 0x0d, 0x01), /* Roland INTEGRA-7 */
 	IMPLICIT_FB_FIXED_DEV(0x0582, 0x0171, 0x0d, 0x01), /* BOSS RC-505 */
+	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 JP-08 */
 	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, 0x01e5, 0x0d, 0x01), /* BOSS GT-001 */
+	IMPLICIT_FB_FIXED_DEV(0x0582, 0x01ff, 0x0d, 0x01), /* Roland D-05 */
 	IMPLICIT_FB_FIXED_DEV(0x0582, 0x0203, 0x0d, 0x01), /* BOSS AD-10 */
 
 	{} /* terminator */

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: Patch for some Roland devices' USB digital audio
@ 2021-03-25 21:18 Lucas
  2021-03-26 23:42 ` Lucas
  0 siblings, 1 reply; 3+ messages in thread
From: Lucas @ 2021-03-25 21:18 UTC (permalink / raw
  To: alsa-devel

Sorry, I should've realized that embedded plaintext patches are preferred,
as I've been on the linux-media list since forever.  This should improve
the ability to find the pertinent devices too, so here it is again:

A couple days ago, I found this excellent informational post, and that Mike
Oliphant's patch is in mainline now:
http://blog.nostatic.org/2020/01/getting-boss-gt-1-effects-processor-to.html

Since I was fairly certain it applies to the Roland devices I own, I added
my USB IDs.  Wonderfully, now USB audio capture seems to be working
perfectly from the three devices I can test: the INTEGRA-7, Boutique D-05,
& VG-99!

I don't know if the D-05 and VG-99 have digital audio playback/output, as I
only tried it with the INTEGRA-7.  It does work, but only when the
INTEGRA-7's "Sampling Rate" is set to "44.1 kHz" and "Ext Part Source
Select" is set to "USB AUDIO".

I searched a bit for other Roland devices people have had USB digital audio
issues with over the years, and took the liberty of adding them to the
patch too.  Likely there are still many more, especially in the Boutique
line, but I couldn't find their USB IDs.

I hope this can be added to the mainline kernel too, as this support should
help many that have struggled.  I, certainly, have been hoping somebody
would figure this out for quite a while, and even bought a USB
through/monitoring device to try to develop it myself (sadly, the software
supporting that has its own bugs, so I probably should've just used
wireshark).  Suffice it to say, I'm quite happy to have this figured out,
and to not have to delve into stuff I know nothing about! :)

Thanks,

  Lucas

The patch follows:
diff -Nur ./linux-5.11.9.orig/sound/usb/implicit.c
./linux-5.11.9.roland/sound/usb/implicit.c
--- ./linux-5.11.9.orig/sound/usb/implicit.c 2021-03-24 05:54:19.000000000
-0500
+++ ./linux-5.11.9.roland/sound/usb/implicit.c 2021-03-25
03:05:33.414870404 -0500
@@ -71,13 +71,27 @@
   .ep_num = 0x84, .iface = 0 }, /* MOTU MicroBook II */

  /* No quirk for playback but with capture quirk (see below) */
+ IMPLICIT_FB_SKIP_DEV(0x0582, 0x00a6), /* Roland JUNO-G */
+ IMPLICIT_FB_SKIP_DEV(0x0582, 0x00ad), /* Roland SH-201 */
+ IMPLICIT_FB_SKIP_DEV(0x0582, 0x00b2), /* Roland VG-99 */
+ IMPLICIT_FB_SKIP_DEV(0x0582, 0x00c7), /* Roland V-Synth GT */
+ IMPLICIT_FB_SKIP_DEV(0x0582, 0x0111), /* Roland GAIA SH-01 */
+ IMPLICIT_FB_SKIP_DEV(0x0582, 0x0120), /* Roland OCTA-CAPTURE */
+ 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, 0x0138), /* BOSS RC-300 */
+ IMPLICIT_FB_SKIP_DEV(0x0582, 0x013e), /* Roland R-26 */
+ IMPLICIT_FB_SKIP_DEV(0x0582, 0x015b), /* Roland INTEGRA-7 */
  IMPLICIT_FB_SKIP_DEV(0x0582, 0x0171),   /* BOSS RC-505 */
+ 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 JP-08 */
  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, 0x01ff), /* Roland D-05 */
  IMPLICIT_FB_SKIP_DEV(0x0582, 0x0203),   /* BOSS AD-10 */

  {} /* terminator */
@@ -85,13 +99,27 @@

 /* 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, 0x00a6, 0x0d, 0x01), /* Roland JUNO-G */
+ 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, 0x00c7, 0x0d, 0x01), /* Roland V-Synth GT */
+ IMPLICIT_FB_FIXED_DEV(0x0582, 0x0111, 0x0d, 0x01), /* Roland GAIA SH-01 */
+ IMPLICIT_FB_FIXED_DEV(0x0582, 0x0120, 0x0d, 0x01), /* Roland OCTA-CAPTURE
*/
+ 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, 0x0138, 0x0d, 0x01), /* BOSS RC-300 */
+ IMPLICIT_FB_FIXED_DEV(0x0582, 0x013e, 0x0d, 0x01), /* Roland R-26 */
+ IMPLICIT_FB_FIXED_DEV(0x0582, 0x015b, 0x0d, 0x01), /* Roland INTEGRA-7 */
  IMPLICIT_FB_FIXED_DEV(0x0582, 0x0171, 0x0d, 0x01), /* BOSS RC-505 */
+ 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 JP-08 */
  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, 0x01e5, 0x0d, 0x01), /* BOSS GT-001 */
+ IMPLICIT_FB_FIXED_DEV(0x0582, 0x01ff, 0x0d, 0x01), /* Roland D-05 */
  IMPLICIT_FB_FIXED_DEV(0x0582, 0x0203, 0x0d, 0x01), /* BOSS AD-10 */

  {} /* terminator */

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Patch for some Roland devices' USB digital audio
  2021-03-25 21:18 Patch for some Roland devices' USB digital audio Lucas
@ 2021-03-26 23:42 ` Lucas
  0 siblings, 0 replies; 3+ messages in thread
From: Lucas @ 2021-03-26 23:42 UTC (permalink / raw
  To: alsa-devel

Soon after posting it, I realized that output inclusion is implied for
anything using USB implicit feedback.  So, now I've tested that on the
"Boutique" D-05 and VG-99.  They seem to be working as expected.
There is one caveat, namely the D-05's analog outputs aren't as clean as
the other two devices, with little quiet occasional clicks sounding
something like dust on an LP record's play.  Possibly that can be chalked
up to it having only 1/8" minijack connections, but I suspect something
more driver-related as I've not noticed it during use as a synthesizer.
Its firmware version is "1.02(1033)," so not up-to-date which may mean it's
just the hardware itself, but I've decided not to risk any changes with it
yet.  If I knew I could revert it, that would be another story.  Also USB
captures from it, play perfectly cleanly on my usual sound device, the
Edirol UA-4FX.

You probably already know this, as someone coded them, but here are the
commands I've had to use for format compatibility with these devices:

D-05:
  arecord -D hw:Boutique -f S32_LE -c 2 -r 96000 ./file.wav
  aplay -D hw:Boutique -f S32_LE -c 2 -r 96000 ./ile.wav
INTEGRA-7:
  arecord -D hw:INTEGRA7 -f S32_LE -c 2 -r 96000 ./file.wav
    (then change MENU->SYSTEM->SOUND->Sampling Rate to 44.1 [kHz]
(otherwise its 96[kHz])
     and  change MENU->SYSTEM->SOUND->Ext Part Source Select to USB AUDIO)
  arecord -D hw:INTEGRA7 -f S32_LE -c 2 -r 44100 ./file-44100.wav
  aplay -D hw:INTEGRA7 -f S32_LE -c 2 -r 44100 ./file-44100.wav
VG-99:
  arecord -D hw:VG99 -f S24_3LE -c 2 -r 44100 ./file.wav
  aplay -D hw:VG99 -f S24_3LE -c 2 -r 44100 ./file.wav

I have another of the devices I added, with the patch, arriving soon (the
R-26) so I'll have to get back to you with how that works too.

Thanks to anyone looking into adding this,

  Lucas

On Thu, Mar 25, 2021 at 4:18 PM Lucas <jaffa225man@gmail.com> wrote:

> I don't know if the D-05 and VG-99 have digital audio playback/output, as
> I only tried it with the INTEGRA-7.  It does work, but only when the
> INTEGRA-7's "Sampling Rate" is set to "44.1 kHz" and "Ext Part Source
> Select" is set to "USB AUDIO".
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-03-26 23:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-03-25 21:18 Patch for some Roland devices' USB digital audio Lucas
2021-03-26 23:42 ` Lucas
  -- strict thread matches above, loose matches on Subject: below --
2021-03-25 19:09 Lucas

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.