Module xref

Module xref 

Source
Expand description

Cross-reference engine: extract plugin references from DAW project files.

Parses 11 DAW formats: Ableton (.als), REAPER (.rpp), Bitwig (.bwproject), Studio One (.song), DAWproject, FL Studio (.flp), Logic Pro (.logicx), Cubase/Nuendo (.cpr), Pro Tools (.ptx/.ptf), and Reason (.reason). Returns deduplicated lists of plugin names, manufacturers, and types.

StructsΒ§

PluginRef

ConstantsΒ§

XREF_SUPPORTED_EXTENSIONS πŸ”’
Extensions implemented in extract_plugins (plugin cross-reference).

StaticsΒ§

ALS_AU_BLOCK_RE πŸ”’
ALS_AU_MFG_RE πŸ”’
ALS_AU_NAME_RE πŸ”’
ALS_VST2_BLOCK_RE πŸ”’
ALS_VST2_MFG_RE πŸ”’
ALS_VST2_NAME_RE πŸ”’
ALS_VST3_BLOCK_RE πŸ”’
ALS_VST3_MFG_RE πŸ”’
ALS_VST3_NAME_RE πŸ”’
ARCH_SUFFIX_RE πŸ”’
Regex to strip architecture/platform suffixes from plugin names.
RPP_PLUGIN_RE πŸ”’
XML_DEVICE_NAME_RE πŸ”’
XML_PLUGIN_NAME_RE πŸ”’
XML_PLUG_NAME_RE πŸ”’

FunctionsΒ§

extract_au_identifiers πŸ”’
Extract Audio Unit identifiers from binary data. Logic stores AU plugins as 4-char codes like β€œaufx”, β€œaumu”, β€œaumf” followed by subtype and manufacturer.
extract_logic_plugin_names πŸ”’
Extract Logic Pro plugin names from binary data. Logic stores plugin names as standalone readable strings in the ProjectData binary.
extract_named_plugins πŸ”’
Extract plugin names that follow a marker string in binary data. Used by Cubase (.cpr) where plugins appear as β€œPlugin Name” followed by the name.
extract_plugin_from_string πŸ”’
Try to extract a plugin reference from a single string (path or name). Handles both exact suffix match and embedded paths (e.g. β€œSerum.dll8” in FLP chunks).
extract_plugins
Extract plugin references from a DAW project file. Returns an empty vec for unsupported formats.
extract_plugins_from_binary πŸ”’
Extract plugin references from a binary file via string scanning. Looks for paths ending in .dll, .vst3, .component, .clap, .aaxplugin
extract_plugins_from_dir πŸ”’
Extract plugins from all files in a directory (for .logicx packages).
extract_plugins_from_plist πŸ”’
Extract plugin names from a Logic Pro plist structure.
extract_plugins_from_xml πŸ”’
Extract plugin names from XML using pre-compiled regex patterns.
extract_plugins_utf16le πŸ”’
Extract plugin references from UTF-16LE encoded strings in binary data. FL Studio and some other DAWs use UTF-16LE for internal strings.
normalize_plugin_name
Normalize a plugin name for matching: lowercase, strip arch suffixes, collapse whitespace, trim.
parse_ableton πŸ”’
Parse Ableton Live .als file (gzip-compressed XML).
parse_bitwig πŸ”’
Parse Bitwig .bwproject file (binary β€” reuses shared string extraction).
parse_cubase πŸ”’
Parse Cubase/Nuendo .cpr file (binary β€” string extraction + Plugin Name markers).
parse_dawproject πŸ”’
Parse .dawproject file (ZIP containing project.xml β€” open standard).
parse_flp πŸ”’
Parse FL Studio .flp file (binary chunk format). Uses binary string extraction + UTF-16LE scanning for plugin paths.
parse_logic πŸ”’
Parse Logic Pro .logicx package (contains binary plists with plugin info).
parse_protools πŸ”’
Parse Pro Tools .ptx/.ptf file. Note: .ptf files (Pro Tools 7-10) are XOR-encrypted and require decryption. .ptx files (Pro Tools 10+) use a different format. Both are attempted via string extraction; encrypted files will yield 0 results.
parse_reaper πŸ”’
Parse REAPER .rpp file (plaintext).
parse_reason πŸ”’
Parse Reason .reason file (binary β€” string extraction).
parse_studio_one πŸ”’
Parse Bitwig Studio .bwproject file (binary with embedded strings).