-
Notifications
You must be signed in to change notification settings - Fork 2
Description
It looks like most of the Katana projects have significant overlap in their implementations, hence I stared working on this shared library. You can already see some work happening in the branches https://github.com/katana-dev/lib-katana/branches
Not everyone's source code is available to me, so I can't check if I'm missing any vital components.
So I thought now is a good time to ask which features would be must-haves to make it worthwhile to migrate to the shared library.
One consideration. File I/O and MIDI connectivity you need to implement yourself. As this is very environment and application specific. So expect byte arrays and strings to be your typical output for you to route them into MIDI ports or files.
Some I have on my list now:
- Proper semver and libtool release versioning.
- Unit and integration testing.
- SysEx message processing and generation.
- The exposed checksum algorithm.
- In-memory representation of a patch.
- In-memory representation of the full Katana memory.
- Mapping 7bit byte arrays to addresses. (these
60 00 01 12) - Mapping
.tslparameter names to addresses. - Manipulating single / bulk patch parameters in-memory.
-
.tslpatch loading and generation. - Snapshot and bulk upload strategies.
Some nice to haves:
- Integration testing with some C++ / Python bindings.
- Compact binary patch format.
(Early research suggests 300-750 bytes per patch, while a.tslis about 25KB per patch) -
.tslminification, if possible, see Map out minimum required tsl parameters docs#5