BOSS BR-80 USB Audio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All,

[ Sorry about reposting. Someone suggested LAD, so I reposted this to
both LAD and LAU. ]

I bought BOSS BR-80 recently, which can be used as USB audio
interface. Unfortunately, Fedora15(2.6.38.8) didn't recognize it.
Maybe someone already made BR-80 work but my google search
didn't show any hint, so I decided to hack.

I added an entry to quirks-table.h for BR-80 (see below)  and recompiled
the snd-usb-audio module and re-installed the module.
I also added a dmex and softvol config to .asoundrc(see also below).
It now works as a playback device, which satisfies my current requirements.

The capture interface and MIDI seems not working.
The lsusb output contains a couple of 'UNRECOGNIZED' lines.
lsusb output,/proc/asound/, etc are also below.

Although I might not use these interfaces, I'm just curious to hack.

Can anyone suggest where I should look at?

Thanks,
Kaz

========================================

--- sound/usb/quirks-table.h.orig    2011-08-06 21:17:32.686663306 -0500
+++ sound/usb/quirks-table.h    2011-07-26 19:05:21.790767824 -0500
@@ -1611,6 +1611,34 @@
         }
     }
 },
+{
+    USB_DEVICE(0x0582, 0x0130),
+    .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
+        /* .vendor_name = "BOSS", */
+        /* .product_name = "MICRO BR-80", */
+        .ifnum = QUIRK_ANY_INTERFACE,
+        .type = QUIRK_COMPOSITE,
+        .data = (const struct snd_usb_audio_quirk[]) {
+            {
+                .ifnum = 0,
+                .type = QUIRK_AUDIO_STANDARD_INTERFACE
+            },
+            {
+                .ifnum = 1,
+                .type = QUIRK_AUDIO_STANDARD_INTERFACE
+            },
+            {
+                .ifnum = 2,
+                .type = QUIRK_MIDI_STANDARD_INTERFACE
+            },
+            {
+                .ifnum = -1
+            }
+        }
+    }
+},
+
+

========================================
$HOME/.asoundrc

pcm.dmixer  {
     type dmix
     ipc_key 333444  # uniq val
     slave {
        pcm { type hw; card BR80AUDIO; }
        period_time 0
        period_size 1024
        buffer_size 8192
        rate 44100
    }
    bindings {
        0 0
        1 1
    }
}

#http://alsa.opensrc.org/How_to_use_softvol_to_control_the_master_volume
pcm.softvol {
    type            softvol
    slave {
        pcm         "dmixer"
    }
    control {
        name        "Master"
        card        0     # is this right?
    }
}

pcm.!default {
    type plug
    slave.pcm "softvol"
}

========================================

$ find /proc/asound/BR80AUDIO/ -type f
/proc/asound/BR80AUDIO/id
/proc/asound/BR80AUDIO/usbbus
/proc/asound/BR80AUDIO/usbid
/proc/asound/BR80AUDIO/stream0
/proc/asound/BR80AUDIO/midi0
/proc/asound/BR80AUDIO/pcm0p/sub0/status
/proc/asound/BR80AUDIO/pcm0p/sub0/sw_params
/proc/asound/BR80AUDIO/pcm0p/sub0/hw_params
/proc/asound/BR80AUDIO/pcm0p/sub0/info
/proc/asound/BR80AUDIO/pcm0p/xrun_debug
/proc/asound/BR80AUDIO/pcm0p/info

========================================

This message appears in kernel log
[81902.426215] ALSA sound/usb/midi.c:1680: MIDIStreaming interface descriptor not found

========================================

lsusb output

Bus 002 Device 008: ID 0582:0130 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          0x0130
  bcdDevice            0.00
  iManufacturer           1
  iProduct                2
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          176
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower                2mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol      0
      iInterface              0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      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        1
      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     0x0d  EP 13 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0038  1x 56 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2
      bInterfaceProtocol      1
      iInterface              0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      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     0x8e  EP 14 IN
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x0038  1x 56 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      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     0x0200  1x 512 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 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        3
      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     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@xxxxxxxxxxxxxxxxxxxx
http://lists.linuxaudio.org/listinfo/linux-audio-user


[Index of Archives]     [Linux Sound]     [ALSA Users]     [Pulse Audio]     [ALSA Devel]     [Sox Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux