|
iPlug2 - C++ Audio Plug-in Framework
|
iPlug2 supports building plugins for Windows ARM64EC (ARM64 Emulation Compatible), enabling native performance on Windows ARM devices while maintaining compatibility with x64 hosts.
ARM64EC is a Windows ABI that allows ARM64 code to interoperate with x64 code. This is particularly useful for audio plugins because:
This means you can ship ARM64EC plugins that will:
ARM64EC builds are supported for:
ARM64EC builds require:
ARM64EC builds use cross-compilation from an x64 host. When building from command line, the build environment must be initialized for ARM64 cross-compilation:
The amd64_arm64 argument tells vcvarsall to set up the x64-hosted ARM64 cross-compiler toolchain, which is used for ARM64EC builds.
Note: You can verify the ARM64EC tools are installed by checking if vswhere finds them:
& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -requires Microsoft.VisualStudio.Component.VC.Tools.ARM64EC -property installationPath
Each iPlug2 solution includes ARM64EC configurations alongside x64:
| Configuration | Platform | Description |
|---|---|---|
| Debug | x64 | Debug build for x64 |
| Debug | ARM64EC | Debug build for ARM64EC |
| Release | x64 | Release build for x64 |
| Release | ARM64EC | Release build for ARM64EC |
| Tracer | x64 | Tracer build for x64 |
| Tracer | ARM64EC | Tracer build for ARM64EC |
IPlugEffect.sln)Debugger settings are configured via MSBuild properties in common-win.props. The following variables control debugger host paths:
VST2_X64_HOST_PATH - Host application for x64 VST2 debuggingVST3_X64_HOST_PATH - Host application for x64 VST3 debuggingCLAP_X64_HOST_PATH - Host application for x64 CLAP debuggingVST2_ARM64EC_HOST_PATH - Host application for ARM64EC VST2 debuggingVST3_ARM64EC_HOST_PATH - Host application for ARM64EC VST3 debuggingCLAP_ARM64EC_HOST_PATH - Host application for ARM64EC CLAP debuggingVST3_X64_PATH - Installation path for x64 VST3 pluginsVST3_ARM64EC_PATH - Installation path for ARM64EC VST3 pluginsCLAP_X64_PATH - Installation path for x64 CLAP pluginsCLAP_ARM64EC_PATH - Installation path for ARM64EC CLAP pluginsBuilt binaries use platform suffixes:
| Format | x64 Output | ARM64EC Output |
|---|---|---|
| VST2 | PluginName_x64.dll | PluginName_ARM64EC.dll |
| VST3 | PluginName.vst3/Contents/x86_64-win/ | PluginName.vst3/Contents/arm64ec-win/ |
| CLAP | PluginName.clap | PluginName.clap (in ARM64EC folder) |
| APP | PluginName_x64.exe | PluginName_ARM64EC.exe |
ARM64EC builds are automatically skipped when ‘graphics: 'SKIA’` is specified, as Skia does not yet support ARM64EC on Windows.
VST3 plugins support multi-architecture bundles. After building both architectures, the bundle structure is:
This allows a single VST3 bundle to contain both x64 and ARM64EC binaries, with the host selecting the appropriate one at runtime.