[alsa-devel] roland synth sh-201

carlo beccaria becks at stepdev.org
Thu Jun 28 09:36:09 CEST 2007



hi all, 
with this change in usbquirks.h , i can use my synth roland sh-201

{
   /* Roland SH-201 */
   USB_DEVICE(0x0582, 0x00ad),
   .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
     .vendor_name = "Roland",
     .product_name = "SH-201",
     .ifnum = QUIRK_ANY_INTERFACE,
     .type = QUIRK_COMPOSITE,
     .data = (const struct snd_usb_audio_quirk[]) {
       {
         .ifnum = 0,
         .type = QUIRK_AUDIO_FIXED_ENDPOINT,
         .data = & (const struct audioformat) {
           .format = SNDRV_PCM_FORMAT_S24_3LE,
           .channels = 2,
           .iface = 0,
           .altsetting = 1,
           .altset_idx = 1,
           .attributes = 0,
           .endpoint = 0x01,
           .ep_attr = 0x01,
           .rates = SNDRV_PCM_RATE_CONTINUOUS,
           .rate_min = 44100,
           .rate_max = 44100,
         }
       },
       {
         .ifnum = 1,
         .type = QUIRK_AUDIO_FIXED_ENDPOINT,
         .data = & (const struct audioformat) {
           .format = SNDRV_PCM_FORMAT_S24_3LE,
           .channels = 2,
           .iface = 1,
           .altsetting = 1,
           .altset_idx = 1,
           .attributes = 0,
           .endpoint = 0x81,
           .ep_attr = 0x01,
           .rates = SNDRV_PCM_RATE_CONTINUOUS,
           .rate_min = 44100,
           .rate_max = 44100,
         }
       },
       {
         .ifnum = 2,
         .type = QUIRK_MIDI_FIXED_ENDPOINT,
         .data = & (const struct snd_usb_midi_endpoint_info) {
           .out_cables = 0x0007,
           .in_cables  = 0x0007
         }
       },
       {
         .ifnum = -1
       }
     }
   }
},


my kernel is 2.6.21.5-rt17, (plus preempt patch) and i use debian testing
the hardware seem to be very similar to Roland SC-D70 (windows .inf file 
are very similar)

this is the device id
Bus 001 Device 003: ID 0582:00ad Roland Corp.

in attach you can see the lsusb (verbose) output

becks at vaix:~$ amidi -l
Dir Device    Name
IO  hw:1,0,0  SH-201 MIDI 1
IO  hw:1,0,1  SH-201 MIDI 2
IO  hw:1,0,2  SH-201 MIDI 3

muse works fine with jack and midi output

becks at vaix:~$ aseqdump -p 20:0
Waiting for data. Press Ctrl+C to end.
Source_ Event_________________ Ch _Data__
  20:0   Note on                 1  52  17
  20:0   Note off                1  52  55

also midi-in works

becks at vaix:~$ cat /proc/asound/cards
  0 [A5451          ]: ALI5451 - ALI 5451
                       ALI 5451 at 0x8400, irq 9
  1 [SH201          ]: USB-Audio - SH-201
                       Roland SH-201 at usb-0000:00:0c.0-1, full speed

when i use my synth like a sound card, it don't work, i don't know exactly why
(if is a patch problem, or rate/format)

becks at vaix:~$ aplay  -D hw:1,0 /usr/share/sounds/KDE_Window_UnSticky.wav
Playing WAVE '/usr/share/sounds/KDE_Window_UnSticky.wav' : Signed 16 bit Little 
Endian, Rate 22050 Hz, Mono
aplay: set_params:904: Sample format non available

let me know if you need more info
thanks

--
carlo beccaria
-------------- next part --------------
Bus 001 Device 003: ID 0582:00ad Roland Corp. 
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          0x00ad 
  bcdDevice            1.00
  iManufacturer           1 Roland
  iProduct                2 SH-201
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          161
    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 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2 
      bInterfaceProtocol      2 
      iInterface              0 
      Class specific interface descriptor for class 255 is unsupported
      Class specific interface descriptor for class 255 is unsupported
      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 
      Class specific interface descriptor for class 255 is unsupported
      Class specific interface descriptor for class 255 is unsupported
      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 
      Class specific interface descriptor for class 255 is unsupported
      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               1
      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
Device Status:     0x0000
  (Bus Powered)



More information about the Alsa-devel mailing list