Full disclosure first: Yes, this is largely vibecoded, but I have a background in embedded device development and know what I'm doing. I think it's stupid that I have to explain myself here - I don't think vibe-coding is bad by any means if it just speeds up a process you could've done yourself by weeks. Still, I follow the general discussion here and know how it's a very controversial topic.
I was very happy to see the announcement that Erica Synths open sourced the LXR-02's firmware this morning, so I dug into the code, got a grasp on how the thing is actually implemented. Before, I already followed Brendan Clarke's efforts regarding a free firmware for the LXR-02 so I was beyond happy to finally get a full understanding of the thing.
So long story short, I decided to start working on custom firmware with a few simple goals at first:
- Improve the baseline. Without changing anything major, simply fix existing bugs, improve the code wherever possible and make this thing the absolute best the hardware can offer.
- Fix all known bugs that v1.7 had.
the long run (soon :tm:):
-Gain flexibility by freely assigning voice types to voices, so that you are no longer limited to 3xdrum, snare, clp/cym and hh, but instead can go for a 6/7 voice cymbal setup for maximum cowbell action.
- In my head, I envision some form of visual editor that allows you to drag engines into slots, edit midi mappings etc. For now I'm locally experimenting with reassigning voice types.
Here's the first release of OpenElixir-02: https://github.com/tunefish777/openelixir-02/releases/tag/v0.1
So far, the list of changed things is pretty minor:
- Voices/FX bus are summed with 32 bit and limited per output. This fixes the originals behavior where the outputs would start to clip audibly if several voices are at max level at the same time. Per-voice distortion & FX distortion is not affected by this. It's just the mixer.
- Builds now report memory usage compared to the stock firmware. This is important as the LXR-02 is fairly limited wrt. tightly coupled memories for data and more importantly, instructions. If there is not enough TCIM space, critical code can't run fast enough and real-time behavior can't be guaranteed anymore.
I couldn't find a curated list of known bugs of the latest 1.7 firmware for the LXR-02, so if anyone is interested, please let me know about any bugs and I will address them in following releases.
Use at your own risk. I will test release builds with my own hardware, but I do not perform extensive testing or anything. Note that as long as the bootloader (which is a separate, locked software component) stays unmodified, a bug in custom firmware cannot corrupt your bootloader and brick your device. You should be able to just roll back to the official firmware, if you get crashes. To stay safe, back up your presets, as a bug in the firmware could technically corrupt them.
Cheers