usb midi support for Alesis keyboard
Hans Petter Selasky
hans.petter.selasky at bitfrost.no
Sat May 18 08:44:35 UTC 2013
Hi,
You should use /usr/ports/jack_umidi to create jack nodes which your other software can access. The USB MIDI nodes are 100% raw data and not interconnected with the sound system in FreeBSD!
--HPS
-----Original message-----
From:Shane Ambler <FreeBSD at ShaneWare.Biz>
Sent:Sat 18-05-2013 10:13
Subject:Re: usb midi support for Alesis keyboard
To:Hans Petter Selasky <hans.petter.selasky at bitfrost.no>;
CC:freebsd-multimedia at freebsd.org;
On 18/05/2013 16:49, Hans Petter Selasky wrote:
> Hi,
>
> Try this patch:
>
> http://svnweb.freebsd.org/changeset/base/250765
>
With the device disconnecting - hw.usb.no_cs_fail=1 stopped that.
/dev/midistat still says no midi devices.
plug/un-plug creates/deletes /dev/umidi0.0 -> 15 (they are stable
without the disconnecting)
I'll try the patch and see how that goes. I rebuilt world to update to
9.1-RELEASE-p3 last night. Using a dtrace enabled kernel built with clang.
The Q49 is plugged directly into a usb2.0/1.1 socket at the back of the
motherboard.
I get the following from usbdump from a middle c
followed by usbconfig dump_curr_config_desc
# usbdump -i usbus2 -f 6 -s 65536 -vvv
16:28:47.266708 usbus2.6
DONE-BULK-EP=00000081,SPD=FULL,NFR=1,SLEN=64,IVAL=0,ERR=0
frame[0] READ 64 bytes
0000 09 90 3C 5A 00 00 00 00 00 00 00 00 00 00 00 00 |..<Z............|
0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
flags 0x12 <SHORT_XFER_OK|PROXY_BUFFER|0>
status 0xeb021
<OPEN|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
16:28:47.266713 usbus2.6 SUBM-BULK-EP=00000081,SPD=FULL,NFR=1,SLEN=0,IVAL=0
frame[0] READ 64 bytes
flags 0x12 <SHORT_XFER_OK|PROXY_BUFFER|0>
status 0xeb023
<OPEN|TRANSFERRING|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
16:28:47.403588 usbus2.6
DONE-BULK-EP=00000081,SPD=FULL,NFR=1,SLEN=64,IVAL=0,ERR=0
frame[0] READ 64 bytes
0000 08 80 3C 40 00 00 00 00 00 00 00 00 00 00 00 00 |..<@............|
0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
flags 0x12 <SHORT_XFER_OK|PROXY_BUFFER|0>
status 0xcb021
<OPEN|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
16:28:47.403593 usbus2.6 SUBM-BULK-EP=00000081,SPD=FULL,NFR=1,SLEN=0,IVAL=0
frame[0] READ 64 bytes
flags 0x12 <SHORT_XFER_OK|PROXY_BUFFER|0>
status 0xcb023
<OPEN|TRANSFERRING|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
# usbconfig -u 2 -a 6 dump_curr_config_desc
ugen2.6: <Q49 Alesis> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0065
bNumInterfaces = 0x0002
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x00a0
bMaxPower = 0x0032
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0000
bInterfaceClass = 0x0001
bInterfaceSubClass = 0x0001
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Additional Descriptor
bLength = 0x09
bDescriptorType = 0x24
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x09, 0x24, 0x01, 0x00, 0x01, 0x09, 0x00, 0x01,
0x08 | 0x01
Interface 1
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0001
bAlternateSetting = 0x0000
bNumEndpoints = 0x0002
bInterfaceClass = 0x0001
bInterfaceSubClass = 0x0003
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Additional Descriptor
bLength = 0x07
bDescriptorType = 0x24
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x07, 0x24, 0x01, 0x00, 0x01, 0x41, 0x00
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x24
bDescriptorSubType = 0x02
RAW dump:
0x00 | 0x06, 0x24, 0x02, 0x01, 0x01, 0x00
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x24
bDescriptorSubType = 0x02
RAW dump:
0x00 | 0x06, 0x24, 0x02, 0x02, 0x02, 0x00
Additional Descriptor
bLength = 0x09
bDescriptorType = 0x24
bDescriptorSubType = 0x03
RAW dump:
0x00 | 0x09, 0x24, 0x03, 0x01, 0x03, 0x01, 0x02, 0x01,
0x08 | 0x00
Additional Descriptor
bLength = 0x09
bDescriptorType = 0x24
bDescriptorSubType = 0x03
RAW dump:
0x00 | 0x09, 0x24, 0x03, 0x02, 0x04, 0x01, 0x01, 0x01,
0x08 | 0x00
Endpoint 0
bLength = 0x0009
bDescriptorType = 0x0005
bEndpointAddress = 0x0001 <OUT>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0040
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x05
bDescriptorType = 0x25
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x05, 0x25, 0x01, 0x01, 0x01
Endpoint 1
bLength = 0x0009
bDescriptorType = 0x0005
bEndpointAddress = 0x0081 <IN>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0040
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x05
bDescriptorType = 0x25
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x05, 0x25, 0x01, 0x01, 0x03
More information about the freebsd-multimedia
mailing list