Closed atsushieno closed 1 year ago
A few additional notes:
Unless it is going to be too complicated, it should be done before 0.7.8 release.
As issues #171 is post-0.7.8 work, the entire work is inherently moved to post-0.7.8 as well. Until then, we will have proof-of-concept setPresetIndex() call at aap::AudioPluginNode::setPresetIndex(int index)
to conditionally generate AAPXS SysEx8 and send it.
Most of the work is now done in aapxs-v080
branch, but I noticed that binder-client-as-plugin
's get_extension()
requires public extension API implementation for each AAPXS. It also needs to be provided by each AAPXS developer.
It is possible to achieve that by TypedAAPXS
implementation classes, but that requires AAPXSDispatcher
and its instantiated shared memory buffers, while AAPXSDefinition
itself is basically all statically resolved. We likely need to provide another way to instantiate the registry, kind of.
^ is resolved as get_plugin_extension_proxy()
member function in AAPXSDefinition
.
We can close this issue once aapxs-v080
branch is merged to main
.
It is now merged into main.
As it has been written in several issues and documents (e.g. issue #73, issue #145, issue #158), current Binder-based
extension()
support does not cover realtime usage scenario and they should be covered as in MIDI2 system exclusive messages atprocess()
.Now that we have refresh implementation for plugin manager with
aap::MidiDestinationNode
which is ready to be used inaap::PluginPlayer
, it is time to actually implement it.There are handful of blocks that need new code:
aap::LocalPluginInstance
needs to integrate this MIDI input parsing support.aap::RemotePluginInstance
needs to integrate this MIDI output generation support.standard-extensions.h
and its implementation also needs async-ification.Unless it is going to be too complicated, it should be done before 0.7.8 release.