[alsa-devel] Line 6 Helix quirks
Jens Verwiebe
info at jensverwiebe.de
Mon Nov 25 19:14:24 CET 2019
Hey Nick
The diff is a bit meanigless this way, do "sudo lsusb -vvvv -d 0e41:4246"
Then the device is opened and you should get some more info. Anyway,
this will not bring
any new insight i think. I have to wait for a true usb expert.
Exept for the HID interface ( for key cmd's ) the Helix is fully the
same descriptorwise.
Jens
Am 25.11.19 um 00:23 schrieb nick83ola:
> This is with kernel 5.3.1 lowlatency from ubuntu
>
> uname -a
> Linux nick-beastie 5.3.1-050301*-lowlatency* #201909210632 SMP PREEMPT Sat
> Sep 21 06:36:56 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
>
>
> diff helix.txt hxstomp.txt
> 1c1
> < Bus 009 Device 011: ID 0e41:424a Line6, Inc.
> ---
>> Bus 001 Device 014: ID 0e41:4246 Line6, Inc.
> 7c7
> < bDeviceSubClass 2 ?
> ---
>> bDeviceSubClass 2
> 11c11
> < idProduct 0x424a
> ---
>> idProduct 0x4246
> 14,15c14,15
> < iProduct 2 HELIX
> < iSerial 3 2744535
> ---
>> iProduct 3 HX Stomp
>> iSerial 2 3021888
> 20,21c20,21
> < wTotalLength 304
> < bNumInterfaces 6
> ---
>> wTotalLength 0x0117
>> bNumInterfaces 5
> 26c26
> < MaxPower 100mA
> ---
>> MaxPower 0mA
> 36c36
> < iInterface 4 Msg Pipe
> ---
>> iInterface 0
> 75c75
> < iInterface 6 HELIX Audio
> ---
>> iInterface 0
> 83c83
> < bmControl 0x00
> ---
>> bmControls 0x00
> 166c166
> < AudioControl Endpoint Descriptor:
> ---
>> AudioStreaming Endpoint Descriptor:
> 223c223
> < AudioControl Endpoint Descriptor:
> ---
>> AudioStreaming Endpoint Descriptor:
> 240c240
> < iInterface 7 HELIX MIDI
> ---
>> iInterface 0
> 284c284
> < bEndpointAddress 0x04 EP 4 OUT
> ---
>> bEndpointAddress 0x02 EP 2 OUT
> 302c302
> < bEndpointAddress 0x84 EP 4 IN
> ---
>> bEndpointAddress 0x82 EP 2 IN
> 317,346d316
> < Interface Descriptor:
> < bLength 9
> < bDescriptorType 4
> < bInterfaceNumber 5
> < bAlternateSetting 0
> < bNumEndpoints 1
> < bInterfaceClass 3 Human Interface Device
> < bInterfaceSubClass 0 No Subclass
> < bInterfaceProtocol 0 None
> < iInterface 0
> < HID Device Descriptor:
> < bLength 9
> < bDescriptorType 33
> < bcdHID 1.11
> < bCountryCode 0 Not supported
> < bNumDescriptors 1
> < bDescriptorType 34 Report
> < wDescriptorLength 37
> < Report Descriptors:
> < ** UNAVAILABLE **
> < Endpoint Descriptor:
> < bLength 7
> < bDescriptorType 5
> < bEndpointAddress 0x85 EP 5 IN
> < bmAttributes 3
> < Transfer Type Interrupt
> < Synch Type None
> < Usage Type Data
> < wMaxPacketSize 0x0008 1x 8 bytes
> < bInterval 8
> 351c321
> < bDeviceClass 0 (Defined at Interface level)
> ---
>> bDeviceClass 0
> 355a326
>> can't get debug descriptor: Resource temporarily unavailable
>
>
> On Sun, 24 Nov 2019 at 23:13, nick83ola <nick83ola at gmail.com> wrote:
>
>> [29054.588559] usb 1-1.2.2: new high-speed USB device number 14 using
>> xhci_hcd
>> [29054.665318] usb 1-1.2.2: New USB device found, idVendor=0e41,
>> idProduct=4246, bcdDevice= 2.00
>> [29054.665320] usb 1-1.2.2: New USB device strings: Mfr=1, Product=3,
>> SerialNumber=2
>> [29054.665320] usb 1-1.2.2: Product: HX Stomp
>> [29054.665321] usb 1-1.2.2: Manufacturer: LINE 6
>> [29054.665321] usb 1-1.2.2: SerialNumber: 3021888
>> [29054.669712] usb 1-1.2.2: parse_audio_format_rates_v2v3(): unable to
>> retrieve number of sample rates: set it to a predefined value (clock 16).
>> [29054.671488] usb 1-1.2.2: parse_audio_format_rates_v2v3(): unable to
>> retrieve number of sample rates: set it to a predefined value (clock 16).
>>
>>
>> $ lsusb -v -d 0e41:4246
>>
>> Bus 001 Device 014: ID 0e41:4246 Line6, Inc.
>> Device Descriptor:
>> bLength 18
>> bDescriptorType 1
>> bcdUSB 2.00
>> bDeviceClass 239 Miscellaneous Device
>> bDeviceSubClass 2
>> bDeviceProtocol 1 Interface Association
>> bMaxPacketSize0 64
>> idVendor 0x0e41 Line6, Inc.
>> idProduct 0x4246
>> bcdDevice 2.00
>> iManufacturer 1 LINE 6
>> iProduct 3 HX Stomp
>> iSerial 2 3021888
>> bNumConfigurations 1
>> Configuration Descriptor:
>> bLength 9
>> bDescriptorType 2
>> wTotalLength 0x0117
>> bNumInterfaces 5
>> bConfigurationValue 1
>> iConfiguration 0
>> bmAttributes 0xc0
>> Self Powered
>> MaxPower 0mA
>> Interface Descriptor:
>> bLength 9
>> bDescriptorType 4
>> bInterfaceNumber 0
>> bAlternateSetting 0
>> bNumEndpoints 2
>> bInterfaceClass 255 Vendor Specific Class
>> bInterfaceSubClass 0
>> bInterfaceProtocol 0
>> iInterface 0
>> Endpoint Descriptor:
>> bLength 7
>> bDescriptorType 5
>> bEndpointAddress 0x81 EP 1 IN
>> bmAttributes 2
>> Transfer Type Bulk
>> Synch Type None
>> Usage Type Data
>> wMaxPacketSize 0x0200 1x 512 bytes
>> bInterval 0
>> Endpoint Descriptor:
>> bLength 7
>> bDescriptorType 5
>> bEndpointAddress 0x01 EP 1 OUT
>> bmAttributes 2
>> Transfer Type Bulk
>> Synch Type None
>> Usage Type Data
>> wMaxPacketSize 0x0200 1x 512 bytes
>> bInterval 0
>> Interface Association:
>> bLength 8
>> bDescriptorType 11
>> bFirstInterface 1
>> bInterfaceCount 4
>> bFunctionClass 1 Audio
>> bFunctionSubClass 0
>> bFunctionProtocol 32
>> iFunction 0
>> Interface Descriptor:
>> bLength 9
>> bDescriptorType 4
>> bInterfaceNumber 1
>> bAlternateSetting 0
>> bNumEndpoints 0
>> bInterfaceClass 1 Audio
>> bInterfaceSubClass 1 Control Device
>> bInterfaceProtocol 32
>> iInterface 0
>> AudioControl Interface Descriptor:
>> bLength 9
>> bDescriptorType 36
>> bDescriptorSubtype 1 (HEADER)
>> bcdADC 2.00
>> bCategory 10
>> wTotalLength 0x002e
>> bmControls 0x00
>> AudioControl Interface Descriptor:
>> bLength 8
>> bDescriptorType 36
>> bDescriptorSubtype 10 (CLOCK_SOURCE)
>> bClockID 16
>> bmAttributes 1 Internal fixed clock
>> bmControls 0x00
>> bAssocTerminal 0
>> iClockSource 0
>> AudioControl Interface Descriptor:
>> bLength 17
>> bDescriptorType 36
>> bDescriptorSubtype 2 (INPUT_TERMINAL)
>> bTerminalID 32
>> wTerminalType 0x0201 Microphone
>> bAssocTerminal 64
>> bCSourceID 16
>> bNrChannels 8
>> bmChannelConfig 0x00000000
>> iChannelNames 0
>> bmControls 0x0000
>> iTerminal 0
>> AudioControl Interface Descriptor:
>> bLength 12
>> bDescriptorType 36
>> bDescriptorSubtype 3 (OUTPUT_TERMINAL)
>> bTerminalID 64
>> wTerminalType 0x0301 Speaker
>> bAssocTerminal 32
>> bSourceID 32
>> bCSourceID 16
>> bmControls 0x0000
>> iTerminal 0
>> Interface Descriptor:
>> bLength 9
>> bDescriptorType 4
>> bInterfaceNumber 2
>> bAlternateSetting 0
>> bNumEndpoints 0
>> bInterfaceClass 1 Audio
>> bInterfaceSubClass 2 Streaming
>> bInterfaceProtocol 32
>> iInterface 0
>> Interface Descriptor:
>> bLength 9
>> bDescriptorType 4
>> bInterfaceNumber 2
>> bAlternateSetting 1
>> bNumEndpoints 1
>> bInterfaceClass 1 Audio
>> bInterfaceSubClass 2 Streaming
>> bInterfaceProtocol 32
>> iInterface 0
>> AudioStreaming Interface Descriptor:
>> bLength 16
>> bDescriptorType 36
>> bDescriptorSubtype 1 (AS_GENERAL)
>> bTerminalLink 32
>> bmControls 0x00
>> bFormatType 1
>> bmFormats 0x00000001
>> PCM
>> bNrChannels 8
>> bmChannelConfig 0x00000000
>> iChannelNames 0
>> AudioStreaming Interface Descriptor:
>> bLength 6
>> bDescriptorType 36
>> bDescriptorSubtype 2 (FORMAT_TYPE)
>> bFormatType 1 (FORMAT_TYPE_I)
>> bSubslotSize 4
>> bBitResolution 24
>> Endpoint Descriptor:
>> bLength 7
>> bDescriptorType 5
>> bEndpointAddress 0x03 EP 3 OUT
>> bmAttributes 5
>> Transfer Type Isochronous
>> Synch Type Asynchronous
>> Usage Type Data
>> wMaxPacketSize 0x00e0 1x 224 bytes
>> bInterval 1
>> AudioStreaming Endpoint Descriptor:
>> bLength 8
>> bDescriptorType 37
>> bDescriptorSubtype 1 (EP_GENERAL)
>> bmAttributes 0x00
>> bmControls 0x00
>> bLockDelayUnits 0 Undefined
>> wLockDelay 0x0000
>> Interface Descriptor:
>> bLength 9
>> bDescriptorType 4
>> bInterfaceNumber 3
>> bAlternateSetting 0
>> bNumEndpoints 0
>> bInterfaceClass 1 Audio
>> bInterfaceSubClass 2 Streaming
>> bInterfaceProtocol 32
>> iInterface 0
>> Interface Descriptor:
>> bLength 9
>> bDescriptorType 4
>> bInterfaceNumber 3
>> bAlternateSetting 1
>> bNumEndpoints 1
>> bInterfaceClass 1 Audio
>> bInterfaceSubClass 2 Streaming
>> bInterfaceProtocol 32
>> iInterface 0
>> AudioStreaming Interface Descriptor:
>> bLength 16
>> bDescriptorType 36
>> bDescriptorSubtype 1 (AS_GENERAL)
>> bTerminalLink 64
>> bmControls 0x00
>> bFormatType 1
>> bmFormats 0x00000001
>> PCM
>> bNrChannels 8
>> bmChannelConfig 0x00000000
>> iChannelNames 0
>> AudioStreaming Interface Descriptor:
>> bLength 6
>> bDescriptorType 36
>> bDescriptorSubtype 2 (FORMAT_TYPE)
>> bFormatType 1 (FORMAT_TYPE_I)
>> bSubslotSize 4
>> bBitResolution 24
>> Endpoint Descriptor:
>> bLength 7
>> bDescriptorType 5
>> bEndpointAddress 0x83 EP 3 IN
>> bmAttributes 37
>> Transfer Type Isochronous
>> Synch Type Asynchronous
>> Usage Type Implicit feedback Data
>> wMaxPacketSize 0x00e0 1x 224 bytes
>> bInterval 1
>> AudioStreaming Endpoint Descriptor:
>> bLength 8
>> bDescriptorType 37
>> bDescriptorSubtype 1 (EP_GENERAL)
>> bmAttributes 0x00
>> bmControls 0x00
>> bLockDelayUnits 0 Undefined
>> wLockDelay 0x0000
>> Interface Descriptor:
>> bLength 9
>> bDescriptorType 4
>> bInterfaceNumber 4
>> 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 0x003d
>> MIDIStreaming Interface Descriptor:
>> bLength 6
>> bDescriptorType 36
>> bDescriptorSubtype 2 (MIDI_IN_JACK)
>> bJackType 1 Embedded
>> bJackID 1
>> iJack 0
>> MIDIStreaming Interface Descriptor:
>> bLength 6
>> bDescriptorType 36
>> bDescriptorSubtype 2 (MIDI_IN_JACK)
>> bJackType 2 External
>> bJackID 2
>> 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 0
>> 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
>> Endpoint Descriptor:
>> bLength 9
>> bDescriptorType 5
>> bEndpointAddress 0x02 EP 2 OUT
>> bmAttributes 2
>> Transfer Type Bulk
>> Synch Type None
>> Usage Type Data
>> wMaxPacketSize 0x0200 1x 512 bytes
>> bInterval 0
>> bRefresh 0
>> bSynchAddress 0
>> MIDIStreaming Endpoint Descriptor:
>> bLength 5
>> bDescriptorType 37
>> bDescriptorSubtype 1 (GENERAL)
>> bNumEmbMIDIJack 1
>> baAssocJackID( 0) 1
>> Endpoint Descriptor:
>> bLength 9
>> 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
>> bRefresh 0
>> bSynchAddress 0
>> MIDIStreaming Endpoint Descriptor:
>> bLength 5
>> bDescriptorType 37
>> bDescriptorSubtype 1 (GENERAL)
>> bNumEmbMIDIJack 1
>> baAssocJackID( 0) 3
>> Device Qualifier (for other device speed):
>> bLength 10
>> bDescriptorType 6
>> bcdUSB 2.00
>> bDeviceClass 0
>> bDeviceSubClass 0
>> bDeviceProtocol 0
>> bMaxPacketSize0 64
>> bNumConfigurations 1
>> can't get debug descriptor: Resource temporarily unavailable
>> Device Status: 0x0001
>> Self Powered
>>
>>
>> On Sun, 24 Nov 2019 at 23:07, nick83ola <nick83ola at gmail.com> wrote:
>>
>>> Hi Jens,
>>> in my hx stomp with 2.82 firmware the USB id is the same and I'm not
>>> experiencing any glitch.
>>> Also some people on line6 confirm that the patch is working for hx stomp.
>>> If on helix the situation is different you should submit a patch.
>>>
>>> Best Regards
>>> Nicola Lunghi
>>>
>>> On Sun, 24 Nov 2019 at 13:41, Jens Verwiebe <info at jensverwiebe.de> wrote:
>>>
>>>> Back to the Helix once more .....
>>>>
>>>> I already informed Nicola about latest Line6 firmware 2.8 ff changes.
>>>>
>>>> All Helix devices seem to get a new product id due to the new core
>>>> changes.
>>>>
>>>> Additionally we have now an endpoint 5 for HID support ( applied dump ).
>>>> Not sure what we can make out of this
>>>>
>>>> cause a lack of investigation time. The audio endpoint descriptors are
>>>> unchanged.
>>>>
>>>>
>>>> The problem with not working implicite feedback stays, so i still use my
>>>> arbitrary 48005 Hz hack.
>>>>
>>>> Without slight pop would ocure in audio, but still with this hack every
>>>> 20 minutes i get a slight distortion which
>>>>
>>>> is no surprise.
>>>>
>>>> Can someone shed light here if an implicite feedback device should show
>>>> the exact momentäry fequency ?
>>>>
>>>> Should i see also the 16.16 feedback format ?
>>>>
>>>> I looked through all code and 'am still stunned where the sync
>>>>
>>>> fails.
>>>>
>>>> Btw: i have also attached ioreg information from macOS if this helps
>>>> someone to dig deeper. I dumped driverless
>>>>
>>>> "usb compliant" mode here with integer outcome for a quick overlook.
>>>>
>>>>
>>>> This so far ... Jens
>>>>
>>>> --
>>>>
>>>> Jens Verwiebe
>>>> Allerskehre 44 - 22309 Hamburg
>>>>
>>>> Tel.: +49 40 68 78 50
>>>> mailto: info at jensverwiebe.de
>>>> web: https://www.jensverwiebe.de
>>>>
>>>> _______________________________________________
>>>> Alsa-devel mailing list
>>>> Alsa-devel at alsa-project.org
>>>> https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>>>>
--
Jens Verwiebe
Allerskehre 44 - 22309 Hamburg
Tel.: +49 40 68 78 50
mailto: info at jensverwiebe.de
web: https://www.jensverwiebe.de
More information about the Alsa-devel
mailing list