Skip to main content

songbird-plugin-registry

Discovery, caching, and loading for stock plugins, external VST3/AU plugins, and custom ScriptFX.

What it owns

  • Plugin scan paths (vst3_search_dirs, au_search_dirs).
  • Registry persistence (PluginRegistry, PluginRegistryEntry).
  • Listing and loading entry points used by the sync engine and orchestration crates.

Public API

  • PluginRegistry, PluginRegistryEntry.
  • scan_plugin_dirs, list_all_installed_plugins, load_plugin, populate_registry.

How it fits

Sits between the host (songbird-host-ffi), the in-tree plugins (songbird-plugins), and the state store (songbird-state). Used by songbird-app, songbird-headless, songbird-orchestrator, songbird-session. ⚠️ Plugin loading must happen on the Tauri dispatch thread. See AGENTS.md “Anti-patterns”.

Tests

cargo test -p songbird-plugin-registry. Behavioral contracts around missing plugins are in rust/crates/integration/songbird-host-ffi/SPEC.md.