Page 1 of 1

[SOLVED] Roland V Synth GT not working via MIDI/USB on LINUX

Posted: Fri Aug 23, 2013 1:50 pm
by renedrive
Hello to everyone.
This is my first post in this fantastic forum (sorry for my bad English)
I searched for problems similar to mine in the forum but I have not found anything.

My problem:
- configure the Roland V Synth GT as a USB/MIDI device and manage it, with MIDI command, as both input and output
- create partition on RoseGarden and use the Roland V Synth GT as the only audio output (no audio from LINUX computer)
- use the LINUX computer (as controller) and the Roland V Synth GT on stage as musical accompaniment and play it at the same time

For the second and the third point I do not need help ... but only so much patience ...

My problem is the first step
Properly configure the synth to use it via MIDI / USB.

The system "feels" the connection of the usb device.

The result of

dmesg
...
[ 721.013750] usb 1-2: new high-speed USB device number 8 using ehci-pci
[ 721.128148] usb 1-2: New USB device found, idVendor=0409, idProduct=005a
[ 721.128157] usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 721.128453] hub 1-2:1.0: USB hub found
[ 721.128526] hub 1-2:1.0: 4 ports detected
[ 721.403033] usb 1-2.4: new full-speed USB device number 9 using ehci-pci
[ 721.500827] usb 1-2.4: New USB device found, idVendor=0582, idProduct=00c7
[ 721.500837] usb 1-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 721.500843] usb 1-2.4: Product: V-SYNTH GT
[ 721.500847] usb 1-2.4: Manufacturer: Roland
...

The usb device is present on the active list of usb hardware

The result of

lsusb
...
Bus 001 Device 009: ID 0582:00c7 Roland Corp.
...

But the MIDI device is not activated

The result of

amidi -l

Dir Device Name
IO hw:0,0 EMU10K1 MPU-401 (UART)

Obviously from this point on nothing else works (such as Jack does not see the MIDI device).


I try to find something in
http://www.rolandforums.co.uk
but nothing on LINUX platform.

I also try to find something in
http://forums.rolandclan.com
and the only info I find is that V Synth properly work on LINUX.

Nothing on some configuration problem, nothing about some special drivers to use or particular distribution.
The distributions on which I have tried are OpenSuse (on AMD desktop and an Asus EEEpc), DreamStudio, Ubuntu Studio and EasyPeasy, for all the same result.

Any of you can help me in any way?
Many thanks!!!

Re: Roland V Synth GT does not work via MIDI/USB on LINUX

Posted: Mon Aug 26, 2013 4:52 pm
by varpa
Roland V Synth GT is USB 1.1 compliant according to Roland webpage so it should just work. It should show up as an Alsa midi device (for example Alsa tab of QJackCtl). amidi -l lists only raw midi devices, not sure if that shows hardware midi connections. What does aplaymidi -l show?

Re: Roland V Synth GT does not work via MIDI/USB on LINUX

Posted: Mon Aug 26, 2013 5:40 pm
by renedrive
varpa wrote:What does aplaymidi -l show?

Code: Select all

 aplaymidi -l

 Port    Client name                           Port name
 14:0    Midi Through                          Midi Through Port-0
 16:0    SB Live! 5.1 [SB0060]                 EMU10K1 MPU-401 (UART)
 17:0    Emu10k1 WaveTable                     Emu10k1 Port 0
 17:1    Emu10k1 WaveTable                     Emu10k1 Port 1
 17:2    Emu10k1 WaveTable                     Emu10k1 Port 2
 17:3    Emu10k1 WaveTable                     Emu10k1 Port 3
In the Alsa tab of QJackCtl I see the same thing in the "input port" and only the first two items on "output port"

At keyboard attached or not the aplaymidi result does not change.

Re: Roland V Synth GT does not work via MIDI/USB on LINUX

Posted: Mon Aug 26, 2013 11:40 pm
by j_e_f_f_g
Roland devices often have two USB modes. One is the USBMIDI standard. The other mode is a proprietary "enhanced" mode that supports extra features ((ie more than 16 MIDI channels). There is a "USB mode" setting you can change (usually in the "System" menu).

Also, for devices that can be loaded with waveforms (like the gt), there are two modes. One is the USBMIDI standard. The other mode is USB Storage mode. The latter means your computer sees your gt like a usb hard drive. Do you see a drive icon on your desktop labeled something like "ROLAND"? That drive icon should appear and disappear when you connect/disconnect the gt, just like it's a usb drive. You can open that ROLAND drive icon, "drag" WAV (or AIFF, but not mp3, flac, or ogg) files from your computer drive, and "drop" them into that ROLAND folder. Your computer will transfer those files to the gt (so the gt can play them). It's just like working with a usb thumb drive. So that's how you move waves to and from your gt.

But when you want to use the gt for MIDI, you have to disconnect it, and switch it to "MIDI USB mode" (not Storage mode). Now when you reconnect the gt, linux will no longer see it as a usb drive. (ie No drive icon appears on your desktop). Instead, linux/alsa will see it as a MIDi device.

Page 223 of your manual tells how to put the gt into storage mode. But it doesn't say how to switch back to midi mode. Maybe you toggle storage mode "off"? in any event, you do need to then disconnect/reconnect the gt. Maybe even turn it on/off.

If you see a roland icon appear on your desktop, you're in the wrong mode.

Re: Roland V Synth GT does not work via MIDI/USB on LINUX

Posted: Tue Aug 27, 2013 2:18 pm
by renedrive
j_e_f_f_g wrote: Roland devices often have two USB modes. One is the USBMIDI standard. The other mode is a proprietary "enhanced" .....
I tried to control USB/MIDI modes.
In the manual there is no trace of two USB/MIDI mode.
In the menu of the synth I have not found settings for different USB/MIDI mode.
j_e_f_f_g wrote: If you see a roland icon appear on your desktop, you're in the wrong mode.
The USB drive mode is on demand.
When you turn on the synth and connected the USB cable is immediately available the MIDI connection, later if you access the "Utility" menu and you activate the usb disk mode then appears on the computer the storage unit.
Once you have used the USB disk mode to return to the USB/MIDI mode you have to disconnect and reconnect the USB cable, or power off and on the synth.

This morning I did a test on two Windows machines, XP and 7, and everything works properly, as I just described above.

From experiments made this morning, in Linux, not only does not work USB/MIDI connection but does not work either usb disk mode.
I also tried to use "GNOME Disk Utility" (aka Palimpsest) to see if the device usb disk was present but can not mount but it does not appear even to the system.

Re: Roland V Synth GT does not work via MIDI/USB on LINUX

Posted: Wed Aug 28, 2013 4:09 am
by j_e_f_f_g
With some of these old usbmidi devices, they implemented class compliance. But they just didn't report that to the operating system. The early devices reported themselves as a generic usb device class -- a numeric value of 255. Later devices specifically say they're midi -- a class value of... um... 2 or 5... can't recall offhand. Do the following from the terminal:

lsusb -v

Is the gt's bDeviceClass (or maybe bInterfaceClass) 255? If so, alsa doesn't know it's usbmidi. You have to tell alsa. Unfortunately you do that by modifying alsa's usbaudio driver source code (specifically adding an entry to quirks-table.h) and compiling a new driver.

I had the same problem with an old Opcode Midiport interface. I modified the alsa driver and now I use the Opcode with linux. (And I'm the only guy who can. I tried to post the patch to alsa's dev list, but it seems to have disappeared. I don't waste time with automated systems with unhelpful/difficult interfaces).

If you can't modify the source, post that lsusb info to alsa's dev mail list, and if you get through, someone should help. (Clem Ladish is best.) If you have no luck, I could help, but only if you're running a 64-bit debian deriviative.

Re: Roland V Synth GT does not work via MIDI/USB on LINUX

Posted: Wed Aug 28, 2013 9:25 am
by renedrive
j_e_f_f_g wrote: lsusb -v

Is the gt's bDeviceClass (or maybe bInterfaceClass) 255? If so, alsa doesn't know it's usbmidi. You have to tell alsa. Unfortunately you do that by modifying alsa's usbaudio driver source code (specifically adding an entry to quirks-table.h) and compiling a new driver.
Actually the bInterfaceClass parameter has the following value
bDeviceClass 255 Vendor Specific Class
j_e_f_f_g wrote: I had the same problem with an old Opcode Midiport interface. I modified the alsa driver and now I use the Opcode with linux. (And I'm the only guy who can. I tried to post the patch to alsa's dev list, but it seems to have disappeared. I don't waste time with automated systems with unhelpful/difficult interfaces).
Looking for information on this problem I had read of another user that had changed something in ALSA to run a MIDI device.
I did not read carefully because it seemed a bit 'complex.
It will mean that I will have to study better ALSA.
j_e_f_f_g wrote: If you can't modify the source, post that lsusb info to alsa's dev mail list, and if you get through, someone should help. (Clem Ladish is best.) If you have no luck, I could help, but only if you're running a 64-bit debian deriviative.
Thanks for the advice.
Definitely I request for help in ALSA mailing list.
If they were to solve my problem I will definitely update this thread.

I thank you for the information on bInterfaceClass parameter.
I'll try to better informed on this.

Do you think the problem of non-recognition even as a USB disk could be caused by the same problem? Or similar?
I will investigate also on this.

Re: Roland V Synth GT does not work via MIDI/USB on LINUX

Posted: Wed Aug 28, 2013 6:11 pm
by j_e_f_f_g
renedrive wrote:bDeviceClass 255 Vendor Specific Class
Yep, just like my Opcode, your gt isn't saying what type of usb device it is. You need to add an entry to quirks-table.h and compile a new sndusbaudio.so, and it will work as a midi device. You need to post all that lsusb info for the gt. Without it I'm guessing, but the entry could be as simple as:

Code: Select all

/* Roland V Synth GT */
{
	USB_DEVICE_VENDOR_SPEC(0x0582, 0x00c7),
	.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
		.vendor_name = "Roland",
		.product_name = "V Synth GT",
		.ifnum = QUIRK_ANY_INTERFACE,
		.type = QUIRK_MIDI_FIXED_ENDPOINT,
		.data = & (const struct snd_usb_midi_endpoint_info) {
			.out_cables = 0x0003,
			.in_cables = 0x0003
		}
	}
},
Do you think the problem of non-recognition even as a USB disk could be caused by the same problem?
Yes. When in storage mode, the bDeviceClass should change to storage class (6?). But i'll bet the gt is still reporting 255 (unknown class). I don't know much about linux low-level filesystem, so I can't say how you go about tellling linux the gt is a storage device. (A udev rule?) Plus that may interfere with alsa.

Re: Roland V Synth GT does not work via MIDI/USB on LINUX

Posted: Wed Aug 28, 2013 8:39 pm
by renedrive
j_e_f_f_g wrote: You need to post all that lsusb info for the gt.
This is the complete contents of the lsusb result for the GT.

Code: Select all

Bus 001 Device 009: ID 0582:00c7 Roland Corp. 
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass         0 
  bDeviceProtocol       255 
  bMaxPacketSize0         8
  idVendor           0x0582 Roland Corp.
  idProduct          0x00c7 
  bcdDevice            1.00
  iManufacturer           1 
  iProduct                2 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          167
    bNumInterfaces          3
    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      2 
      bInterfaceProtocol      2 
      iInterface              0 
      ** UNRECOGNIZED:  06 24 f1 01 00 00
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      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 03 18 01 44 ac 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x0120  1x 288 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2 
      bInterfaceProtocol      1 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      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 03 18 01 44 ac 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0120  1x 288 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      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     0x0020  1x 32 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      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            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               1
I tried to find a forum where talk about ALSA but I found only forum dedicated to various distributions that talk about.
In none of these I found useful information on the problem.
By any chance you know any that is generic to ALSA?

From the site http://www.alsa-project.org I have not figured out how to ask for help.
Several pages give me error, such as non-existent page.
I do not understand.
I guess I'm missing something.

Thanks to your report on quirks-table.h file I find some other information.
I am studying.
I also found a user with a Roland Juno Ji who applied a patch very similar to that reported by you (device name and ID except of course).

Now I am looking for a procedure on how to compile sndusbaudio.so.
As soon as I can find it, I'll try.

Re: Roland V Synth GT does not work via MIDI/USB on LINUX

Posted: Thu Aug 29, 2013 1:28 am
by j_e_f_f_g
renedrive wrote:This is the complete contents of the lsusb result for the GT.
I suspect my snippet will work. I'm guessing EP 3 and 4 are for storage mode, but filesystem stuff is not my forte.
I tried to find a forum where talk about ALSA
It's not a forum. It's an email list. Go to the mail list page at http://www.alsa-project.org/main/index. ... ling-lists

Subscribe to the alsa-devel list at http://mailman.alsa-project.org/mailman ... alsa-devel

Send an email to the address on that page with a subject like "sndusbaudio support for Roland V synth MIDI". Include the lsusb output, and my snippet, and ask if someone would be willing to email you a modified sndusbaudio.so to test. Mention your distro and whether it's 32-bit or 64-bit. If it's 64-bit, I can help you right now.

Re: Roland V Synth GT does not work via MIDI/USB on LINUX

Posted: Fri Aug 30, 2013 9:45 pm
by renedrive
j_e_f_f_g wrote: Subscribe to the alsa-devel list at http://mailman.alsa-project.org/mailman ... alsa-devel

Send an email to the address on that page with a subject like "sndusbaudio support for Roland V synth MIDI". Include the lsusb output, and my snippet, and ask if someone would be willing to email you a modified sndusbaudio.so to test. Mention your distro and whether it's 32-bit or 64-bit. If it's 64-bit, I can help you right now.
Bingo!!!!

New kernel 3.11 and the V Synth GT miraculously appeared.
Both functions of USB / MIDI and USB drive work perfectly.
Appeared in Jack and fully managed by Rosegarden.
Just enabled USB disk from the utility menu of the V Synth GT in my OpenSUSE appears the device ready to mount.
Problem solved.

Thanks to your advice, j_e_f_f_g, and thanks to the ALSA mailing list I discovered that in the new kernel 3.11 there was already a change ready to solve.
In standard repository for OpenSUSE the update is not present at this time, but I found it in the user repository
http://download.opensuse.org/repositori ... E_Factory/

I'm happy!!

Thanks to all for help !!