Table of Contents

Class Vst3PluginScanner

Namespace
NAudio.Vst3
Assembly
NAudio.Vst3.dll

Scans the standard VST 3 plug-in folders for installed modules.

public static class Vst3PluginScanner
Inheritance
Vst3PluginScanner
Inherited Members

Remarks

Phase 1 surface — pure file-system enumeration. The scanner does not load any of the discovered modules, so it's safe to call at startup against a large plug-in collection without paying native-load costs.

The default search paths follow Steinberg's documented locations (Plugin Locations):

  • %CommonProgramFiles%\VST3 — system-wide
  • %LOCALAPPDATA%\Programs\Common\VST3 — per-user

Properties

DefaultSearchPaths

The standard VST 3 search paths used by EnumerateInstalled(). Exposed so callers can display them or pass them to EnumerateIn(string) individually.

public static IReadOnlyList<string> DefaultSearchPaths { get; }

Property Value

IReadOnlyList<string>

Methods

EnumerateIn(string)

Enumerates the .vst3 entries in a folder and any of its sub-folders, treating each .vst3 entry as a leaf (we never descend into a bundle, even though the bundle is itself a directory). Vendor sub-folders like VST3\iZotope\Ozone 11.vst3 and VST3\Line 6\Helix Native.vst3 are part of the VST 3 spec, so a flat top-level-only scan would miss them.

public static IReadOnlyList<Vst3ModuleInfo> EnumerateIn(string folder)

Parameters

folder string

Returns

IReadOnlyList<Vst3ModuleInfo>

Remarks

Returns an empty list if the folder does not exist. I/O errors on individual sub-folders (e.g. access-denied) are silently skipped so a single permission glitch can't blackhole the whole scan.

EnumerateInstalled()

Enumerates every .vst3 entry across the DefaultSearchPaths. Results are ordered case-insensitively by name within each folder; entries that appear in more than one folder are returned multiple times — callers that want a unique list should deduplicate by Name.

public static IReadOnlyList<Vst3ModuleInfo> EnumerateInstalled()

Returns

IReadOnlyList<Vst3ModuleInfo>