Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UHS_MIDI: Arturia Beatstep Pro not working #61

Closed
recliq opened this issue May 3, 2020 · 3 comments
Closed

UHS_MIDI: Arturia Beatstep Pro not working #61

recliq opened this issue May 3, 2020 · 3 comments

Comments

@recliq
Copy link

recliq commented May 3, 2020

Hi,

I'm trying to use UHS_MIDI to connect an Arturia Beatstep Pro which is not working.
It seems to find and connect the device, but as soon as any data from the device arrives it just disconnects the device...





Configuring: parent = 0, port = 1, speed = 1


Configuring PktSize 0x40,  rcode: 0x00, retries 0
ep entry for interface 2 ep 0 max packet size = 64
ctrlReq2: left: 64, read:64, nbytes 64
RESULT: 0x00 0x00 0x12 0x0040000001000680
ctrlReq3: acceptBuffer sz 18 nbytes 64 left 46

ep entry for interface 2 ep 0 max packet size = 64
0 retries.
DevDescr 2nd poll, bMaxPacketSize0:64
ep entry for interface 11 ep 0 max packet size = 64
ctrlReq2: left: 18, read:18, nbytes 18
RESULT: 0x00 0x01 0x12 0x0012000001000680
ep entry for interface 2 ep 0 max packet size = 64
0 retries.
configs: 1
ep entry for interface 2 ep 0 max packet size = 64
ctrlReq2: left: 9, read:9, nbytes 9
RESULT: 0x00 0x01 0x09 0x0009000002000680
CONFIGURATION: 0, bNumInterfaces 2, wTotalLength 133
ep entry for interface 2 ep 0 max packet size = 64
bLength: 9 bDescriptorType: 02
eating 8
bLength: 9 bDescriptorType: 04
INTERFACE DESCRIPTOR FOUND
Getting 0 endpoints
eating 1
ENDPOINT DESCRIPTORS FILLED
TestInterface VID:1c75 PID:0287 Class:00 Subclass:00 Protocol 00
Interface data: Class:01 Subclass:01 Protocol 01, number of endpoints 0
Parent: 00, bAddress: 01
MIDI: checking vid 1c75, pid 0287, iface class 1, subclass 1
No driver at index 1
No driver at index 2
No driver at index 3
No driver at index 4
No driver at index 5
No driver at index 6
No driver at index 7
No driver at index 8
No driver at index 9
No driver at index 10
No driver at index 11
No driver at index 12
No driver at index 13
No driver at index 14
No driver at index 15
No driver for this interface.
bLength: 9 bDescriptorType: 24
eating 8
bLength: 9 bDescriptorType: 04
INTERFACE DESCRIPTOR FOUND
Getting 2 endpoints
bLength: 7 bDescriptorType: 24
eating 5
bLength: 6 bDescriptorType: 24
eating 4
bLength: 6 bDescriptorType: 24
eating 4
bLength: 6 bDescriptorType: 24
eating 4
bLength: 6 bDescriptorType: 24
eating 4
bLength: 9 bDescriptorType: 24
eating 7
bLength: 9 bDescriptorType: 24
eating 7
bLength: 9 bDescriptorType: 24
eating 7
bLength: 9 bDescriptorType: 24
eating 7
bLength: 9 bDescriptorType: 05
ENDPOINT DESCRIPTOR: 0
ENDPOINT DESCRIPTOR OK
eating 2
bLength: 6 bDescriptorType: 25
eating 4
bLength: 9 bDescriptorType: 05
ENDPOINT DESCRIPTOR: 1
ENDPOINT DESCRIPTOR OK
eating 2
eating 1
ENDPOINT DESCRIPTORS FILLED
TestInterface VID:1c75 PID:0287 Class:00 Subclass:00 Protocol 00
Interface data: Class:01 Subclass:03 Protocol 03, number of endpoints 2
Parent: 00, bAddress: 01
MIDI: checking vid 1c75, pid 0287, iface class 1, subclass 3
Driver 0 supports this interface
Driver 0 can be used for this interface
bLength: 6 bDescriptorType: 25
eating 5
USB_INTERFACE END OF STREAM
ep entry for interface 2 ep 0 max packet size = 64
ctrlReq2: left: 9, read:9, nbytes 9
RESULT: 0x00 0x01 0x09 0x0009000002000680
CONFIGURATION: 1, bNumInterfaces 2, wTotalLength 133
Best configuration is 1, enumerating interfaces.
ep entry for interface 2 ep 0 max packet size = 64
bLength: 9 bDescriptorType: 02
eating 8
bLength: 9 bDescriptorType: 04
INTERFACE DESCRIPTOR FOUND
Getting 0 endpoints
eating 1
ENDPOINT DESCRIPTORS FILLED
AttemptConfig: parent = 0, port = 1
MIDI: checking vid 1c75, pid 0287, iface class 1, subclass 1
No driver at index 1
No driver at index 2
No driver at index 3
No driver at index 4
No driver at index 5
No driver at index 6
No driver at index 7
No driver at index 8
No driver at index 9
No driver at index 10
No driver at index 11
No driver at index 12
No driver at index 13
No driver at index 14
No driver at index 15
No interface driver for this interface.bLength: 9 bDescriptorType: 24
eating 8
bLength: 9 bDescriptorType: 04
INTERFACE DESCRIPTOR FOUND
Getting 2 endpoints
bLength: 7 bDescriptorType: 24
eating 5
bLength: 6 bDescriptorType: 24
eating 4
bLength: 6 bDescriptorType: 24
eating 4
bLength: 6 bDescriptorType: 24
eating 4
bLength: 6 bDescriptorType: 24
eating 4
bLength: 9 bDescriptorType: 24
eating 7
bLength: 9 bDescriptorType: 24
eating 7
bLength: 9 bDescriptorType: 24
eating 7
bLength: 9 bDescriptorType: 24
eating 7
bLength: 9 bDescriptorType: 05
ENDPOINT DESCRIPTOR: 0
ENDPOINT DESCRIPTOR OK
eating 2
bLength: 6 bDescriptorType: 25
eating 4
bLength: 9 bDescriptorType: 05
ENDPOINT DESCRIPTOR: 1
ENDPOINT DESCRIPTOR OK
eating 2
eating 1
ENDPOINT DESCRIPTORS FILLED
AttemptConfig: parent = 0, port = 1
MIDI: checking vid 1c75, pid 0287, iface class 1, subclass 3
Driver 0 supports this interface
MIDI: SetInterface
MIDI: found 3 endpoints
MIDI: address 1, config 1, iface 1 with 3 endpoints
Interface Configured
bLength: 6 bDescriptorType: 25
eating 5
ep entry for interface 2 ep 0 max packet size = 64
Driver 0 @ 01 Initialize
MIDI: Start
MIDI: device detected
MIDI: EpInfoEntry OK
MIDI: OnStart OK
Total endpoints = (3)3
Driver 1 no driver at this index.
Driver 2 no driver at this index.
Driver 3 no driver at this index.
Driver 4 no driver at this index.
Driver 5 no driver at this index.
Driver 6 no driver at this index.
Driver 7 no driver at this index.
Driver 8 no driver at this index.
Driver 9 no driver at this index.
Driver 10 no driver at this index.
Driver 11 no driver at this index.
Driver 12 no driver at this index.
Driver 13 no driver at this index.
Driver 14 no driver at this index.
Driver 15 no driver at this index.
Connected to MI01⸮⸮p⸮0⸮⸮ ⸮⸮01⸮⸮⸮�⸮⸮0i⸮0⸮⸮⸮⸮⸮⸮⸮⸮�⸮⸮⸮�⸮⸮⸮�⸮⸮⸮⸮⸮�⸮⸮⸮⸮⸮⸮⸮�⸮⸮⸮⸮⸮�⸮⸮⸮⸮⸮⸮⸮�⸮⸮⸮⸮⸮ϒߒ⸮⸮⸮�⸮�⸮ϓߓl�{�⸮�����⸮�^�⸮�⸮�⸮�⸮�Y⸮i⸮⸮�⸮⸮⸮�⸮⸮⸮⸮-I
ep entry for interface 8 ep 1 max packet size = 64
ep entry for interface 8 ep 1 max packet size = 64
ep entry for interface 8 ep 1 max packet size = 64
ep entry for interface 8 ep 1 max packet size = 64
ep entry for interface 8 ep 1 max packet size = 64


Disconnected from MIDI

Output of lsusb:


Bus 004 Device 004: ID 1c75:0287  
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1c75 
  idProduct          0x0287 
  bcdDevice            1.00
  iManufacturer           1 Arturia
  iProduct                2 Arturia BeatStep Pro
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          133
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength            9
        bInCollection           1
        baInterfaceNr( 0)       1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      3 MIDI Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      MIDIStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength           95
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               1 Embedded
        bJackID                 1
        iJack                   4 Arturia BeatStepPro
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               2 External
        bJackID                 2
        iJack                   0 
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               1 Embedded
        bJackID                 5
        iJack                   6 BeatStepProInEditor
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               2 External
        bJackID                 6
        iJack                   0 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               1 Embedded
        bJackID                 3
        bNrInputPins            1
        baSourceID( 0)          2
        BaSourcePin( 0)         1
        iJack                   3 Arturia BeatStepPro
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               2 External
        bJackID                 4
        bNrInputPins            1
        baSourceID( 0)          1
        BaSourcePin( 0)         1
        iJack                   0 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               1 Embedded
        bJackID                 7
        bNrInputPins            1
        baSourceID( 0)          6
        BaSourcePin( 0)         1
        iJack                   5 BeatStepPro OutEditor
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               2 External
        bJackID                 8
        bNrInputPins            1
        baSourceID( 0)          5
        BaSourcePin( 0)         1
        iJack                   0 
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
        bRefresh                0
        bSynchAddress           0
        MIDIStreaming Endpoint Descriptor:
          bLength                 6
          bDescriptorType        37
          bDescriptorSubtype      1 (GENERAL)
          bNumEmbMIDIJack         2
          baAssocJackID( 0)       1
          baAssocJackID( 1)       5
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
        bRefresh                0
        bSynchAddress           0
        MIDIStreaming Endpoint Descriptor:
          bLength                 6
          bDescriptorType        37
          bDescriptorSubtype      1 (GENERAL)
          bNumEmbMIDIJack         2
          baAssocJackID( 0)       3
          baAssocJackID( 1)       7
Device Status:     0x0002
  (Bus Powered)
  Remote Wakeup Enabled

The Beatstep Pro reports 2 Midi-In and MidiOut Ports, one seems to be used by for the configuration utility only...

@WonkoSan
Copy link

Interesting issue. I am also working on a Midi project but I am going to wire up a 5-pin 5 connector to use as my Midi out port instead of Midi-over-USB.

@xxxajk
Copy link
Collaborator

xxxajk commented May 11, 2020

The biggest issue with this brand is that they expect USB 2 HIGH speed, and they don't queue keys/pads/etc. When this happens, either the atmega gets overwhelmed and will miss key/pad presses, or disconnect. I've seen both happen. Doesn't happen on the Yamaha keyboard or the other one I have here.

Since the atmega just can't keep up, I recommend getting a Teensy 3.6 from PJRC.com. There's no need to add a host shield (host is built in) and you get high-speed USB instead of just low and full speed. On top of that, you can use huge buffers to store key and pad smashing and keep up with the data if you have to. Paul's support is second to none too.

@recliq
Copy link
Author

recliq commented May 11, 2020

Thank you for your detailed answer @xxxajk . I will try a teensy and see if that works.

@recliq recliq closed this as completed May 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants