Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

meta: remaining MIDI-CI tasks #56

Closed
21 of 23 tasks
atsushieno opened this issue Dec 27, 2023 · 4 comments
Closed
21 of 23 tasks

meta: remaining MIDI-CI tasks #56

atsushieno opened this issue Dec 27, 2023 · 4 comments

Comments

@atsushieno
Copy link
Owner

atsushieno commented Dec 27, 2023

Here is the list of missing features in dev.atsushieno.ktmidi.ci package:

  • property message chunking. It would result in separation of Message and the actual message packets in SysEx message units
  • support for zlib+Mcoded7 (we need zlib implementation for KMP) -> works on desktop now
  • apply property body binary conversion based on mutualEncoding
  • initiator: ChannelList app developer should provide it
  • initiator: Schema app developer should provide it
  • ASCII validation of strings (product instance ID)
  • initiator: Profile Details Inquiry
  • initiator: Property subscription and subscription management
  • move logging facility from midi-ci-tool (app) to ktmidi (library) module
  • responder: overall UI
  • responder: partial property update by RFC6901 (needs to parse the expressions and apply patching updates)
  • initiator: partial property update by RFC6901 for subscription updates
  • overall message buffer size verification
  • Process Inquiry
  • MIDI message report implementation (entrypoints are already implemented in ktmidi-ci)
  • probably define Muid type that only contains an Int value but ensures that its data content is 28 bit and supports appropriate conversion -> so far it is visible as 28bit on UI
  • save/load local configuration
  • initiator UI: there should be device info configuration (currently it is only for responder)
  • overall MUID validation
  • take out muid from SavedSettings (it must be always uniquely created)
  • end subscription
  • support "group" in Message and everywhere applicable
  • timeout manager (adds some threading complication)
  • app startup/terminate lifecycle support (we can kinda skip that; the specification anticipates InvalidateMUID may not be sent)
  • property pagination
@atsushieno
Copy link
Owner Author

For zlib compression, it would be best that we wait for ktor-utils 3.0.0 release (which contains DeflateEncoder).

@atsushieno
Copy link
Owner Author

For MIDI Message Report we would need to make some fundamental changes to Midi1Machine and Midi2Machine to preserve assigned state (make them tristates) and provide "catalog" on which CCs, RPNs, NRPNS, and per-note of those are "supported".

@atsushieno
Copy link
Owner Author

Group support is implemented, but we need MIDI 2.0 I/O support at device level in ktmidi in the first place. Currently it is supported only in AlsaMidiAccess virtual I/O.

@atsushieno
Copy link
Owner Author

Those remaining issues are split into individual tasks. Closing this long-running issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant