AAP v0.8.0 released #196
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
-
Today I tagged v0.8.0 on aap-core, v0.3.0 on aap-lv2, and v0.5.0 on aap-juce. It has been 5 months since the last revision, and almost two years since v0.7.0(!). A lot of changes has happened for just 0.1 increase, of course.
All those changes for just 0.1 increase can be tracked from the past release notes, so I would focus on the changes since the last release (v0.7.8).
AAPXS v2: realtime-safe extensions
v0.7.8 introduced the concept of realtime-safety as "AAPXS SysEx8", within whatever does not break the ABI and the protocols. The principles are mostly described in this blog post: https://atsushieno.github.io/2023/12/24/realtime-aapxs.html
"Without breaking the ABI and protocol" is not possible beyond the changes in v0.7.8. In v0.8.0, we have introduced ABI/protocol breakage and migrated to the new paradigm that covers all the changes we needed for the extension messaging. It involved a lot of sub-tasks listed at #169 , plus some additional tasks such as index-based extension URI table (LV2 URID-alike).
While the AIDL hadn't changed, the message contents had changed quite a lot and things became incompatible with AAP "v2" extension protocol, the protocol is promoted to "v3" now.
There has been a lot of design thoughts on how we should tackle this RT safety problem. I wrote some design docs on it. https://github.com/atsushieno/aap-core/blob/v0.8.0/docs/design/REALTIME_SAFETY.md
There are still some remaining issues such as #188 (which is actually core of bidirectional messaging...), but the API would be stabilized at the current state until the next wave of changes happen.
Sanitizing Gradle builds and package resolution
v0.7.8 had a drawback that its Maven packages were basically useless. Only references via
implementation(project("..."))
worked. After a lot of investigation, it turned out that the native library build in the Release build was broken due to unexpected vectorization optimization that resulted in unpredictable run-time code (which was actually caused by some buggy code in my cmidi2 stuff).Until I figure out the actual fixes a lot of exploring for build workarounds had happened, but now that we have the fixes the build is back to the normal state of union. aap-core v0.8.0 and aap-lv2 v0.3.0 are released to Maven Central now.
Various plugin/host ports updated
Due to the Gradle build annoyances at v0.7.8, there had not been a lot of updated plugin ports last time. But now that the issue is gone, v0.8.0 comes with a lot of updated plugin ports that are ready for the new "V3" protocol.
There was not really a new app ports, but aap-juce-plugin-host (port of JUCE AudioPluginHost) has migrated to CMake build, and now has another repository: aap-juce-plugin-host-cmake. The old one is deprecated and archived on GitHub.
Beta Was this translation helpful? Give feedback.
All reactions