Prerequisites
Install Visual Studio 2019 or 2022
Install ARM64EC build tools (optional)
For ARM64 Windows support:
- Open Visual Studio Installer
- Click Modify on your installation
- Go to Individual Components
- Search for “ARM64EC” and install:
- MSVC v143 - VS 2022 C++ ARM64EC build tools (Latest)
Supported Architectures
x64
Standard 64-bit Intel/AMD processorsDefault architecture for Windows plugins
ARM64EC
ARM64 with x64 emulation compatibilityNative ARM64 performance, compatible with x64 hosts
ARM64EC allows ARM64 plugins to run natively on ARM64 Windows devices while remaining compatible with x64 DAWs running under emulation.
Project Structure
Each plugin has a Visual Studio solution (.sln) containing multiple projects:
Building with Visual Studio
Opening the Project
Select configuration
Choose from the toolbar:
- Debug - Development with full debug symbols
- Release - Optimized for distribution
- Tracer - Performance profiling
Building from Command Line
- MSBuild
- Developer Command Prompt
Build Output
Built plugins are placed inbuild-win/ with platform-specific naming:
x64 Output
ARM64EC Output
VST3 bundles can contain both x64 and ARM64EC binaries in a single
.vst3 folder.Deployment Paths
Plugins are automatically copied to standard locations after building:| Format | Default Path | Notes |
|---|---|---|
| VST3 | %LOCALAPPDATA%\Programs\Common\VST3 | Per-user, no admin required |
| VST2 | %PROGRAMFILES%\VstPlugins | System-wide |
| CLAP | %LOCALAPPDATA%\Programs\Common\CLAP | Per-user, no admin required |
| AAX | %COMMONPROGRAMFILES%\Avid\Audio\Plug-Ins | System-wide |
Customizing Deployment
Editcommon-win.props to change deployment paths:
Debugging
Setting Up Debugger
The debugger is automatically configured to launch a host application.Start debugging
Press F5 or Debug > Start DebuggingVisual Studio will:
- Build the plugin
- Copy it to the deployment path
- Launch your DAW
- Attach the debugger
Debug Host Variables
| Variable | Description | Example |
|---|---|---|
VST3_X64_HOST_PATH | VST3 debug host (x64) | REAPER, Ableton Live |
VST3_ARM64EC_HOST_PATH | VST3 debug host (ARM64EC) | REAPER (ARM64) |
CLAP_X64_HOST_PATH | CLAP debug host (x64) | Bitwig Studio |
CLAP_ARM64EC_HOST_PATH | CLAP debug host (ARM64EC) | Bitwig (ARM64) |
Common Build Configurations
Runtime Library
All iPlug2 projects use static runtime to avoid DLL dependencies:- Release:
/MT(Multi-threaded) - Debug:
/MTd(Multi-threaded Debug)
Static runtime means plugins don’t require redistributable packages (e.g.,
vcredist_x64.exe).Preprocessor Defines
Common defines (fromcommon-win.props):
Include Paths
Automatically configured fromcommon-win.props:
ARM64EC Support
What is ARM64EC?
ARM64EC (ARM64 Emulation Compatible) allows:- Native ARM64 performance on Windows ARM devices
- Compatibility with x64 hosts running under emulation
- Gradual migration from x64 to ARM64
Native Speed
ARM64EC code runs at full native speed on ARM64 processors
x64 Compatible
Can be loaded by x64 DAWs running under emulation
Building ARM64EC
Limitations
Troubleshooting
Link errors: unresolved external symbols
Link errors: unresolved external symbols
Cause: Missing SDK or librarySolution:
- Verify SDKs are downloaded:
Dependencies\IPlug\VST3_SDK, etc. - Check include paths in
common-win.props - Ensure all projects use the same runtime library (
/MTvs/MD)
Plugin not loading in DAW
Plugin not loading in DAW
Cause: Architecture mismatch or missing dependenciesSolution:
- Ensure DAW architecture matches plugin (x64 DAW needs x64 plugin)
- Check plugin is copied to correct path
- Use Dependency Walker to check for missing DLLs
Debugger not attaching
Debugger not attaching
Cause: Incorrect debug host path or permissionsSolution:
- Verify
VST3_X64_HOST_PATHpoints to valid executable - Run Visual Studio as Administrator if needed
- Check Windows Defender isn’t blocking the debugger
ARM64EC build fails
ARM64EC build fails
Cause: ARM64EC build tools not installedSolution:
- Install ARM64EC build tools via Visual Studio Installer
- Verify installation with
vswherecommand above - Note: Skia graphics not supported for ARM64EC
Build Scripts
Example batch script for automated builds:build.bat
Next Steps
Code Signing
Sign plugins for distribution
Installer Creation
Create Windows installers
CMake Build
Alternative build system
Debugging Guide
Advanced debugging techniques