-
-
Notifications
You must be signed in to change notification settings - Fork 3
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
implement realtime extension support: AAPXS SysEx8 #169
Comments
A few additional notes:
|
context: #169 The SysEx8 parser and generator implementation is still standalone. They need to be integrated to `AAPXS[Client|Service]Instance`. It makes use of new cmidi2 functions for SysEx8 parser, so bump cmidi2 too.
…r (WIP) context: #169 Unlike service side, the client side needs to handle it at app level. It is still not verified, as it turned out that we do not have any feature that triggers preset setter in the current manager UI. We need to add it.
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 |
…inPlayer. Everything is still hacky; we should bring in another wrapping layer around AAPXSClientInstance. context: - #170 (comment) - #171 - #175 - #169 (comment) The code still does not bring in fairly good RT safety because it looks up interned URI (because we cannot intern extension URIs that are sent by the client). We will have to come up with something like LV2 URIDs and/or reserved extension URI mappings (like well known TCP ports). As for 0.7.8, this PoC would suffice.
Regarding these issues: #182 `get_preset()` now takes async callback arguments, so every relevant parts needed to be updated too. This was a big chunk of breaking changes. #176 Since our AAPXS client handler API is not async-ified, it still works in synchronous mode, but the extension functionality is basically back (in that preset list retrieval is fully functional again). We likely need to revamp the overall AAPXS stuff (especially the whole foundation behind StandardExtensions is synchronous), but we recover the basic functionality first in this commit. #169 The client side code is, as explained above, hacky overall, but there is certain progress.
Most of the work is now done in It is possible to achieve that by |
^ is resolved as |
We can close this issue once |
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.
The text was updated successfully, but these errors were encountered: