Teensy 3.6 USBHost interfacing Ableton Push2

Status
Not open for further replies.

Van

Well-known member
hi there!

I need some help with the push2 when teensy3.6 acts as a USB host.

the obvious reason is that push2 uses multiple midi interfaces:

Code:
amidi -l

IO  hw:2,0,0  Ableton Push 2 MIDI 1
IO  hw:2,0,1  Ableton Push 2 MIDI 2
IO  hw:3,0,0  Arturia KeyStep 32 MIDI 1

how can i specify the proper midi port?

cheers!

PS. Connecting to a "normal" usb midi keyboard works well.
 
Last edited:
Is "push 2" fully USB MIDI class compliant?

Edit USBHost_t36 to turn on the debug printing. Then capture the huge output and post it here (use the "#" button for code tags).
 
hey thank you for your attention! :)
yes it is class compliant
https://github.com/Ableton/push-interface/blob/master/doc/AbletonPush2MIDIDisplayInterface.asc
here is my output:
Code:
USB Host Testing
sizeof Device = 36
sizeof Pipe = 96
sizeof Transfer = 64
power up USBHS PHY
port change: 10001803
    connect
  begin reset
port change: 18001205
  port enabled
  end recovery
new_Device: 480 Mbit/sec
new_Pipe
enumeration:
enumeration:
enumeration:
Device Descriptor:
  12 01 00 02 00 00 00 40 82 29 67 19 00 01 01 02 00 01 
    VendorID = 2982, ProductID = 1967, Version = 0100
    Class/Subclass/Protocol = 0 / 0 / 0
    Number of Configurations = 1
enumeration:
enumeration:
Manufacturer: Ableton AG
enumeration:
Product: Ableton Push 2
enumeration:
Config data length = 126
enumeration:
Configuration Descriptor:
  09 02 7E 00 03 01 00 80 FA 
    NumInterfaces = 3
    ConfigurationValue = 1
  09 04 00 00 02 FF FF FF 03 
    Interface = 0
    Number of endpoints = 2
    Class/Subclass/Protocol = 255 / 255 / 255
  07 05 01 02 00 02 00 
    Endpoint = 1 OUT
    Type = Bulk
    Max Size = 512
    Polling Interval = 0
  07 05 81 02 00 02 00 
    Endpoint = 1 IN
    Type = Bulk
    Max Size = 512
    Polling Interval = 0
  09 04 01 00 00 01 01 00 00 
    Interface = 1
    Number of endpoints = 0
    Class/Subclass/Protocol = 1 / 1 / 0
  09 24 01 00 01 09 00 01 02 
  09 04 02 00 02 01 03 00 00 
    Interface = 2
    Number of endpoints = 2
    Class/Subclass/Protocol = 1 / 3 / 0
  07 24 01 00 01 25 00 
  06 24 02 01 01 04 
  06 24 02 01 02 05 
  09 24 03 01 03 01 01 01 04 
  09 24 03 01 04 01 02 01 05 
  09 05 02 02 00 02 00 00 00 
    Endpoint = 2 OUT
    Type = Bulk
    Max Size = 512
    Polling Interval = 0
  06 25 01 02 01 02 
  09 05 82 02 00 02 00 00 00 
    Endpoint = 2 IN
    Type = Bulk
    Max Size = 512
    Polling Interval = 0
  06 25 01 02 03 04 
enumeration:
USBHub memory usage = 960
USBHub claim_device this=1FFF2DA0
USBHub memory usage = 960
USBHub claim_device this=1FFF3160
Descriptor 4 = INTERFACE
MIDIDevice claim this=1FFF2020
len = 117
MIDIDevice claim this=1FFF26E0
len = 117
Descriptor 5 = ENDPOINT
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE
MIDIDevice claim this=1FFF2020
len = 94
MIDIDevice claim this=1FFF26E0
len = 94
Descriptor 36 =  ???
Descriptor 4 = INTERFACE
MIDIDevice claim this=1FFF2020
len = 76
  Interface is MIDI
type: 36, len: 7
    MIDI Header (ignored)
type: 36, len: 6
    MIDI IN Jack (ignored)
type: 36, len: 6
    MIDI IN Jack (ignored)
type: 36, len: 9
    MIDI OUT Jack (ignored)
type: 36, len: 9
    MIDI OUT Jack (ignored)
type: 5, len: 9
    MIDI Endpoint: 2
      tx_size = 512
type: 37, len: 6
    MIDI Endpoint Jack Association (ignored)
type: 5, len: 9
    MIDI Endpoint: 82
      rx_size = 512
type: 37, len: 6
    MIDI Endpoint Jack Association (ignored)
MIDIDevice claim this=1FFF26E0
len = 76
  Interface is MIDI
type: 36, len: 7
    MIDI Header (ignored)
type: 36, len: 6
    MIDI IN Jack (ignored)
type: 36, len: 6
    MIDI IN Jack (ignored)
type: 36, len: 9
    MIDI OUT Jack (ignored)
type: 36, len: 9
    MIDI OUT Jack (ignored)
type: 5, len: 9
    MIDI Endpoint: 2
      tx_size = 512
type: 37, len: 6
    MIDI Endpoint Jack Association (ignored)
type: 5, len: 9
    MIDI Endpoint: 82
      rx_size = 512
type: 37, len: 6
    MIDI Endpoint Jack Association (ignored)
Descriptor 36 =  ???
Descriptor 36 =  ???
Descriptor 36 =  ???
Descriptor 36 =  ???
Descriptor 36 =  ???
Descriptor 5 = ENDPOINT
Descriptor 37 =  ???
Descriptor 5 = ENDPOINT
Descriptor 37 =  ???
...
 
Are you using the "BigBuffer" version of the MIDI device driver? This is a 480 MBit speed device, so the normal small buffer driver isn't enough.
 
Are you using the "BigBuffer" version of the MIDI device driver? This is a 480 MBit speed device, so the normal small buffer driver isn't enough.

how can I set the "BigBuffer" version?

EDIT: I figured it out: I somehow used an older version of the USBHost_t36 lib. Now it works!
I updated to the newest github version and replaced ...

Code:
MIDIDevice midi1(myusb);
with
Code:
MIDIDevice_BigBuffer midi1(myusb);

thank you very much for helping me out!

cheers!
 
Last edited:
Status
Not open for further replies.
Back
Top