There's no doubt that OpenWare is full of hidden gems that @mars is hiding from us. It's time to shed some light on one such case.
Besides storing patches on flash, it's possible to use it for any binary data. It would be available separately from uploaded patches and won't interfere with normal patch running. Currently it's only used to store device settings, but there are multiple slots available and data can be loaded with MIDI Sysex the same way as normal patches. This makes it possible to support a lot of interesting use cases for OwlProgram patches:
- loadable wavetables (shared between patches)
- custom lookup tables (potentially exceeding 128k per patch limit)
- settings presets (either parameters state or arbitrary user data)
- custom tuning tables for MIDI (or CV quantizer)
- Scala files support (maybe this could be ported)
- even something like DX7 emulator with preset loading is possible
For now I've made a script to convert binary data of existing LUTs to resource format in order to fit FW on 128k flash. Also made UI for browsing resources, planning to port this to Magus.