Skip to content

Feature requirements? #1

@Beanow

Description

@Beanow

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 .tsl parameter names to addresses.
  • Manipulating single / bulk patch parameters in-memory.
  • .tsl patch 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 .tsl is about 25KB per patch)
  • .tsl minification, if possible, see Map out minimum required tsl parameters docs#5

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions