alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* USB Quirks for Boss JS-8
@ 2011-03-18 17:56 Keith A. Milner
  2011-03-21  7:54 ` Daniel Mack
  0 siblings, 1 reply; 10+ messages in thread
From: Keith A. Milner @ 2011-03-18 17:56 UTC (permalink / raw)
  To: alsa-devel

Hi,
I'm looking at developing a quirk for the Boss JS-8. The lsusb is as follows:

Bus 001 Device 003: ID 0582:0109 Roland Corp. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass         0 
  bDeviceProtocol       255 
  bMaxPacketSize0        64
  idVendor           0x0582 Roland Corp.
  idProduct          0x0109 
  bcdDevice            0.01
  iManufacturer           1 BOSS
  iProduct                2 JS-8
  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 04 18 01 44 ac 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x05  EP 5 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0070  1x 112 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 04 18 01 44 ac 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x0070  1x 112 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 02 02
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 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     0x0200  1x 512 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            8 Mass Storage
  bDeviceSubClass         6 SCSI
  bDeviceProtocol        80 Bulk (Zip)
  bMaxPacketSize0        64
  bNumConfigurations      0
Device Status:     0x0001
  Self Powered

I wasn't entirely sure about the quirk syntax as the two interfaces are at EP 
4 and EP5. Does this mean I need to ignore the (non-existant) lower 
interfaces? Here's what I came up with:

{
        /* Boss JS-8 Jam Station  */
        USB_DEVICE(0x0582, 0x0109),
        .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
                /* .vendor_name = "BOSS", */
                /* .product_name = "JS-8", */
                .ifnum = QUIRK_ANY_INTERFACE,
                .type = QUIRK_COMPOSITE,
                .data = (const struct snd_usb_audio_quirk[]) {
                        {
                                .ifnum = 0,
                                .type = QUIRK_IGNORE_INTERFACE
                        },
                        {
                                .ifnum = 1,
                                .type = QUIRK_IGNORE_INTERFACE
                        },
                        {
                                .ifnum = 2,
                                .type = QUIRK_IGNORE_INTERFACE
                        },
                        {
                                .ifnum = 3,
                                .type = QUIRK_IGNORE_INTERFACE
                        },
                        {
                                .ifnum = 4,
                                .type = QUIRK_AUDIO_STANDARD_INTERFACE
                        },
                        {
                                .ifnum = 5,
                                .type = QUIRK_AUDIO_STANDARD_INTERFACE
                        },
                        {
                                .ifnum = -1
                        }
                }
        }
},


regards,


-- 
Keith A. Milner

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

* Re: USB Quirks for Boss JS-8
  2011-03-18 17:56 USB Quirks for Boss JS-8 Keith A. Milner
@ 2011-03-21  7:54 ` Daniel Mack
  2011-03-21 12:50   ` Keith A. Milner
  2011-03-21 13:32   ` Clemens Ladisch
  0 siblings, 2 replies; 10+ messages in thread
From: Daniel Mack @ 2011-03-21  7:54 UTC (permalink / raw)
  To: Keith A. Milner; +Cc: alsa-devel

On Fri, Mar 18, 2011 at 6:56 PM, Keith A. Milner
<maillist@superlative.org> wrote:
> Hi,
> I'm looking at developing a quirk for the Boss JS-8. The lsusb is as follows:
>

[...]

>
> I wasn't entirely sure about the quirk syntax as the two interfaces are at EP
> 4 and EP5. Does this mean I need to ignore the (non-existant) lower
> interfaces? Here's what I came up with:
>
> {
>        /* Boss JS-8 Jam Station  */
>        USB_DEVICE(0x0582, 0x0109),

Does this quirk help anything? I'm just asking because looking at the
descriptors,it's not clear whether this device does comply to any
standard interfaces at all. Could be the vendor just hides the
compliancy, but they might have implemented a proprietary protocol as
well.

Daniel

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

* Re: USB Quirks for Boss JS-8
  2011-03-21  7:54 ` Daniel Mack
@ 2011-03-21 12:50   ` Keith A. Milner
  2011-03-21 13:32   ` Clemens Ladisch
  1 sibling, 0 replies; 10+ messages in thread
From: Keith A. Milner @ 2011-03-21 12:50 UTC (permalink / raw)
  To: alsa-devel

On Monday 21 Mar 2011 07:54:13 Daniel Mack wrote:
> On Fri, Mar 18, 2011 at 6:56 PM, Keith A. Milner
> > 
> > {
> >        /* Boss JS-8 Jam Station  */
> >        USB_DEVICE(0x0582, 0x0109),
> 
> Does this quirk help anything? I'm just asking because looking at the
> descriptors,it's not clear whether this device does comply to any
> standard interfaces at all. Could be the vendor just hides the
> compliancy, but they might have implemented a proprietary protocol as
> well.

It's supposed to be a 2-in/2-out audio interface. At least that's what it 
shows up with on Windows. The Windows driver README contains the following:

"Of the total audio input/output channels provided by the JS-8, there are 2 
INs and 2 OUTs

[WAVE OUT Devices]
OUT (JS-8)
 
[WAVE IN Devices]
IN (JS-8)
 
[ASIO device]
When using the JS-8 with an ASIO-compatible application such as Cubase, select 
"JS-8" as the ASIO setting for your application.
*	To prevent an audio feedback loop or double monitoring, make settings on 
your application to turn monitoring off or use ASIO Direct Monitoring.
*	The JS-8 does not actually support ASIO Direct Monitoring. For greater 
ease of use, support is simulated.
*	When using the JS-8 with ASIO, we recommend that you set your application 
so that it does not use the Microsoft GS Wavetable SW Synth. (In order to 
decrease the load, and for convenience when changing Audio Buffer Size of the 
driver.)"

It could well be proprietary, but it's a Roland device and my understanding is 
it's not uncommon for Roland to hide standard usb-audio interfaces behind non-
standard identifiers.

I have USB Device Monitoring Studio on my Windows laptop so I can dig further, 
although I'm not entirely sure what I should be looking for.

Cheers,


-- 
Keith A. Milner

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

* Re: USB Quirks for Boss JS-8
  2011-03-21  7:54 ` Daniel Mack
  2011-03-21 12:50   ` Keith A. Milner
@ 2011-03-21 13:32   ` Clemens Ladisch
  2011-03-21 14:10     ` Keith A. Milner
  2011-03-21 14:45     ` Keith A. Milner
  1 sibling, 2 replies; 10+ messages in thread
From: Clemens Ladisch @ 2011-03-21 13:32 UTC (permalink / raw)
  To: Daniel Mack; +Cc: alsa-devel, Keith A. Milner

Daniel Mack wrote:
> On Fri, Mar 18, 2011 at 6:56 PM, Keith A. Milner
> <maillist@superlative.org> wrote:
> > Hi,
> > I'm looking at developing a quirk for the Boss JS-8. The lsusb is as follows:
> 
> [...]
> 
> > I wasn't entirely sure about the quirk syntax as the two interfaces are at EP
> > 4 and EP5. Does this mean I need to ignore the (non-existant) lower
> > interfaces? Here's what I came up with:
> 
> Does this quirk help anything?

Certainly not; endpoint numbers are not interface numbers.  Try with
audio interfaces 0 and 1 and MIDI interface 2.

> I'm just asking because looking at the descriptors,it's not clear
> whether this device does comply to any standard interfaces at all.

Many Roland devices work this way.   (And I'd expect any USB audio
developer to instantly recognize descriptors like "0b 24 02 01 02 04 18
01 44 ac 00". ;-)


Regards,
Clemens

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

* Re: USB Quirks for Boss JS-8
  2011-03-21 13:32   ` Clemens Ladisch
@ 2011-03-21 14:10     ` Keith A. Milner
  2011-03-21 14:45     ` Keith A. Milner
  1 sibling, 0 replies; 10+ messages in thread
From: Keith A. Milner @ 2011-03-21 14:10 UTC (permalink / raw)
  To: Clemens Ladisch; +Cc: alsa-devel

On Monday 21 Mar 2011 13:32:50 Clemens Ladisch wrote:
> Daniel Mack wrote:
> > On Fri, Mar 18, 2011 at 6:56 PM, Keith A. Milner
> > > I wasn't entirely sure about the quirk syntax as the two interfaces are
> > > at EP 4 and EP5. Does this mean I need to ignore the (non-existant)
> > > lower
> > 
> > > interfaces? Here's what I came up with:
> > Does this quirk help anything?
> 
> Certainly not; endpoint numbers are not interface numbers.  Try with
> audio interfaces 0 and 1 and MIDI interface 2.

Excellent. I will give this a try and see how it goes. I wasn't actually aware 
it had MIDI. I guess this may be used for some sort of control function, or 
maybe it's in the hardware but not supported in the devices firmware.

> 
> > I'm just asking because looking at the descriptors,it's not clear
> > whether this device does comply to any standard interfaces at all.
> 
> Many Roland devices work this way.   (And I'd expect any USB audio
> developer to instantly recognize descriptors like "0b 24 02 01 02 04 18
> 01 44 ac 00". ;-)

I have to profess my ignorance here.

Thanks for you help. I will report back on how I get on.

-- 
Keith A. Milner

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

* Re: USB Quirks for Boss JS-8
  2011-03-21 13:32   ` Clemens Ladisch
  2011-03-21 14:10     ` Keith A. Milner
@ 2011-03-21 14:45     ` Keith A. Milner
  2012-10-14 19:43       ` Adolfo
  1 sibling, 1 reply; 10+ messages in thread
From: Keith A. Milner @ 2011-03-21 14:45 UTC (permalink / raw)
  To: alsa-devel; +Cc: Clemens Ladisch, Daniel Mack

On Monday 21 Mar 2011 13:32:50 Clemens Ladisch wrote:
 Try with
> audio interfaces 0 and 1 and MIDI interface 2.

Well, that was remarkably easy! I tried with these settings and it seems to 
work very well.

At first try (using Ardour with Jack) both input and output work. Many thanks 
for your help on this.

I'll test it a bit more and then work out out to submit as a patch.

Cheers,


-- 
Keith A. Milner

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

* Re: USB Quirks for Boss JS-8
  2011-03-21 14:45     ` Keith A. Milner
@ 2012-10-14 19:43       ` Adolfo
  2012-10-16  7:47         ` Daniel Mack
  0 siblings, 1 reply; 10+ messages in thread
From: Adolfo @ 2012-10-14 19:43 UTC (permalink / raw)
  To: alsa-devel

Hi,

I am not able to hear any sounds in my JS-8 connected to my Fedora 17,

The device is recognised by the system, but no sound can be played,
I've tried with jack too, but no luck,
Can you please tell me if jackd needs any special parameters in order to run
with JS-8?

Best regards,
Adolfo

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

* Re: USB Quirks for Boss JS-8
  2012-10-14 19:43       ` Adolfo
@ 2012-10-16  7:47         ` Daniel Mack
  2012-10-16  8:04           ` Adolfo Ranea
  2013-04-14 23:00           ` Keith A. Milner
  0 siblings, 2 replies; 10+ messages in thread
From: Daniel Mack @ 2012-10-16  7:47 UTC (permalink / raw)
  To: Adolfo; +Cc: alsa-devel

On 14.10.2012 21:43, Adolfo wrote:
> I am not able to hear any sounds in my JS-8 connected to my Fedora 17,
> 
> The device is recognised by the system, but no sound can be played,
> I've tried with jack too, but no luck,
> Can you please tell me if jackd needs any special parameters in order to run
> with JS-8?

You might have hit a bug here that I introduced during a refactoring of
the driver. Unfortunately, I can't reproduce that with any of the
multiple USB audio devices I have at hand, but someone from the
alsa-user ML offered me to send over his device that also show this
problem, so I can have a look. Stay tuned please, and my apologies for
the trouble.

Meanwhile, you could check whether any of the kernels between 2.6.39 ->
3.4 works for you - they all have the quirk for the JS-8.


Thanks,
Daniel

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

* Re: USB Quirks for Boss JS-8
  2012-10-16  7:47         ` Daniel Mack
@ 2012-10-16  8:04           ` Adolfo Ranea
  2013-04-14 23:00           ` Keith A. Milner
  1 sibling, 0 replies; 10+ messages in thread
From: Adolfo Ranea @ 2012-10-16  8:04 UTC (permalink / raw)
  To: Daniel Mack; +Cc: alsa-devel

Thanks for your response,

If I can help you in testing the fix please let me know

Regards,
Adolfo

2012/10/16 Daniel Mack <zonque@gmail.com>

> On 14.10.2012 21:43, Adolfo wrote:
> > I am not able to hear any sounds in my JS-8 connected to my Fedora 17,
> >
> > The device is recognised by the system, but no sound can be played,
> > I've tried with jack too, but no luck,
> > Can you please tell me if jackd needs any special parameters in order to
> run
> > with JS-8?
>
> You might have hit a bug here that I introduced during a refactoring of
> the driver. Unfortunately, I can't reproduce that with any of the
> multiple USB audio devices I have at hand, but someone from the
> alsa-user ML offered me to send over his device that also show this
> problem, so I can have a look. Stay tuned please, and my apologies for
> the trouble.
>
> Meanwhile, you could check whether any of the kernels between 2.6.39 ->
> 3.4 works for you - they all have the quirk for the JS-8.
>
>
> Thanks,
> Daniel
>
>

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

* Re: USB Quirks for Boss JS-8
  2012-10-16  7:47         ` Daniel Mack
  2012-10-16  8:04           ` Adolfo Ranea
@ 2013-04-14 23:00           ` Keith A. Milner
  1 sibling, 0 replies; 10+ messages in thread
From: Keith A. Milner @ 2013-04-14 23:00 UTC (permalink / raw)
  To: alsa-devel

On Tuesday 16 Oct 2012 09:47:28 Daniel Mack wrote:
> On 14.10.2012 21:43, Adolfo wrote:
> > I am not able to hear any sounds in my JS-8 connected to my Fedora 17,
> > 
> > The device is recognised by the system, but no sound can be played,
> > I've tried with jack too, but no luck,
> > Can you please tell me if jackd needs any special parameters in order to
> > run with JS-8?
> 
> You might have hit a bug here that I introduced during a refactoring of
> the driver. Unfortunately, I can't reproduce that with any of the
> multiple USB audio devices I have at hand, but someone from the
> alsa-user ML offered me to send over his device that also show this
> problem, so I can have a look. Stay tuned please, and my apologies for
> the trouble.
> 
> Meanwhile, you could check whether any of the kernels between 2.6.39 ->
> 3.4 works for you - they all have the quirk for the JS-8.

If it's any help, I'm running Linux Mint 13 with a 3.2.0-34 kernel and it's 
working for me. I do get the following in dmesg:

[47696.764621] usb 1-6.2: new high-speed USB device number 12 using ehci_hcd
[47696.858892] MIDIStreaming interface descriptor not found
[47696.859099] init_device failed: MIDI 4-0: seq-midi

This is due to an error in the original quirk I submitted which was brought to 
light when some changes were made to the USB driver. I will try to tidy it up 
sometime.

Cheers,

Keith

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

end of thread, other threads:[~2013-04-14 23:00 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-18 17:56 USB Quirks for Boss JS-8 Keith A. Milner
2011-03-21  7:54 ` Daniel Mack
2011-03-21 12:50   ` Keith A. Milner
2011-03-21 13:32   ` Clemens Ladisch
2011-03-21 14:10     ` Keith A. Milner
2011-03-21 14:45     ` Keith A. Milner
2012-10-14 19:43       ` Adolfo
2012-10-16  7:47         ` Daniel Mack
2012-10-16  8:04           ` Adolfo Ranea
2013-04-14 23:00           ` Keith A. Milner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).