Skip to content

Releases: ModernMube/OwnVST3

OwnVST3 Version 1.3.0

31 Jan 07:07

Choose a tag to compare

OwnVST3 v1.3.0

🎉 What's New

This release introduces the new GetVersion API function and improves editor view handling for better stability.

✨ New Features

  • Version Query API: Added VST3Plugin_GetVersion() function to the C wrapper API, allowing applications to programmatically retrieve the OwnVST3 library version at runtime
  • Enhanced Editor View Handling: Improved robustness when dealing with plugins that don't provide an editor view

🐛 Bug Fixes

  • Fixed crash when attempting to access editor on plugins without a view interface
  • Corrected GetVersion function signature in the wrapper header

💡 Example Code

Here's how to use the new version query functionality:

#include "ownvst3_wrapper.h"
#include <iostream>

int main() {
    // Get the library version
    const char* version = VST3Plugin_GetVersion();
    std::cout << "OwnVST3 Library Version: " << version << std::endl;
    
    // Create and use plugin instance
    VST3PluginHandle plugin = VST3Plugin_Create();
    
    if (VST3Plugin_LoadPlugin(plugin, "path/to/plugin.vst3")) {
        VST3Plugin_Initialize(plugin, 44100.0, 512);
        
        // Safe editor creation - now handles plugins without views
        void* windowHandle = /* your window handle */;
        if (VST3Plugin_CreateEditor(plugin, windowHandle)) {
            std::cout << "Editor created successfully" << std::endl;
        } else {
            std::cout << "Plugin has no editor view" << std::endl;
        }
        
        // Process audio...
    }
    
    VST3Plugin_Destroy(plugin);
    VST3Plugin_ClearStringCache();
    
    return 0;
}

🔧 Technical Details

API Changes

New Function:

const char* VST3Plugin_GetVersion();

Returns the current version of the OwnVST3 library as a string (e.g., "1.3.0").

Compatibility

  • ✅ Windows (x64)
  • ✅ macOS (x86_64, ARM64)
  • ✅ Linux (x64)

📦 Installation

Using Git

git clone --recurse-submodules https://github.com/ModernMube/OwnVST3.git
cd OwnVST3
mkdir build && cd build
cmake ..
cmake --build .

Requirements

  • C++17 or higher
  • CMake 3.15+
  • VST3 SDK (included as submodule)

🙏 Support

If you find this project helpful, consider supporting the development:

Buy Me A Coffee

OwnVST3 V1.1.0

29 Jan 13:14

Choose a tag to compare

OwnVST3 v1.1.0

A lightweight C++ wrapper for loading and working with VST3 plugins.

Features

  • Cross-platform support - Windows, macOS, and Linux
  • Simple C++ API - Easy-to-use Vst3Plugin class with PIMPL pattern
  • C Wrapper API - C-compatible interface for use with other languages
  • Complete VST3 functionality:
    • Plugin loading and initialization
    • Audio processing (32-bit float)
    • MIDI event handling (Note On/Off, CC)
    • Parameter management (get/set normalized values)
    • Editor UI management with window attachment
    • Plugin type detection (instrument/effect)
    • Plugin metadata (name, vendor, bus info)

Quick Start

#include "ownvst3.h"

OwnVst3Host::Vst3Plugin plugin;
if (plugin.loadPlugin("path/to/plugin.vst3")) {
    plugin.initialize(44100.0, 512);

    OwnVst3Host::AudioBuffer buffer;
    buffer.inputs = inputChannels;
    buffer.outputs = outputChannels;
    buffer.numChannels = 2;
    buffer.numSamples = 512;

    plugin.processAudio(buffer);
}

Requirements

  • C++17 or higher
  • VST3 SDK (included as submodule)

Build

git clone --recurse-submodules https://github.com/ModernMube/OwnVST3.git
cd OwnVST3
mkdir build && cd build
cmake ..
cmake --build .

License

MIT License

OwnVST3 all types of dynamic/shared libraries.

16 Mar 19:11

Choose a tag to compare

v1.0.2 - Stable Release

This release includes the first stable versions of dynamic libraries for different platforms.

Downloads

  • Windows: ownvst3.dll
  • macOS: libownvst3.dylib
  • Linux: libownvst3.so

Changes

  • Core functionality implementation
  • Platform-specific optimizations
  • Performance improvements
  • Minimized dependencies

Usage Guide

Download the dynamic library matching your platform and reference it from your application following the documentation.