AAP 0.7.x releases #115
Replies: 6 comments 2 replies
-
4 month are unexpectedly long time for only 0.1 version bump, but today I finally tagged v0.7.4 release. v0.7.4 brings in a big paradigm shift that are partly planned as "new ports" things. Namely...
There are some other changes, for example...
It's been tough months to struggle with the frequent design changes (in early stage the parameter changes were implemented as Assignable Controllers, until I noticed that I'm going to kill NRPN at all, just like VST3 CCs), but I think it's in general good now. |
Beta Was this translation helpful? Give feedback.
-
Today I released AAP v0.7.5, AAP-LV2 v0.2.5, and AAP-JUCE v0.4.5. These months have been intensive on AAP land, and while there are still many many things to do I'm kind of proud of the overall improvements. Things happened in these two months (actually mostly in January; I was kinda busy in December on other stuff):
|
Beta Was this translation helpful? Give feedback.
-
I pinned this issue because GitHub Discussions somehow gone buggy and it never treats this thread as "open". |
Beta Was this translation helpful? Give feedback.
-
Today (actually yesterday in JST) I tagged v0.7.6 in aap-core, along with aap-lv2 v0.2.6 and aap-juce v0.4.6. There has been a lot of work over stability, audio quality improvements, clearer API and design documentation, and last but not least, initial set of GUI support (finally). Almost all the existing host and plugin ports that were maintained until v0.7.5 are updated to use v0.7.6. Except for aap-juce-adlplug that is facing some build issues. (I was trying to create a CMake build but that's also facing some problem. It may take a while.)
aap-core 0.7.6
aap-lv2 0.2.6(Not really a remarkable change, it's just following aap-core changes.) aap-juce 0.4.6
AAP project overall
New apps/ports
|
Beta Was this translation helpful? Give feedback.
-
Today I tagged aap-core 0.7.7 along with aap-lv2 0.2.7 and aap-juce 0.4.7. At this state, less plugin ports were updated to 0.7.7 (there are too many for one developer to take care). Those plugins were what I thought could get broken with the latest changes in aap-core and aap-juce (some of them indeed exposed regressions). This set of releases includes:
There have been new plugin ports since 0.7.6 release. Note that everything is nothing but a simple code porting without tailoring for Android / AAP.
|
Beta Was this translation helpful? Give feedback.
-
Today I have tagged aap-core 0.7.8, aap-lv2 0.2.8, and aap-juce 0.4.8 on their repos respectively. This version is kind of transitive release before making a handful of breaking changes (to be mentioned later). This time I'm going to apply the new versions only to the limited hosts and plugins that are enough for dogfooding. In case we have to maintain this version we will eventually get more updated ports namely:
Here are the notable changes: (1) Refresh default plugin activity: we have long been using So this time we have introduced the new featureful activity as
It features:
The old UI Activity is still alive in this version, but it will vanish in the next version, along with (2) Realtime AAP Extension Service (AAPXS) messaging A bit of background: AAP extensions need to work across the processes (host app vs. plugin app), thus it is defined as part of Binder IPC AIDL messages ( I thought that it is fine if we just mark AAP extensions as non-RT-safe. However it is not just about RT safety of extensions; if those non-RT-safe methods are called, the audio processing thread may be still blocked, because there will be only one binder method invocation (because the IPC shares the proxy). Thus, we need RT-safe way to invoke those AAP extension functions, even if the functions are not RT-safe. To make it possible, we make use of MIDI2 ports. It is similar to LV2 Atom ports, or CLAP event channel (which specifies there is only one for input and for output, respectively). We defined a new UMP message format called AAPXS SysEx8. This also opens the door for AAP extensions to become really RT-safe. This effort is however, just started and we need further implementation. This version includes some preliminary version of it. We will have to introduce breaking changes to fully implement it (for example, issue #171), thus we are releasing this version before working on it further. (3) Miscellaneous changes MidiDeviceService now works in stereo mode. aap-juce-helio is now updated to run the latest Helio Workstation with JUCE 7.0.5. The project structure is now kind of awkward due to some Gradle/AGP issues that fail to function effect applier (issue #174) - they are temporarily structured to load the aar modules from git submodules. Also due to this issue we are likely unable to release AAR package for aap-lv2 (sorry for inconvenience in case it matters to anyone, but I'm also a victim from Gradle/AGP either). We do not have any new plugin ports since 0.7.7 release (we could do that too, but focused on the work above instead). |
Beta Was this translation helpful? Give feedback.
-
I'll be recording release notes here, kind of.
Today I tagged 0.7.3 release.
The 0.7.2 release had a lot of fundamental changes regarding extensions ("AAPXS", as documented in EXTENSIONS.md).
The foundation was almost set in stone there, but 0.7.3 brought it in real world usage, namely for plugin state load/save support, which made it possible to remove
getState()
/getState()
methods from the AAP AIDL. It is basically the biggest change that impacts AAP, in terms of backward compatibility. Basically we useorg.androidaudioplugin.AudioPluginService.V1
as the new intent action to differentiate from older ones i.e. older AAPs will not be found on newer plugin clients (and vice versa).Apart from that, 0.7.2 should have involved a lot of changes to the client API too, but it was also a lot of work, especially the Kotlin client API was based on AIDL directly. Since the new extension foundation requires the native API (namely
aap::RemotePluginInstace
), it was not possible to support it without the whole rewrite that happened in this 0.7.3 release.A handful of (but not all) existing aap-lv2 and aap-juce plugin ports are also updated to 0.7.3. Namely, Dexed and Odin2 were also updated to the latest upstream sources and they are now CMake based ports.
I am not certain what 0.7.4 will be like, but my current plan is to implement dynamic ports configuration (described at NEW_PORTS.md design doc).
Beta Was this translation helpful? Give feedback.
All reactions