Are We Audio Plugin Format Yet? - atsushieno/aap-core GitHub Wiki
In short words
- Is it usable on DAWs?
- In theory yes. We have UAPMD and aap-juce-helio as integration examples.
- What can AAP do now?
- It works as a
MidiDeviceServiceandMidiUmpDeviceService(depending on client, sometimes it may drop notes). - It can take audio and MIDI inputs and generate audio outputs, statically and dynamically.
- There might be glitchy noises and latencies, depending on client app and other apps (e.g. when there is running
MidiDeviceServiceandMidiUmpDeviceServicethat also occupy AAudio). - They are still crashy.
- There might be glitchy noises and latencies, depending on client app and other apps (e.g. when there is running
- It works as a
Core features
| Feature | API/Core | LV2 | JUCE |
|---|---|---|---|
| process audio inputs | o | o | o |
| process MIDI 1.0 inputs | o | only ControlPorts | o |
| process MIDI 1.0 outputs | o | - | o |
| process MIDI 2.0 inputs | o (UMP is native) | o (translates to 1.0) | o (translates to 1.0) |
| process MIDI 2.0 inputs | o (UMP is native) | o (translates to 1.0) | o (translates to 1.0) |
Extension features
| Feature | API/Core | LV2 | JUCE |
|---|---|---|---|
| state | o | it should work | |
| presets | o | o (almost) | o |
| float parameters | o | o | o |
| non-float parameters | - | - | - |
| out parameter transmits | o | (ditto) | (ditto) |
| audio port config | - | - | - |
| UI controller protocol | o | (up to core) | works in general |
| in-plugin-process UI | o (custom View, Android11+) | LV2UI does not support Android (LV2 issue) | some JUCE UI works (with handful of JUCE tweaks and app tweaks) |
| cross-process UI | UMP sender works | (ditto) | (ditto) |
| logging | (low quality) | (up to core) | (up to core) |
| tracing | o | o | o |
| offline rendering | - (it's up to host app) | - | - |
| processing tail | - | - | - |
| transport control | send UMP Flex Data (Tempo/TimeSig etc.) maybe? | - | - |
Performance
| Feature | API/Core | LV2 | JUCE |
|---|---|---|---|
| processes within 1msec. | o | o | o |
| cross-process latency | - (involves locks) | (up to core) | (up to core) |
| latency reports | - | - | - |
Application (seealso List of AAP plugins and hosts)
| Feature | API/Core | LV2 | JUCE | UAPMD |
|---|---|---|---|---|
| plugin | o | o | o | host only |
| host | no stable API yet | any portable host to mobile? | hosting API exists, aap-juce-plugin-host (awkward), aap-juce-simple-host (normative) | no stable API yet, but common to desktop/iOS/Web. |