ktmidi 0.6.2 release #55
atsushieno
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Happy holidays! Today I tagged and released ktmidi version 0.6.2 to Maven Central (I released it just now, so it would take a while for it to actually show up).
It is more or less "celebrating revive of development environment" release (as I have been quite unable to work on it on macosx-arm64 until I could migrate to rtmidi-javacpp solution from a few days ago).
ktmidi 0.6.2 introduces some API breakages. I'm sorry if you are affected, but we often need them (and for not-that-unnecessary changes, please bear with that as there are API parts that are still evolving).
(The API diff tool, Metalava, Gradle integration has been unavailable until I can switch to Gradle 8.x... it brought in build breakage very easily, as well as plugin incompatibility with earlier versions of Gradle) very recently, and even when I brought it back, temporarily by enabling Gradle 8, the API output options could not be the same as what we generated earlier with Metalava before.)
Anyhow, here are the highlights for this release.
ALSA and RtMidi backend changes
RtMidiAccess
backend has replaced its binding parts fromatsushieno/rtmidi-jna
toatsushieno/rtmidi-javacpp
.rtmidi-jna
has been dependent on JNAerator which had stopped maintenance for years, and it lacks support for non-x86/64 CPU on any platform.gradle-javacpp
does not have any intuitive cross-compiling options so far, so they are left unverified.midiProtocol
property on virtual MIDIPortCreatorContext
makes it support MIDI 2.0 protocol on a virtual MIDI port. It is based on what MIDI 2.0 June 2023 updates expect (in other words, it does not expect promotion via Protocol Negotiation on each port). Right now,AlsaMidiAccess
is the only backend that supports this property.AlsaMidiAccess
): we have revamped the way how atsushieno/alsakt builds. Now alsakt bundleslibasound.so
version 1.2.10. With this change, now even if you have Linux Kernel 6.5 without libasound.so 1.2.10 (e.g. you installed kernel-6.5 on Ubuntu 22.04 stable release), alsakt and ktmidi apps would still work with the latest ALSA version. It is important formidiProtocol
support.AlsaMidiAccess
comes with a handful of bugfixes that made virtual connections simply impossible.improvements on incomplete SysEx handling
Thanks to @AlecJY, there have been a couple of SysEx handling improvements:
MIDI-CI improvements (ongoing)
CIFactory
,CIRetrieval
,CIInitiator
andCIResponder
(and there will be more, it's highly evolving area at the moment).CommonPropertyService
class, used asCIResponder.propertyService
property. It's not much useful yet, but we could evolve it to have real MIDI-CI based MIDI 2.0-ish apps.juce-midi-ci
module and itsCapabilityInquiryDemo
app to confirm interoperability. I still did not build any useful app yet (only patching kmmk locally for now) but I hope to come up with something useful for exploring MIDI-CI devices.dev.atsushieno.ktmidi.ci.Json
implementation (I avoided adopting kotlinx.serialization just for this JSON serialization in Property Exchange. MIDI-CI Common Rules for Property Exchange also comes with some restrictions on their JSON header construct and our own implementation would work better in the future.Beta Was this translation helpful? Give feedback.
All reactions