A cross-platform C# wrapper for VST3 plugins with built-in visual editor support using Avalonia UI.
- VST3 Plugin Loading - Load and control VST3 instruments and effects
- Cross-Platform Editors - Display plugin UIs on Windows, macOS, and Linux
- Parameter Control - Get/set plugin parameters programmatically
- MIDI Support - Send MIDI events to instruments
- Audio Processing - Process audio buffers in real-time
- Native Performance - Uses native C++ library for optimal performance
Install via NuGet Package Manager:
dotnet add package OwnVst3HostOr via Package Manager Console:
Install-Package OwnVst3Hostusing OwnVST3Host;
using OwnVST3Host.Extensions;
// Load a VST3 plugin
var plugin = new OwnVst3Wrapper();
plugin.LoadPlugin("/path/to/plugin.vst3");
plugin.Initialize(44100, 512);
// Check if plugin has a visual editor
if (plugin.HasEditor())
{
// Open the editor window
var editorWindow = plugin.ShowEditor();
// Check if editor is currently open
bool isOpen = editorWindow.IsEditorActive;
}
// Get plugin information
Console.WriteLine($"Name: {plugin.Name}");
Console.WriteLine($"Vendor: {plugin.Vendor}");
Console.WriteLine($"Type: {(plugin.IsInstrument ? "Instrument" : "Effect")}");
// Process audio
plugin.ProcessAudio(inputBuffer, outputBuffer, sampleCount);
// Clean up
plugin.Dispose();LoadPlugin(path)- Load a VST3 pluginInitialize(sampleRate, bufferSize)- Initialize the audio engineProcessAudio(input, output, samples)- Process audio buffersDispose()- Clean up resources
HasEditor()- Check if plugin has a visual editorShowEditor()- Open editor in a new windowShowEditor(owner)- Open editor as child of owner windowIsEditorActive- Check if editor is currently open
GetParameterCount()- Get number of parametersGetParameterValue(index)- Get parameter valueSetParameterValue(index, value)- Set parameter valueGetParameterInfo(index)- Get parameter metadata
SendMidiEvent(status, data1, data2)- Send MIDI messageIsInstrument- Check if plugin is a MIDI instrument
| Platform | Supported | Architecture |
|---|---|---|
| Windows | ✅ | x64, x86, ARM64 |
| macOS | ✅ | x64, ARM64 (Universal) |
| Linux | ✅ | x64, ARM64 |
# Clone the repository with submodules
git clone --recursive https://github.com/ModernMube/OwnVST3Sharp.git
cd OwnVST3Sharp
# Build the solution
dotnet build OwnVST3Sharp.sln --configuration Release
# Run the demo
dotnet run --project OwnVST3EditorDemo- OwnVST3Host - Main library with VST3 wrapper and editor support
- OwnVST3EditorDemo - Example application demonstrating usage
- OwnVST3 - Native C++ library (submodule)
If you find this project helpful, consider buying me a coffee!
This project is licensed under the MIT License - see the LICENSE.txt file for details.
- Built on top of the VST3 SDK
- UI rendering powered by Avalonia UI
For issues, questions, or contributions, please open an issue on GitHub.
