Skip to content

Are We Audio Plugin Format Yet?

Atsushi Eno edited this page Jul 6, 2023 · 9 revisions

In short words

  • Is it usable on DAWs?
    • Not really, but aap-juce-helio can be seen as an integration example.
  • What can AAP do now?
    • It works as a MidiDeviceService (depending on client, sometimes it may drop notes).
    • It can take audio and MIDI inputs and generate audio outputs
      • statically with no problem.
      • dynamically, in general works but could involve glitch noises, depending on client app and other apps (e.g. when there is running MidiDeviceService that also occupies AAudio).

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 o (translates to 1.0) o (translates to 1.0)
process MIDI 2.0 inputs o o (translates to 1.0) o (translates to 1.0)

Extension features

Feature API/Core LV2 JUCE
state o it should work it should work
presets o o (almost) o
float parameters o o o
non-float parameters - - -
audio port config - - -
UI controller protocol work just started (up to core) (up to core)
in-plugin-process UI o (custom View, Android11+) LV2UI does not support Android (LV2 issue) juce_gui_basics only works as Activity (JUCE issue)
cross-process UI only basic MIDI (1.0/2.0) sender works (ditto) (ditto)
logging (low quality) (up to core) (up to core)
tracing o o o
offline rendering - (it's just a flag, right?) - -
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
plugin o o o
host no stable API yet any portable host to mobile? hosting API exists, aap-juce-plugin-host (awkward), aap-juce-simple-host (normative)