Atlas Audio: Plugin Formats (VST / AU / AAX / CLAP)
The Plugin Formats extractor reads metadata from macOS audio plugin bundles — VST2, VST3, AU, AAX, and CLAP. It’s part of the Atlas Audio extractor pack.
Extension: .plist
How It Works
On macOS, every audio plugin is a directory bundle (e.g., Pro-Q 3.vst3/) containing a Contents/Info.plist file. Atlas watches individual files, not directories — so when a user watches a plugin folder, the Info.plist files inside bundles are what Atlas hashes and tracks.
The extractor registers for the .plist extension and uses the file’s parent directory path to detect whether it belongs to a plugin bundle. If the path matches *.<bundle_ext>/Contents/, it parses the plist and extracts metadata as traits. Non-plugin plists are ignored.
Supported Bundle Types
| Extension | Format |
|---|---|
.vst | VST2 |
.vst3 | VST3 |
.component | Audio Unit (AU) |
.aaxplugin | AAX (Pro Tools) |
.clap | CLAP |
What It Extracts
The extractor produces traits only (no edges). Plugin plists don’t reference external files — plugins are leaf nodes referenced by DAW projects, not the other way around.
Common Traits (All Formats)
| Trait | Source | Example |
|---|---|---|
plugin_name | CFBundleName or AudioComponents name | "FabFilter Pro-Q 3" |
plugin_vendor | Parsed from CFBundleIdentifier | "Fabfilter" |
plugin_version | CFBundleShortVersionString | "3.27" |
plugin_format | Detected from bundle extension | "vst3" |
plugin_bundle_id | CFBundleIdentifier | "com.fabfilter.Pro-Q.vst3.3" |
AU-Specific Traits
When an AudioComponents array is present (AU bundles, and some CLAP bundles that include AU metadata):
| Trait | Source | Example |
|---|---|---|
au_type | AudioComponents type | "aumu" |
au_subtype | AudioComponents subtype | "FQ3p" |
au_manufacturer | AudioComponents manufacturer | "FabF" |
au_version | AudioComponents version | "199940" |
au_api_version | Detected from plist keys | "v2" or "v3" |
plugin_category | Derived from au_type | "instrument", "effect", or "music-effect" |
Vendor Parsing
The vendor name is extracted using two strategies:
- AU name field — AudioComponents names often follow
"Vendor: Plugin Name". Splitting on": "gives the cleanest vendor name. - Bundle identifier — The CFBundleIdentifier follows reverse-DNS (
com.vendorname.product). The second segment is title-cased as a fallback.
Example Usage
# Watch a plugin directory
atlas watch /Library/Audio/Plug-Ins/VST3/
# View extracted traits for a plugin
atlas info /Library/Audio/Plug-Ins/VST3/FabFilter\ Pro-Q\ 3.vst3/Contents/Info.plist
DAW Project Resolution
When the Reaper extractor finds a plugin reference like <VST "VST3i: Pro-Q 3 (FabFilter)"> in an RPP file, it creates an input edge with a canonical match key as the reference path:
plugin://fabfilter/pro-q 3/vst3
The Plugin Formats extractor stores the same canonical key as a plugin_match_key trait on the plugin’s Info.plist entity. At query time, Atlas resolves the edge by matching the RPP’s reference path against plugin entities’ match key traits — connecting DAW project to plugin entity automatically.
This means atlas inputs my-song.rpp shows resolved plugin entities with their full metadata (name, vendor, version), and atlas trace --backward on a plugin entity shows every project that uses it.
The match key normalizes vendor names (stripping spaces, hyphens, lowercasing) so that "Native Instruments" from an RPP and "NativeInstruments" from a CFBundleIdentifier both resolve correctly. The human-readable plugin_vendor trait is preserved separately for display.
Use Cases
- Plugin inventory — Catalog every plugin installed on the system with name, vendor, version, and format
- Version tracking — Atlas hashes
Info.pliston every change, so plugin updates create new hash history entries with updatedplugin_versiontraits - Cross-format awareness — The same plugin across VST3, AU, AAX, and CLAP formats produces separate entities, but shared
plugin_nameandplugin_vendortraits make them queryable as a group - DAW dependency resolution — Tracing from a project shows the actual plugin entities it depends on, with version info
- Reverse lookup — Tracing backward from a plugin shows every project that uses it — useful for assessing impact before removing or updating a plugin