AUDIO
Source snapshot · 6 November 2026

Build and bundle a plug-in product

SDK settings and precedence

Settings contain paths, never SDK source or signing credentials:

[sdks]
vst3 = "/SDKs/vst3"
audio_unit = "/SDKs/AudioUnitSDK"
aax = "/SDKs/AAX"
lv2 = "/SDKs/lv2"
webview2 = "/SDKs/Microsoft.Web.WebView2"

Use a project ravet-sdks.toml beside the product's Cargo.toml or in an ancestor (the nearest file wins), or the per-user file:

Platform User settings
macOS ~/Library/Application Support/ravet/ravet-sdks.toml
Linux ~/.config/ravet/ravet-sdks.toml
Windows %APPDATA%/ravet/ravet-sdks.toml

$XDG_CONFIG_HOME/ravet/ravet-sdks.toml overrides the platform config location when set. Project paths override user paths individually; omitted keys inherit. Relative settings paths resolve against the file's directory; ~ expands to the user's home. Explicit --settings replaces automatic project-file selection. Unknown settings keys and malformed paths/commands reject.

For each SDK, precedence is explicit flag → environment variable → project file → user file. Environment variables are RAVET_VST3_SDK, RAVET_AUDIO_UNIT_SDK, RAVET_AAX_SDK, and RAVET_LV2_SDK. Prefer absolute paths for flags and environment variables. No sibling checkout, package-manager prefix or developer-specific path is guessed. Missing SDK errors name the key, environment variable or missing file. Only selected formats need SDKs: AU and AAX do not need VST3. LV2 accepts official include/lv2 or flat lv2 headers, including COPYING. Format SDK licence notices are added to the bundles.

Foundry's saved SDK fields are passed as explicit flags, so they override the same shared discovery layers. Empty fields allow environment/project/user settings to supply a path. Keep machine-specific SDK settings out of public consumer source control when appropriate.