atsushieno / aap-core

an Audio Plugin Format/Framework for Android
MIT License
90 stars 3 forks source link

index based extension URI table for AAPXS SysEx8 #180

Closed atsushieno closed 10 months ago

atsushieno commented 12 months ago

Currently we do not have anything equivalent to LV2 URID. We have some string interning around AAPXS, and they were enough until AAPXS SysEx8 brought in non-interned string buffer over MIDI2 buffer.

Now, with AAPXS SysEx8, every URI lookup from the URI indicated by every AAPXS SysEx8 is done using strcmp(). It is not very efficient and would have big impact on realtime processing.

What we should do is to have a foundation for URI to-and-from integer mapping, just like LV2 URID does. We could actually minimize the complication by having a predefined mappings for standard extension (that may hide some design flaws in the extensibility support e.g. lack of support for mapped extensions though).

atsushieno commented 12 months ago

On a related note, midi2 extension already mention LV2 URID alike and allocated the space for an 8bit space. https://github.com/atsushieno/aap-core/blob/53007c5ea44ed5049b868524a131f39961d5367c/include/aap/ext/midi.h#L37

atsushieno commented 11 months ago

It is being implemented in aapxs-v080 branch (but still needs URID extension design and API).

atsushieno commented 10 months ago

A refined task list:

atsushieno commented 10 months ago

I'm still wondering: should this be a form of "extension" ?

There can be some trick to make URID kind of things working without additional API, e.g.:

Regarding the mapping agreement:

atsushieno commented 10 months ago

It is now fully implemented.