OwnAudioVst 1.3.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package OwnAudioVst --version 1.3.1
                    
NuGet\Install-Package OwnAudioVst -Version 1.3.1
                    
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.3.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OwnAudioVst" Version="1.3.1" />
                    
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.3.1
                    
#r "nuget: OwnAudioVst, 1.3.1"
                    
#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.3.1
                    
#: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.3.1
                    
Install as a Cake Addin
#tool nuget:?package=OwnAudioVst&version=1.3.1
                    
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.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on OwnAudioVst:

Package Downloads
OwnAudioSharp

Complete cross-platform audio engine for .NET desktop apps (Windows, Linux, macOS), built on a native Rust core. Playback, recording, multi-track mixing, effects, VST3 hosting and MIDI, plus the analysis features (chord detection, note transcription, matchering) and the Avalonia waveform display. AOT-compatible and trimmable.

OwnAudioSharp.Basic

Minimal cross-platform audio engine for .NET desktop apps (Windows, Linux, macOS), built on a native Rust core. Audio in and out only: playback, recording, multi-track mixing, effects and VST3 hosting. Everything that could be left out is left out - no analysis features, no ONNX models, no UI dependency - so it stays a fraction of the full package size. AOT-compatible and trimmable.

OwnAudioSharp.Mobile

Cross-platform audio engine for .NET mobile apps (Android, iOS), built on a native Rust core. Playback, recording, multi-track mixing, effects, VST3 hosting, matchering and the Avalonia waveform display, without the ONNX-based analysis features (no chord detection, no note transcription). AOT-compatible and trimmable.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on OwnAudioVst:

Repository Stars
ModernMube/OwnAudioSharp
Ownaudio is a cross-platform C# audio library that works across platforms without external dependencies.
Version Downloads Last Updated
1.7.0 47 9/8/2026
1.6.8 155 8/29/2026
1.6.7 2,983 7/5/2026
1.6.4 906 6/14/2026
1.6.3 773 5/30/2026
1.6.0 169 5/26/2026
1.5.21 123 5/23/2026
1.5.20 242 5/10/2026
1.5.7 149 5/1/2026
1.4.6 168 4/21/2026
1.4.1 348 4/8/2026
1.4.0 462 2/15/2026
1.3.2 138 1/31/2026
1.3.1 142 1/30/2026
Loading failed