GP-10 USB Audio Working in Linux

Started by aggraef, February 20, 2021, 09:41:19 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

aggraef

Hi all,

I've been lurking for quite some time here already, as I'm interested in all kinds of hex pickup and guitar to MIDI systems (I have a couple of those, the earliest one being a Korg Z3 from the 1980s), and obviously this forum is an invaluable resource on this topic. I recently grabbed a GP-10 before they go completely out of stock, and that's why I finally have something to contribute here myself. ;)

I'm running Linux, so I quickly found out that while USB MIDI works in Linux (apparently has been for a while), USB audio (i.e., the 24 bit 44.1 8x8 interface built into the device) wasn't, so I set out to fix it. Like various other Roland and Boss devices, the GP-10 audio interface isn't USB class compliant, but it's possible to make it work by adjusting the USB audio kernel driver. As luck would have it, Keith Milner had already contributed the necessary adjustments for various other similar Boss devices (like the GT-001). As of 5.11, this is already in the official Linux kernel. So in the end my task was actually quite easily to just add a corresponding device entry for the GP-10 to the right table (which has since been moved to sound/usb/implicit.c in the kernel source tree). I reported this change to Keith, who in turn kindly reported it to Takashi Iwai, the head ALSA developer, and I'm happy to report that Takashi already committed the change to his stable kernel tree in this commit.

Presumably that change will be in kernel 5.12, at which point the GP-10 will finally work OOTB in Linux, both MIDI and audio, yay! ;D That is, all 8x8 input and output channels are readily available in Linux, so that you can record all the strings separately in your DAW, do re-amping, etc., via the GP-10's built-in USB audio interface.

For those of you who know how to patch your Linux kernel and recompile it, you can make it work it right away by just applying the following patch to the source of the 5.11 kernel (the most recent stable version at the time of this writing):


diff --git a/sound/usb/implicit.c b/sound/usb/implicit.c
index e7216d0b860d8..11a85e66aa96d 100644
--- a/sound/usb/implicit.c
+++ b/sound/usb/implicit.c
@@ -73,6 +73,7 @@ static const struct snd_usb_implicit_fb_match playback_implicit_fb_quirks[] = {
/* 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 */
@@ -86,6 +87,7 @@ static const struct snd_usb_implicit_fb_match playback_implicit_fb_quirks[] = {
static const struct snd_usb_implicit_fb_match capture_implicit_fb_quirks[] = {
IMPLICIT_FB_FIXED_DEV(0x0582, 0x0130, 0x0d, 0x01), /* BOSS BR-80 */
IMPLICIT_FB_FIXED_DEV(0x0582, 0x0171, 0x0d, 0x01), /* BOSS RC-505 */
+ 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, 0x01d6, 0x0d, 0x01), /* BOSS GT-1 */
IMPLICIT_FB_FIXED_DEV(0x0582, 0x01d8, 0x0d, 0x01), /* BOSS Katana */


Please note that this patch will only work with Linux kernel 5.11, not 5.10 or earlier, as it relies on some changes that were just added very recently to the kernel.

I'm planning to do some computer music stuff using Pd with this amazing little device in the near future. My own software is all open-source and can be found through my personal GitHub page. Right now there's nothing specifically for the GP-10 there yet, but if you're interested in that kind of somewhat experimental computer science-y music stuff then you might want to watch that space for future developments. ;) (E.g., I already have a Pd patch for the Yamaha EZ-AG MIDI guitar from the 1990s there, which also works great with the GP-10 MIDI input.)

Best,
Albert Gräf
JGU Mainz, Germany
Dr. Albert Gr"af
Computer Music Research Group, JGU Mainz, Germany

Brent Flash


aggraef

Dr. Albert Gr"af
Computer Music Research Group, JGU Mainz, Germany

admin


aggraef

Thanks admin for cross-referencing my post! Maybe I should have posted there, but then again the news was specifically for the GP-10, so I figured that the GP-10 area was the right location.
Dr. Albert Gr"af
Computer Music Research Group, JGU Mainz, Germany

aggraef

If anyone wants to hear what the GP-10 sounds like on Linux, I've recorded a short soundbite (link to my Google Drive) on Linux through Jack into Ardour. The guitar is a Godin ACS-SA Nylon with RMC pickups. This is a stereo mixdown of the original 8 channel recording with the six strings (channels 3-8) alternating between left and right channel. I also recorded a bit of silence at the end so that you can hear the noise floor. Which is pretty low; Audacity measures it at around -78 dB for the last 0.5 secs of the clip. Sounds pretty good to me. ;)

Caveat: That clip is pretty loud, so beware. I just took the signal straight from the audio interface (no boost or any other processing in post), but I do have all the string sensitivities cranked up to max in the GP-10 configuration.
Dr. Albert Gr"af
Computer Music Research Group, JGU Mainz, Germany

pasha811

Great Stuff! Linux will save us one day. I recall 10 years ago I compiled my kernels. Now that skill has gone... but it should be in my head.. :)
Thanks a lot for your work!
Listen to my music at :  http://alonetone.com/pasha/

philjynx

Quote from: aggraef on February 21, 2021, 12:04:35 AM
If anyone wants to hear what the GP-10 sounds like on Linux, I've recorded a short soundbite (link to my Google Drive) on Linux through Jack into Ardour.....
Sounds solid and crisp, nice  ;D

aggraef

Quote from: philjynx on February 21, 2021, 12:30:48 PM
Sounds solid and crisp, nice  ;D

Thanks. :) Yes, the Godin guitar and its RMC PUs do sound great. But the A/D converters of the GP-10 also do a great job IMHO. The only downside of the interface is that it only offers a sample rate of 44.1 kHz, but that's really nitpicking. A standalone 8x8 USB audio interface will likely cost much more than the entire GP-10.

Quote from: pasha811 on February 21, 2021, 11:34:37 AM
I recall 10 years ago I compiled my kernels. Now that skill has gone... but it should be in my head.. :)

pasha811, Linux has come a long way in the past 10 years, maybe you should give it another go. ;) I'm running Manjaro, where there's a build script for each and every package, including kernels, which makes on-the-fly patching and compiling a kernel very easy.
Dr. Albert Gr"af
Computer Music Research Group, JGU Mainz, Germany

aggraef

#9
Quote from: pasha811 on February 21, 2021, 11:34:37 AM
Linux will save us one day.

In fact it already is, I mean right now. Most of the servers in the cloud we use to keep in touch in these troubling times are running Linux, don't they?

BTW, nice grooves there on your website, I love them! All done with the GP-10? (Errm, I mean the most recent ones. I noticed now that some of the songs are much older.)
Dr. Albert Gr"af
Computer Music Research Group, JGU Mainz, Germany

pasha811

Quote from: aggraef on February 21, 2021, 05:11:30 PM
In fact it already is, I mean right now. Most of the servers in the cloud we use to keep in touch in these troubling times are running Linux, don't they?

BTW, nice grooves there on your website, I love them! All done with the GP-10? (Errm, I mean the most recent ones. I noticed now that some of the songs are much older.)

Thanks for listening and for comments!  :)
My main machine is VG99, GP10 entered here and there in the last two years, especially nylon presets made by Autana and dozens made by Ainsoph and posted here, were of such inspiration that my next work will be based more on GP10. I rediscovered OSC and despite some shortcomings it is fueling inspiration.
Enjoy the yellow box!  ;D
Listen to my music at :  http://alonetone.com/pasha/

aggraef

Quote from: pasha811 on February 21, 2021, 10:00:04 PM
My main machine is VG99,

Ah, the almighty VG99! Unfortunately, I completely missed that one, but I hear that people are still loving it. Maybe I can find a reasonably priced one on Ebay some time, to see whether I can make it work in Linux and what all the fuzz is about. ;)

Quote
GP10 entered here and there in the last two years, especially nylon presets made by Autana and dozens made by Ainsoph and posted here, were of such inspiration that my next work will be based more on GP10. I rediscovered OSC and despite some shortcomings it is fueling inspiration.
Enjoy the yellow box!  ;D

Will do, I love it. ;D Which also reminds me that I really have to check out some of the user-made patches, thanks for the pointers!
Dr. Albert Gr"af
Computer Music Research Group, JGU Mainz, Germany

aggraef

Quote from: aggraef on February 21, 2021, 12:04:35 AM
Caveat: That clip is pretty loud, so beware. I just took the signal straight from the audio interface (no boost or any other processing in post), but I do have all the string sensitivities cranked up to max in the GP-10 configuration.

Oops, it's so loud because I accidentally included the stereo output from the GP-10 in the mix. ::) I've corrected this now, here's the proper stereo mixdown with just the channels 3-8 straight from the device, panned hard left and right: gp10-godin-session2.wav
Dr. Albert Gr"af
Computer Music Research Group, JGU Mainz, Germany