OwnAudioVst 1.4.0

dotnet add package OwnAudioVst --version 1.4.0
                    
NuGet\Install-Package OwnAudioVst -Version 1.4.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OwnAudioVst" Version="1.4.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OwnAudioVst" Version="1.4.0" />
                    
Directory.Packages.props
<PackageReference Include="OwnAudioVst" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OwnAudioVst --version 1.4.0
                    
#r "nuget: OwnAudioVst, 1.4.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OwnAudioVst@1.4.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OwnAudioVst&version=1.4.0
                    
Install as a Cake Addin
#tool nuget:?package=OwnAudioVst&version=1.4.0
                    
Install as a Cake Tool

OwnVst3Host

A powerful, cross-platform C# wrapper for VST3 plugins with built-in visual editor support using Avalonia UI.

NuGet License: MIT

Features

  • 🎹 Full VST3 Support - Load and control VST3 instruments and effects with complete API coverage
  • 🖥️ Cross-Platform Editors - Display plugin UIs seamlessly on Windows, macOS, and Linux using Avalonia
  • 🎛️ Parameter Control - Get, set, and monitor plugin parameters programmatically
  • 🎵 MIDI Support - Send MIDI events to VST3 instruments
  • 🔊 Real-Time Audio Processing - Process audio buffers with native performance
  • 🚀 Native Performance - Uses optimized C++ library for minimal overhead
  • 📦 Zero Configuration - Automatic platform detection and native library loading

Installation

Install via NuGet Package Manager:

dotnet add package OwnVst3Host

Or via Package Manager Console:

Install-Package OwnVst3Host

Quick Start

Basic Plugin Loading

using OwnVST3Host;

// Create wrapper instance (automatic platform detection)
var plugin = new OwnVst3Wrapper();

// Load a VST3 plugin
plugin.LoadPlugin("/path/to/plugin.vst3");

// Initialize audio engine
plugin.Initialize(sampleRate: 44100, bufferSize: 512);

// Get plugin information
Console.WriteLine($"Name: {plugin.Name}");
Console.WriteLine($"Vendor: {plugin.Vendor}");
Console.WriteLine($"Type: {(plugin.IsInstrument ? "Instrument" : "Effect")}");

// Clean up
plugin.Dispose();

Opening Plugin Editor

using OwnVST3Host.Extensions;

// Check if plugin has a visual editor
if (plugin.HasEditor())
{
    // Open editor in a new window
    var editorWindow = plugin.ShowEditor();
    
    // Check if editor is currently open
    bool isOpen = editorWindow.IsEditorActive;
}

Working with Parameters

// Get parameter count
int paramCount = plugin.GetParameterCount();

// Get parameter information
var paramInfo = plugin.GetParameterInfo(0);
Console.WriteLine($"{paramInfo.Name}: {paramInfo.CurrentValue}");

// Set parameter value (normalized 0.0 - 1.0)
plugin.SetParameterValue(0, 0.5);

// Get current parameter value
double value = plugin.GetParameterValue(0);

Processing Audio

// Prepare audio buffers
float[] inputBuffer = new float[512];
float[] outputBuffer = new float[512];

// Process audio
plugin.ProcessAudio(inputBuffer, outputBuffer, sampleCount: 512);

Sending MIDI Events

// Send a MIDI note on message
plugin.SendMidiEvent(
    status: 0x90,  // Note On
    data1: 60,     // Middle C
    data2: 100     // Velocity
);

// Send a MIDI note off message
plugin.SendMidiEvent(
    status: 0x80,  // Note Off
    data1: 60,     // Middle C
    data2: 0       // Velocity
);

Finding VST3 Plugins

// Get default VST3 directories for current platform
string[] directories = OwnVst3Wrapper.GetDefaultVst3Directories();

// Find all VST3 plugins in default locations
List<string> plugins = OwnVst3Wrapper.FindVst3Plugins();

foreach (string pluginPath in plugins)
{
    Console.WriteLine($"Found: {Path.GetFileName(pluginPath)}");
}

// Get diagnostic information
string info = OwnVst3Wrapper.GetVst3DirectoriesInfo();
Console.WriteLine(info);

Platform Support

Platform Supported Architectures
Windows x64, x86
macOS x64, ARM64 (Apple Silicon)
Linux x64

Native libraries are automatically selected based on your runtime platform and architecture.

API Reference

Core Methods

Method Description
LoadPlugin(path) Load a VST3 plugin from the specified path
Initialize(sampleRate, bufferSize) Initialize the audio processing engine
ProcessAudio(input, output, samples) Process audio buffers
Dispose() Release all resources and clean up

Editor Support

Method Description
HasEditor() Check if the plugin has a visual editor
ShowEditor() Open the editor in a new window
ShowEditor(owner) Open the editor as a child of the owner window
IsEditorActive Check if the editor is currently open

Parameters

Method Description
GetParameterCount() Get the total number of parameters
GetParameterValue(index) Get the current value of a parameter (0.0 - 1.0)
SetParameterValue(index, value) Set a parameter value (0.0 - 1.0)
GetParameterInfo(index) Get parameter metadata (name, units, etc.)

MIDI

Method Description
SendMidiEvent(status, data1, data2) Send a MIDI message to the plugin
IsInstrument Check if the plugin is a MIDI instrument

Plugin Information

Property Description
Name Plugin name
Vendor Plugin vendor/manufacturer
Version Plugin version string
IsInstrument Whether the plugin is an instrument
IsEffect Whether the plugin is an effect

Requirements

  • .NET 9.0 or higher
  • Avalonia 11.2.3 (automatically included)

License

This project is licensed under the MIT License. See the LICENSE.txt file for details.

Support

Acknowledgments

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net9.0

    • No dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on OwnAudioVst:

Package Downloads
OwnAudioSharp

Cross-platform audio engine library for desktop platforms (Windows, Linux, macOS)

OwnAudioSharp.Mobile

Cross-platform audio engine library for mobile platforms (Android and iOS)

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.4.0 64 2/15/2026
1.3.2 90 1/31/2026
1.3.1 86 1/30/2026