Hey folks,
as indicated in I started working on a patch for Lemur to edit my MidiBox SID v2.
Few panels are working yet, the main work went into working around some serious limitations in Lemur, like a max size of 255 for arrays, max sizes for execution time, stack size and general method size and other niceties. As the Lemur is incapable of receiving big SysEx dumps, you need to have at least MidiBox SID V2.042 installed.
Currently working panels:
- Lead Oscillator + Filter
- Bass Oscillator + Filter
- Bass Sequencer
- Bass LFO/ENV (ENV doesn't send data yet)
- Knob assignment
Known Issues / TODO
- Implement all functions :smile:
- Selecting an engine doesn't change the engine yet, you have to load a patch with that engine
- Storing patches does not work (Is there no way to store memory->bank directly? I have to send a whole dump to store??)
- Sequencer editing currently causes a dump and thus dropouts when switching the edited sequence due to workaround
- Sequencer copy/paste/nudge doesn't work yet
- Sequencer octave labels are wrong on all but one button row :smile: I intend to do it like its written on most but that requires some more work
- When linking, values that change due to inertia are not synched due to a workaround
- Possibly could optimize data sent and send less parameters at once (e.g. left filter params are always sent at once)
- Fail to create proper checksum atm..
Sooo.. Currently some of the code is a bit messy still but its already becoming cleaner so it should be easy to extend, I'll write up some more documentation in addition to the existing code comments and README in the project. As the editor isn't really an IDE or code editor at all some things might not be obvious directly. As I guess it'll take me a lot of time until I really add all of the panels I don't use etc, maybe somebody wants to extend this further on his own when I added all I need ;) Download link to the current version
Let me know if you have some issues with the current functions or see any strangeness. Especially look out for "entangled" parameters that cause changes in each other by reloading the memory after changing a setting (use the "apply local values to faders" button in the info panel for that). This is because I don't always math.floor() the bytes I send (imagine me with a beer in my hand) to save resources and sometimes I forgot values that can actually leak.
Cheers,
Normen