westlicht / performer

PER|FORMER Eurorack Sequencer
https://westlicht.github.io/performer
MIT License
236 stars 70 forks source link

Launchpad x #351

Open jharper603 opened 2 years ago

jharper603 commented 2 years ago

For some reason my launch pad x and the performer aren't automatically synced

mntbighker commented 1 year ago

I ordered a Launchpad X specifically for the Perf|ormer. The gate sequencer grid is in a jumbled seemingly random order bunched up in the lower right corner of the grid. In general it does not respond to many of the button presses indicated in the Westlicht manual as expected. Perhaps Novation has altered the sysex crap? I updated the LP firmware on arrival. And I have the latest Perf firmware. I also own the LP Pro, and that grid seems to respond as expected, so this appears to be a specific issue with the "X" model.

The LP X programmer manual says this to enter programmer mode:

Hex: F0h 00h 20h 29h 02h 0Ch 0Eh F7h # so = 01

The init code for LP Mk3 (seems to include X) shows this:

// send sysex message to enter programmer mode std::array<uint8_t, 7> payloadPM { 0x00, 0x20, 0x29, 0x02, 0x0d, 0x0e, 0x01 };

This sysex looks wrong to me, but I'm no programmer.

Looking at the recent changes for the LP Pro that sysex seems to match the Novation docs. Can I tell if the LP model is getting identified correctly?

From programmer manual:

All SysEx messages begin with the following header regardless of direction (Host => Launchpad X or Launchpad X => Host): Hex: F0h 00h 20h 29h 02h 0Ch

I tried building the code on both my Raspberry Pi 400 and on x86_64 Linux, but never got either to build.

mntbighker commented 1 year ago

I spent much of the weekend getting the firmware to build. I made a LOT of uneducated Google guesses, but shockingly I got it to build. And with the change I propose above ( from 0x0d to 0x0c ) the LP X now starts up and mostly works as expected.

In order to get it to build I had resort to newer versions of OpenOCD and the ARM Toolchain. This broke the code in many places that I had guess about fixing. I'm sure I have forgotten half the crap I had to change to get the compile to complete. Everywhere there was an ld -Map function I commented the line because the ARM ld no longer allows you to link to an exe. There were a few places I had to change [&] to []. I never got "make test" to work either.

Start testing: Jan 08 18:57 PST
----------------------------------------------------------
1/8 Testing: TestSerialization
1/8 Test: TestSerialization
Command: "/home/vosadmin/performer/build/stm32/release/src/tests/unit/core/io/TestSerialization"
Directory: /home/vosadmin/performer/build/stm32/release/src/tests/unit/core/io
"TestSerialization" start time: Jan 08 18:57 PST
Output:
----------------------------------------------------------
/home/vosadmin/performer/build/stm32/release/src/tests/unit/core/io/TestSerialization: /home/vosadmin/performer/build/stm32/release/src/tests/unit/core/io/TestSerialization: cannot execute binary file

<end of output>
Test time =   0.00 sec
mntbighker commented 10 months ago

It looks like maybe someone has updated the code recently, so bumping this hoping it gets fixed officially.

rawsound commented 8 months ago

I have had the same problem and change Launchpad X to Legacy mode works better to me:

"Legacy Mode may be accessed by entering the Setup Menu (hold Session button), then pressing the purple Scene Launch button on the right hand side of the device. Now press Session to enter Legacy Mode. All buttons and pads will be unlit and may be lit via MIDI messages (see detailed release notes for layout)."

Some pad combinations don't work...

rawsound commented 8 months ago

Programmer mode works perfect.