In this blog post, I will add some additional checks to the LSP-5. I had some really fantastic feedback from two members of the community. I accidently used the wrong decimal to control the channel ids. the LXP-5 is quite strange in that the channel ID can change based upon the operation. This is also a really strength for tight control, jam packed into such a small unit. As a positive, it’s a nice easy fix. For robustness, I intend to add a more detailed test plan to help with my own troubleshooting (and troubleshooting from the community) in case anything crops up. This will also be really useful for supporting future operating systems and updates. For those of you who follow along with my blog, I love making music and use all of the software that I write as part of my own hybrid setup.
Tests already completed include:
Testing Parameters – Community Testing: (obtained reall helpful feedback from the below – thank you). Text from the main post:
“I could always do with help for more testing so please feel free to add to the comments section Testing involves entering values manually into the Lexicon using the method to
a) Make sure the Lexicon is writeable (check your system configuration)
b) Hold learn, move function to edit to A or B.
c) Review the tables from the manual: https://lexiconpro.com/en/product_documents/lxp5pdf p2-13, p2-14
d) Select a parameter such as Delay 1 Coarse, (Select 0) and turn the Adjust to a value such as Max.
e) Write to the Lexicon by holding the learn button, moving to a preset slot such as function to User 1, Select to 0. Let go of Learn. The Lexicon blinks. The setting is written.
f) If your values are set to writeable, this will now appear as a maximum dial value in the LSP-5.
I tested a few and things check out but the more testing, the better the accuracy and a win for the community.”
Testing: Source, destination, threshold, scale and offset.
To test the above, I have referred to page 3-7.
- Load a patch.
- Hold down learn, turn function dial to Edit C, release learn.
- Rotate the Select dial number to chose the relevant option for example dial position:
- 1 (Min) – Patch 1 – Source
- 2 – Patch 1 – Threshold
- 3 – Patch 1 – Destination
- 4 – Patch 1 – Scale
- 5 – Patch 2 – Threshold
- and so on…
- Rotate the Adjust number to adjust the value.
- Save the preset through pressing and holding the Learn button, rotating the function dial to User !, Select to 1 (min) and release the the learn button. The preset will now be in stored into User 1 in the Unicorn.
- Check in the Unicorm.
New Tests – Updated 25th October 2025:
General notes
Live Edit Tests – Test the panel for live edit. Update the value from the editor and store.
Procedure:
a) Make sure the Lexicon is writeable (check your system configuration)
b) Hold learn, move function to edit to A or B.
c) Review the tables from the manual: https://lexiconpro.com/en/product_documents/lxp5pdf p2-13, p2-14
d) Select a parameter such as Delay 1 Feedback from the editor and turn the dial to a value such as 100%.
e) Write to the Lexicon by holding the learn button, moving to a preset slot such as function to User 1, Select to 0. Let go of Learn. The Lexicon blinks. The setting is written.
f) If your values are set to writeable, this will now appear as a maximum dial value in the LSP-5.
New tests:
Note: For the testing, I initially use hard coded values and then update to channel ids based on or around the hardcoded value based upon the manual reference. For the channel id references, scroll to the bottom of the page where I have translated from the binary.
| Test Number | Test | Results |
| 1. Channel ID, Combo ‘comboChangePresetFactoryByValue’ (User Presets) – Channel decimal 48. | Cycle through preset change. Select User 1-128. Change to preset 2. | Preset changes correctly. |
| 2. Channel ID, Combo ‘comboChangePresetFactoryByValue’ (User Presets) – Channel decimal 48. | Change channel ID inside editor. Hold learn button on LXP-5. Cycle through preset change. Select User 1-128. Change to preset `. | Preset changes correctly. |
| 3. Channel ID, Combo ‘comboChangePresetFactoryByValue’ (User Presets) – Channel decimal 48. | Change channel ID inside editor. Do not hold learn button on LXP-5. Cycle through preset change. Select User 1-128. Change to preset `. | Preset does not change. This is correct. |
| 4. Channel ID, full Sysex preset write. Fixed channel ID, decimal 16. | In the LSP-5, Pitch/Delay algorithm, change all values to maximum. Update name to TestCh10. Use combo ‘Save Patch’ to trigger full preset write. Store in location 2. | Test successful. Decimal 10 confirmed. |
| 5. Channel ID, full Sysex preset write. Fixed channel ID, decimal 16. | TODO: Check to see if HEX 10 (decimal 16) is fixed to channel 1 – or global. | … |
| 6. Channel ID, full Sysex preset write. Fixed channel ID, decimal 16. | Change channel ID from 1 to 16. Perform write to user slot 2. | Test failed. 16 is not fixed. Update LUA code and re-check. Tested – confirmed none fixed channel startig from decimal 16, now works. |
| 7. Channel ID, SysEx system load. Fixed channel ID, decimal 48. | Click on the settings button. Decimal 48 (HEX 30) should call system presets. | Test successful. Decimal 10 confirmed. |
| 8. Channel ID, SysEx system write. Fixed channel ID, decimal 48. | From System panel, change algorithm Pitch/Delay to Delay/Reverb. Change Register Memory Location to 9. Click Sys Save button. From preset menu, select 10 (1 = 0 start). | Settings saved in the globals but the live algorithm did not alter. I’m not sure the purpose of this. I lack understanding of the global operation. Reverting it worked too. If someone understands the relevance of this, please let me know. |
| 9. Channel ID, SysEx system write. Fixed channel ID, decimal 48. | From System panel, switch Memory protect to on. Attempt to save preset and recall form preset combo. | Lexicon LXP-5 LEARN light changes to solid red. Saving disabled. Write failed. Test completed successfully. |
| 10. Channel ID, SysEx system write. Fixed channel ID, decimal 48. | From System panel, switch Memory protect to off. Click Sys Save button. Attempt to save preset and recall form preset combo. | Lexicon LXP-5 LEARN light flashes green several times and changes to slow blinking green. Saving disabled. Write completed. Test completed successfully. |
| 11. Channel ID, SysEx bulk dump write. Fixed channel ID, decimal 48. | In SysEx Librarian, set midi output in destination and click record many. From main edior, click bulk dump and collect data. | Malformed data dump but this is due to an old battery and bad pot. On my friend’s LPX-5, this has been working a treat and therefore, cannot verify until my mate re-checks it. I can confirm that a stream of data is being output. |
| 12. Channel ID, SysEx bulk dump write. Fixed channel ID, decimal 48. | In SysEx Librarian, set midi output in destination and click record many. From main edior, hold learn, change the channel then click bulk dump and collect data. | Changing the channel leads to data dump stream successful output. |
| 12. Channel ID, SysEx bulk dump write. Fixed channel ID, decimal 48. | In SysEx Librarian, set midi output in destination and click record many. From main edior, don’t hold learn, change the channel then click bulk dump and collect data. | Changing the channel made little difference. It still leads to data dump stream successful output. |
| 13. Channel ID, send settings (SOFT) edit. (For plugin, DAW refreshes). | In editor, update name to TEST11. Click ‘Send’ button. | Test failed. Need to correct. Updated channel decimal to 32. Rest-tested. Confirmed working. |
| 11. Channel ID, parameter | General Sysex | |
| 12. Channel ID, parameter | Delay 1, Feedback 1 LED | |
| 13. Channel ID, parameter | Diffusor, LED | |
| ” | Reverb Decay time, LED | |
| ” | ||
| ” | ||
Reference Data
Channel IDs From the Manual – LXP-5 Manual, Page 4-1 onwards:
| Operation | Area (binary) | Midi Channel (nibble) | Example |
| Data and Event Requests | ||
| Data Requests | 0011 = 3 | 0000 = 0 0011 0000 HEX 30 (Decimal 48) | 60h = active setup data 61h = one register 62h = param data 64h = all registers Correct |
Event Requests (Not needed) | 0110 = 6 | 0000 = 0 0110 0000 HEX 60 (Decimal 96) | 70h = store current edit to register 71h = recall program to edit buffer p = register number 0 – 127 |
| Transmit/Receive Data | ||
| Active Setup Data | 0000 = 0 | 0000 = 0 0000 0000 HEX 00 (Decimal 0) | xxxxxxxxxxxx (100 bytes) Correct |
| Stored (Single Program) Data | 0001 = 1 | 0000 = 0 0001 0000 HEX 10 ( Decimal 16) | xxxxxxxxxxxx (64 bytes) Correct |
| Parameter Adjust | 0010 = 2 | 0000 0010 0000 HEX 20 (Decimal 32) | Adjusts all parameters. Attached to dials. Decimal 32 correctly triggers parameter data. |
| All User Data | 0100 = 4 | 0000 0100 0000 HEX 40 (Decimal 64) | All presets. |
| Nibble (Decimal) | Binary | Hex |
|---|---|---|
| 0 | 0000 | 0x0 |
| 1 | 0001 | 0x1 |
| 2 | 0010 | 0x2 |
| 3 | 0011 | 0x3 |
| 4 | 0100 | 0x4 |
| 5 | 0101 | 0x5 |
| 6 | 0110 | 0x6 |
| 7 | 0111 | 0x7 |
| 8 | 1000 | 0x8 |
| 9 | 1001 | 0x9 |
| 10 | 1010 | 0xA |
| 11 | 1011 | 0xB |
| 12 | 1100 | 0xC |
| 13 | 1101 | 0xD |
| 14 | 1110 | 0xE |
| 15 | 1111 | 0xF |
