StarAurryon / lpedit

GNU General Public License v2.0
29 stars 3 forks source link

Usage feedback #1

Open StarAurryon opened 4 years ago

StarAurryon commented 4 years ago

Hello,

This is a thread to get all of your feedback.

Aurryon

MarkJTiller commented 3 years ago

Hello, i have installed - it has connected to my POD HD500X - thank you for your efforts ! Please let me know if you create an update and i will give it a test.

Mark.

StarAurryon commented 3 years ago

Hello,

Thanks for the feedback. I was wondering if there were still people using the pod HD500x on Linux. And it is motivating me a lot. I have an update that fixes some issues on my ssd. But it also split the project between the core lib and the GUI as I am willing to port it over GTK3.

I will try to push it soon so that people could use FX and Amp functions of their POD properly without crash. However, do not expect heavy development on the coming months as I am starting my own company.

Aurryon.

MarkJTiller commented 3 years ago

Thank you - I want to mainly be able to control the pod via Linux as I'm playing with jamulus / jack etc and using the pod as my audio interface but running on ubuntustudio.

Thank you for your efforts - good luck with the new company - what will the company be offering?

Mark.

stric9r commented 3 years ago

I'm not using this, I don't have a pod. I've been reverse engineering the L6 USB protocol and making a clone of the FBV3 used with a Spider V amp. I've made significant progress controlling the amp, but I'm still trying to figure out feedback from the amp. Any chance you have what you figured out in a spread sheet, or other type of documentation that you'd be willing to share? I have a feeling that there may be some overlap, or at least hints, how they communicate.

I have mine in a "research" folder here https://github.com/stric9r/Line6-FBV3-Clone . It's just a live document of what I've figured out so far.

StarAurryon commented 3 years ago

@MarkJTiller As a start I plan to offer Google Drive like features for retail and extending to business with some addition. We are currently terribly lacking such services in Europe: Hosted in Europe by European owned companies (GDPR and against Patriot Act).

StarAurryon commented 3 years ago

@stric9r If by feedback of the amp, you mean the value of the knob when turning them from the device, it is working for me with my POD HD 500X. That's handled by this in my code if I remember correctly: &ParameterChange{Message: Message{mtype: 0x0006, smtype: 11520, msize: 28, mname: "Item Parameter Change"}},

So you should expect a 28byte message from the device (if it is generic) after a 4byte header. As for a spreadsheet, I got no documentation, I basically try the implementation after the Wireshark capture.

Please check out my new repo as I am splitting the GUI from the core lib at lpedit-lib/model/pod/message. But basically what I am doing is:

  1. Grabbing all raw messages from the kernel
  2. Reconstruction to an aggregated readable message
  3. Parsing the new message: parsing the 32bit header to know the size and which kind it is
  4. Applying the changes You should check this: func (m *Message) parseParameterChange(paramFunc string, p *pod.Pod) (error, int, interface{}) {

And for the definitions they are here model/pod/amp.go

Hope this helps

Aurryon

StarAurryon commented 3 years ago

@stric9r One more thing. I am using the kernel alsa hwdep interface. So I do not need to handle my POD init or filter messages.

JenKD commented 3 years ago

Hi, tried to get the pre-compiled lpedit (0.5) to run on my debian testing box - however: ./lpedit: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./lpedit)

There is no glibc 2.32 in any of the debian distributions...yet ... :-(

Will the glibc 2.31 currently available be OK if I try to compile the program? thx jenkd

StarAurryon commented 3 years ago

Hi,

Oh crap... You can try to compile it yourself. But be aware that the qt lib is quite buggy and sometimes is preventing the compilations as generated imports are not correct.

That's why I would like to port it over gtk3 (gotk3), but I don't have time yet.

Best of luck. I will try to push a static binary if possible. Aurryon

StarAurryon commented 2 years ago

Hi everybody,

I'm looking to port the UI to GTK 4 with gotk4 as it would be easier to maintain than with this QT lib. If some people are willing to help, I'm taking the offer ;-)

graham33 commented 2 years ago

@StarAurryon just wondering if there's any hope of making this tool support HX Stomp? I've no idea if the protocol is similar, but it'd be great to have some native tooling to control it in Linux.

StarAurryon commented 2 years ago

@graham33 It is always possible. However before thinking about this we should get kernel support. Could you give me the driver that is currently used and possibly the lsusb output in very verbose mode. I read that audio is at least working on linux.

graham33 commented 2 years ago

Thanks. Yes I believe the audio does work.

Here's the output in dmesg when the HX Stomp is connected:

[  570.970671] usb 3-2.3.2.1.1: new high-speed USB device number 18 using xhci_hcd
[  571.060974] usb 3-2.3.2.1.1: New USB device found, idVendor=0e41, idProduct=4246, bcdDevice= 2.00
[  571.060982] usb 3-2.3.2.1.1: New USB device strings: Mfr=1, Product=3, SerialNumber=2
[  571.060986] usb 3-2.3.2.1.1: Product: HX Stomp
[  571.060989] usb 3-2.3.2.1.1: Manufacturer: LINE 6
[  571.060992] usb 3-2.3.2.1.1: SerialNumber:    3014982
[  571.076386] usb 3-2.3.2.1.1: parse_audio_format_rates_v2v3(): unable to retrieve number of sample rates: set it to a predefined value (clock 16).
[  571.081351] usb 3-2.3.2.1.1: parse_audio_format_rates_v2v3(): unable to retrieve number of sample rates: set it to a predefined value (clock 16).
[  571.088162] input: LINE 6 HX Stomp as /devices/pci0000:00/0000:00:1d.0/0000:06:00.0/0000:07:04.0/0000:3d:00.0/0000:3e:02.0/0000:3f:00.0/usb3/3-2/3-2.3/3-2.3.2/3-2.3.2.1/3-2.3.2.1.1/3-2.3.2.1.1:1.5/0003:0E41:4246.0019/input/input50
[  571.140214] hid-generic 0003:0E41:4246.0019: input,hidraw15: USB HID v1.11 Keyboard [LINE 6 HX Stomp] on usb-0000:3f:00.0-2.3.2.1.1/input5

And here's the (very verbose!) lsusb:

Bus 003 Device 018: ID 0e41:4246 Line6, Inc. HX Stomp                                                                                                                                                                                
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    3014982                                                                                                                                                                                               
  bNumConfigurations      1                                                                                                                                                                                                          
  Configuration Descriptor:                                                                                                                                                                                                          
    bLength                 9                                                                                                                                                                                                        
    bDescriptorType         2                                                                                                                                                                                                        
    wTotalLength       0x0130                                                                                                                                                                                                        
    bNumInterfaces          6                                                                                                                                                                                                        
    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
    Interface Descriptor:                                
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        5
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      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     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               8
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                                           
StarAurryon commented 2 years ago

Could you run lsusb with sudo "can't get debug descriptor: Resource temporarily unavailable" ?

graham33 commented 2 years ago

That was using sudo. I'm guessing that error is coming from the kernel/driver.

StarAurryon commented 2 years ago

@graham33 Moving to #5

StarAurryon commented 2 years ago

@graham33 I would need a wireshark usbpcap dump from windows when changing settings on the app to understand how it is communicating. It could be midi, hid or something else.

cjacobsen commented 2 years ago

Hi @StarAurryon . I own a HD500X and I use it extensively as audio interface on Ubuntu 20.04. I'm having same issue than @JenKD to run pre-compiled v0.5. Are you planning to continue development? I would love to help as beta tester (on Ubuntu 20.04 or any other distro you suggest :smile:)

StarAurryon commented 2 years ago

Hi @cjacobsen

I don't have a load of time for now unfortunately. I am planning to continue the project by the way, but due to the lack of interest of the community and the fact that I am running a starting business + owning a new house, time is running out quickly.

The current main issue is that I choose to use QT go bindings and it "sucks" a lot (random compilation issues). What I would need is some help of go developers to port it to GTK. But I don't have time to create a cool website for the project nor federate people.

Every inch of help is welcome.

hmollercl commented 1 year ago

Works nice to me, thanks a lot. I only would add an option to backup and restore the patches

prattems commented 1 year ago

I was so excited to find this project, but two days later I still can't compile on Ubuntu. It fails to find the headers for GL, even though they exist in the standard location (/usr/include/GL). From the comments above it sounds like such issues are common with go, so I'm just wondering if there's an obvious fix (like defining environmental variables)?

If not, I am a total noob but would contribute where I could to a port. Perhaps a python version would facilitate a cross-platform version.

StarAurryon commented 9 months ago

@prattems same comment as before, the project is in an unmaintained state on the gui side as I don't have time. The library thereceipe/qt is likely at fault with modern distros and same could happen with python qt libs if not updated.

I am looking to migrate the UI to https://wails.io/ which seems more stable to create a JavaScript/TypeScript GUI version. If you have Web developer skill we can start something.

manast commented 9 months ago

wails.io looks pretty cool indeed, should be quite easy to port the old UI or create a new one from scratch.

StarAurryon commented 9 months ago

@manast I'm setuping the beginning of the implementation with typescript/react/tailwindcss. And I will see who wants to contribute.

thereceipe/qt is unmaintained since 2020. It does not even compile anymore on my computer.

manast commented 9 months ago

Tailwind? ouch 😅

manast commented 9 months ago

I think plain css (or just something like less/sass) will be more flexible for this kind of UI (as we could have pretty cool controllers, buttons, etc).

prestonchoate commented 9 months ago

I just found this and I'm so happy it exists. Thank you for doing the hard work to get it to this point. I'll be playing with it over the coming weeks and will let you know if I encounter any issues. I can also help fix things if you are looking for help maintaining this :)

FlorentBrianFoxcorner commented 5 months ago

Thank you @StarAurryon, this is cool. I stumbled across it some weeks ago. Today, being too lazy to boot and update Windows, I downloaded the binary... and it works with my POD HD Desktop, which is not even listed in the ReadMe. Amps contains only Amp A, Mixer tab is empty and in Controllers tab all selections are empty, regardless of using FBV express MKII or FBV shortboard MKI.

FlorentBrianFoxcorner commented 5 months ago

The current main issue is that I choose to use QT go bindings and it "sucks" a lot (random compilation issues). What I would need is some help of go developers to port it to GTK. But I don't have time to create a cool website for the project nor federate people.

Wondering if it makes sense to use the library for building a server component and an SPA as the frontend. Maybe with Vue, as it seems to be preferred by "backend folks doing frontend".

Two benetfits:

manast commented 5 months ago

@FlorentBrianFoxcorner that is quite a good idea, as that would also allow interacting with the POD without any cables.

manast commented 5 months ago

Using NodeJS and this package: https://github.com/node-usb/node-usb it would also be as easy to do a native frontend with ElectronJS, or a server + a frontend in any likeable javascript framework.

manast commented 5 months ago

ah, I forgot lpedit-lib is actually written in go, no need to go the NodeJS path then, just add an http interface to the existing library.

StarAurryon commented 5 months ago

Hi there,

Got pretty good news. The wails app is in progress (React/Tailwind/Go). I am finishing the left side of the panel (set/preset select, save/discard, etc..) which should be available in the coming weeks. I still have some issues but it should be ok.

When this will be done I will focus on the pedal + amp effects. And in a third time I will re-implement the pedal placement on the pedalboard (drag and drop move).

StarAurryon commented 5 months ago

The new initial version is published. Please try to clone the repo and build to see if it is working for you.

FlorentBrianFoxcorner commented 5 months ago

Thank you @StarAurryon, very nice!

StarAurryon commented 5 months ago

@FlorentBrianFoxcorner Thanks for the feedback.

Ubuntu 22.04, dependency: sudo apt install libwebkit2gtk-4.0-dev

I will add this to the readme

`runs in "native" webkit window, runs in Firefox :-), single view: Input 1 Source, Input 2 Source, Guitar impedance, Input Setup, Tempo, Set List, Preset list selector, About

This is intended behaviour for now. I am working to get the pedals on the UI for now.

Connects to POD HD 500, fetches all fields contained in view except Input Setup, applies changes to POD as well as preset selection

Great

Connects to POD HD Desktop, does not display any setting but invalid Tempo of 120.0, fetches Set List, let me chose Set List, applies Preset selection to POD

Could you open an issue in lpedit-lib project and attach a file containing the message of a preset load (launch the app in console and change your preset on PODHD, the message should be available in hex) so that I can check what is wrong ?

FlorentBrianFoxcorner commented 4 months ago

@StarAurryon done :-)

flowernert commented 2 months ago

@StarAurryon Hey there, I'm currently reversing the Line 6 Helix USB protocol in order to provide a library that would allow having a Linux and Android app to controle the Helix devices like Helix Edit does on Windows/Mac.

Apart from the code in the repository, did you created any text document to describe the protocol when you reversed it ? If so it might be some help to me in my attempt to reverse the Helix protocol.

Thanks Flo

StarAurryon commented 2 months ago

Hi @flowernert . Unfortunately no, I did not describe the protocol in a document. In addition LPEdit is one of my first go project and the raw []byte message is not mapped directly to a struct as it should. I'm only extracting the fields offset by offset which is not truly readable.

I hope by the end of the year I will be able to map all the []byte directly to a C struct, so the code would be more readable.

One more thing, some of the init is done at the kernel level to provide the alsa HWDep interface I'm using. So you should check that first. https://www.alsa-project.org/alsa-doc/alsa-lib/group___hw_dep.html . I'm not part of the kernel team so you should see with the line6 kernel module developers or write that part from scratch if the module is not available or the interface not accessible on android.

Have a nice evening, Aurryon,

flowernert commented 2 months ago

Hi @flowernert . Unfortunately no, I did not describe the protocol in a document. In addition LPEdit is one of my first go project and the raw []byte message is not mapped directly to a struct as it should. I'm only extracting the fields offset by offset which is not truly readable.

@StarAurryon Thanks for your answer, it was just to avoid spending time in redoing it if you already did, so I guess more work for me, but that's the kind of thing I enjoy

I think I found the kernel hwdep implementation for line6 devices here, hopefully it can also give me some additional understanding of the protocol used to communicate with the Line 6 HX devices