lpd8editor
lpd8editor copied to clipboard
Can’t get/send programs from/to the device
Hi,
I compiled the program. It detects the device and connects to it but it seems that "Get program N" or "Set program N" do nothing.
I know that at least (default) programs 1 and 4 are different, but when I do "Get program 4" nothing change in lpd8editor. If I change parameters in lpd8editor and do "Send to program N" nothing is actually modified.
I get those message in the console (don’t know if related to my problem):
QAbstractItemView::setRootIndex failed : index must be from the currently set model
I get this message in the terminal two times when selecting a program in the list or adding a new one. If the program list is empty, I have a message (in the UI): “Create create a new program or import one from LPD8”. But when the program list is empty, then the Get/Send entries in the “Lpd8” menu are greyed.
What am I missing or doing wrong?
If it’s a bug, let me know how I can build the program with debug feature, I’d be happy to help. My OS is Debian 12.
Hi @M4rotte ,
Can you try to:
- Create a new, blank program with the little
+
sign bottom right of the program list - Select the new program in the list
- Get one of the programs of the LPD8
Does it work as expected in this order ?
I get those message in the console (don’t know if related to my problem):
I don't think they are either, it looks likes a new, stricter check done by new releases of Qt. There is certainly something wrong in my code though.
debug build
You can follow the build instructions in the Readme, but replace -DCMAKE_BUILD_TYPE=Release
by -DCMAKE_BUILD_TYPE=Debug`
I just tried again on my machine (a Debian 12 as well) and I can get the LPD8 programs following the steps above. Does that work for you as well ?
When I do “Get program 4” (after I created a new program as you indicate) nothing changes in the program UI. I’m not very sure exactly what are the four default programs, but I noticed that program 4 has a “toggle” setting for note play.
I also tried to change the note played for the first pad in lpd8editor, then did “Send to program 1” (nothing happened, no message, is it normal?). I checked in a MIDI application and the note played for the first pad for the first program still is C1, although I changed to C4 in lpd8editor before doing "Send to program 1”.
I re-built the program with Debug instead of Release as you suggested but I don’t have any other error message.
Hi,
I tried again, debug build. Same behavior. I don’t have any message in the console when trying to receive (or send) a program from/to the device.
There is one thing I should have mention earlier but didn’t notice probably: I have an error message (via the dmesg command) when I plug the device:
` [17288.654151] usb 7-2: new full-speed USB device number 3 using xhci_hcd [17288.786199] usb 7-2: device descriptor read/64, error -71 [17289.067689] usb 7-2: New USB device found, idVendor=09e8, idProduct=004c, bcdDevice= 2.49 [17289.067697] usb 7-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [17289.067699] usb 7-2: Product: LPD8 mk2 [17289.067701] usb 7-2: Manufacturer: AKAI PROFESSIONAL,LP [17289.067703] usb 7-2: SerialNumber: Ver00.10
`
I don’t have time to try to troubleshot this error now but I’ll try to do so. This message is just in case someone else stumbled on this same issue.
My kernel is:
Linux 6.4.0-0.deb12.2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.4.4-3~bpo12+1 (2023-08-08) x86_64 GNU/Linux
from the binary package provided by the distribution.
Thanks for looking at this again Stéphane. What about calling each other so you can share your screen and we take a look together ? I'm on the EST timezone https://www.timeanddate.com/time/zones/est and I speak French and English.
On Thu, Sep 21, 2023 at 4:34 PM Stéphane THOMAS @.***> wrote:
Hi,
I tried again, debug build. Same behavior. I don’t have any message in the console when trying to receive (or send) a program from/to the device.
There is one thing I should have mention earlier but didn’t notice probably: I have an error message (via the dmesg command) when I plug the device:
` [17288.654151] usb 7-2: new full-speed USB device number 3 using xhci_hcd [17288.786199] usb 7-2: device descriptor read/64, error -71 [17289.067689] usb 7-2: New USB device found, idVendor=09e8, idProduct=004c, bcdDevice= 2.49 [17289.067697] usb 7-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [17289.067699] usb 7-2: Product: LPD8 mk2 [17289.067701] usb 7-2: Manufacturer: AKAI PROFESSIONAL,LP [17289.067703] usb 7-2: SerialNumber: Ver00.10
`
I don’t have time to try to troubleshot this error now but I’ll try to do so. This message is just in case someone else stumbled on this same issue.
My kernel is:
Linux 6.4.0-0.deb12.2-amd64 #1 https://github.com/charlesfleche/lpd8editor/issues/1 SMP PREEMPT_DYNAMIC Debian 6.4.4-3~bpo12+1 (2023-08-08) x86_64 GNU/Linux
the binary package provided by the distribution.
— Reply to this email directly, view it on GitHub https://github.com/charlesfleche/lpd8editor/issues/49#issuecomment-1730259593, or unsubscribe https://github.com/notifications/unsubscribe-auth/AATRYGTEQYCDBK6QGPZ4NFLX3SQD7ANCNFSM6AAAAAA3E3CTWQ . You are receiving this because you commented.Message ID: @.***>
Well, I plugged the device in another USB port, a “USB 3.2 Gen 2“ instead of a “USB 3.0 SuperSpeed” if I’m not mistaken… No more error message, but still not working.
I’m not really sure what USB port type it is. The color and symbol doesn’t match what’s indicated in https://tripplite.eaton.com/products/usb-connectivity-types-standards. It’s "teal blue" but I have the symbol of the USB 3.2 Gen 2.
The color of the port shouldn't have an impact, as long as your LPD8 is properly recognized
Yeah, I really don’t understand what is wrong. I start to think that maybe the device has a hardware issue. But I can’t test it on Windows, and using the official program with PlayOnLinux/wine seems to be quite a challenge, as I can tell after the quick try I did. Because of how USB is managed for this device/program. A challenge I don’t want to attempt.
Anyway this is my first ever MIDI controller, and it helps me a lot already even if I’m limited with the default firm programs, so I don’t think I’ll troubleshoot further. I think this issue should be kept open, but feel free to close it if you prefer to do so for any reason.
Stéphane, I'm re-iterating my offer to have a call together so you walk me through your issue and we try to debug that together. I speak French and English and I'm currently in the North of France.
using the official program with PlayOnLinux/wine seems to be quite a challenge
During development I ran the official Windows editor on VirtualBox, it worked well.
Hi @charlesfleche, it is definitively something I could try. But I have to admit that while I know well how to use virtual machines (KVM rather than VirtualBox) I have no clue what installation ISO image I can use to install a Windows. Is it ever possible to do that legally without a license? Do you know where I can get one then? My use of the Windows OS is very limited since the Windows XP era… ^^
Stéphane, I'm re-iterating my offer to have a call together so you walk me through your issue and we try to debug that together. I speak French and English and I'm currently in the North of France.
Hi,
Just saw your proposal today. I let you know if I have some time, maybe next weekend. Or an evening? What would be your preference in term of schedules?
My skills at speaking English are quite rusty so if you’re fluent in French it is nice. I’ll keep in touch.
I'm French and I'm currently in Montréal. Next Sunday 2023/02/11 would be great. Let's organize a call by email: [email protected]
Hi there, I am having the same problem on my LPD8 Mkii; I am not sure if this is intended for the mk2 or not.
I followed your instructions, and it won't send or receive. I also built it with Debug mode, but no messages appeared.
Dmesg:
[150404.978312] usb 1-4: new full-speed USB device number 20 using xhci_hcd
[150405.348287] usb 1-4: New USB device found, idVendor=09e8, idProduct=004c, bcdDevice= 2.49
[150405.348291] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[150405.348293] usb 1-4: Product: LPD8 mk2
[150405.348295] usb 1-4: Manufacturer: AKAI PROFESSIONAL,LP
[150405.348297] usb 1-4: SerialNumber: Ver00.10
[150405.372290] usb 1-4: Quirk or no altset; falling back to MIDI 1.0
Messages in lpd8editor:
lpd8editor
Looking for translations QLocale(English, Latin, United States) in folder "/usr/bin"
Looking for translations QLocale(English, Latin, United States) in folder "/usr/share/lpd8editor/lpd8editor"
Looking for translations QLocale(English, Latin, United States) in folder "/home/hwkiller/.local/share/lpd8editor/lpd8editor"
Looking for translations QLocale(English, Latin, United States) in folder "/usr/local/share/lpd8editor/lpd8editor"
Looking for translations QLocale(English, Latin, United States) in folder "/usr/share/lpd8editor/lpd8editor"
Opening MIDI sequencer
Enabling MIDI poll descriptor 0
QAbstractItemView::setRootIndex failed : index must be from the currently set model
QAbstractItemView::setRootIndex failed : index must be from the currently set model
QAbstractItemView::setRootIndex failed : index must be from the currently set model
QAbstractItemView::setRootIndex failed : index must be from the currently set model
QAbstractItemView::setRootIndex failed : index must be from the currently set model
QAbstractItemView::setRootIndex failed : index must be from the currently set model
Cannot connect from
Cannot connect to
Cannot connect from
Cannot connect to
QAbstractItemView::setRootIndex failed : index must be from the currently set model
QAbstractItemView::setRootIndex failed : index must be from the currently set model
QAbstractItemView::setRootIndex failed : index must be from the currently set model
QAbstractItemView::setRootIndex failed : index must be from the currently set model
QAbstractItemView::setRootIndex failed : index must be from the currently set model
QAbstractItemView::setRootIndex failed : index must be from the currently set model
Disabling MIDI poll descriptor 0
Closing MIDI sequencer
I think it is interesting that the official Akai program is also not able to communicate via Wine, even though I have seen people online say "just run the lpd8 program in wine". It will say that it failed to communicate with the device.
Edit: I also receive the [150387.559277] usb 1-4: device descriptor read/64, error -71
error in dmesg sometimes, it seems random.
Hi @stephensrmmartin , I've never had an LPDB8 mk2, so there is little chance that this program works for an LPD8 mk2. I'd be happy to update the code if I can put my hands on a mk2 somehow.
@charlesfleche ah ha, I see. I wrongly assumed the messages may be the same.
It seems like the options are the same, but the messages differ. Maybe I could try using the mk2 web UI messages and patch them into this? Then I can test it and submit a PR.
It's a good idea. IIRC I've used a MIDI dumper between the official editor from Akai on Windows and the LPD8 to figure out the SySex messages. I'm pretty sure the mk1 and mk2 are really, really close when it comes to MIDI messages.
Actually I take back what I said - the messages appear to be the same between the web ui that I used, and your protocol as specified:
https://github.com/bennigraf/lpd8-web-editor/blob/main/lpd8-web-editor-preact/src/static/protocol.txt https://github.com/bennigraf/lpd8-web-editor/blob/main/lpd8-protocol.md
I'll keep digging.
Sorry, one more comment: The messages for mk2 and mk1 are not the same. I have no idea why the web ui works for setting (but not getting) settings.
https://github.com/NichtJens/LPD8mk2/blob/main/lpd8mk2/lpd8.py and https://github.com/NichtJens/LPD8mk2/blob/main/lpd8mk2/consts.py
would suggest that 1) The device type is different (0x4c instead of 0x75), but this change did not fix lpd8editor 2) There should be more bytes per pad, due to other settings (prog chng, cc, note, momentary/toggle; pressure message (off, channel, polyphonic), full level (on, off)
I may just have to spin up a windows VM and try capturing the sysex messages myself.
Edit: I mapped out the mk2's Program send hex code:
It cannot yet parse messages sent from the LPD8 Mk2, but I hacked together a CLI/Py package implementation for configuring the Mk2: https://github.com/stephensrmmartin/lpd8mk2
I simply don't know C++ well enough to know how to best add the updated Sysex messages to your repo, in a manner that would permit switching.