Skip to main content

flutter_vst3 0.2.0 copy "flutter_vst3: ^0.2.0" to clipboard
flutter_vst3: ^0.2.0 copied to clipboard

Flutter/Dart framework for building VST® 3 plugins with Flutter UI and pure Dart audio processing. Provides the interface between Dart audio processing code and the Steinberg VST® 3 SDK C++ infrastructure.

flutter_vst3 #

Flutter/Dart framework for building VST® 3 plugins with Flutter UI and pure Dart audio processing.

VST Compatible

VST® is a registered trademark of Steinberg Media Technologies GmbH, registered in Europe and other countries.

Overview #

flutter_vst3 is a complete framework that enables you to build professional VST® 3 audio plugins using Flutter for the UI and Dart for real-time audio processing. The framework auto-generates all C++ VST® 3 boilerplate code - you write only Dart and Flutter.

For complete architecture documentation and examples, see the main project README.

Features #

  • ✅ Flutter UI - Build beautiful, reactive plugin interfaces
  • ✅ Pure Dart DSP - Write audio processing in familiar Dart syntax
  • ✅ Auto-Generated C++ - Never write VST® 3 boilerplate
  • ✅ Native Performance - Compiles to machine code, no runtime
  • ✅ 3-Way Parameter Binding - DAW ↔ Flutter UI ↔ Parameters stay in sync
  • ✅ Cross-Platform - macOS, Windows, Linux support

Quick Start #

📖 Complete Step-by-Step Plugin Creation Guide

The guide covers everything you need to build your first VST® 3 plugin:

  • Project setup and dependencies
  • Parameter definition with auto-generated C++
  • Building and testing your plugin
  • Installation to system VST® 3 directory

API Reference #

DSP worker #

DSP runs in a compiled Dart worker process, one per plugin instance. Implement Vst3WorkerProcessor for your DSP and pass it to runVst3SharedMemoryProcessor from a headless <plugin>_processor_exe.dart entry point; the build compiles that file with dart compile exe and the VST3 module exchanges audio and parameters with it over shared memory:

import 'dart:typed_data';
import 'package:flutter_vst3/flutter_vst3.dart';

final class MyProcessor implements Vst3WorkerProcessor {
  @override
  void initialize(double sampleRate, int maxBlockSize) {}

  @override
  void setParameter(int paramId, double value) {}

  @override
  void processStereo(Float32List inputL, Float32List inputR,
      Float32List outputL, Float32List outputR) {}

  @override
  void reset() {}

  @override
  void dispose() {}
}

void main(List<String> args) {
  runVst3SharedMemoryProcessor(args: args, processor: MyProcessor());
}

See create_plugin_guide.md and the example plugins in vsts/.

Examples #

See the complete example plugins in the main repository:

Requirements #

  • Dart SDK 3.0+
  • Flutter SDK 3.0+
  • CMake 3.20+
  • Steinberg VST® 3 SDK
  • C++17 compiler
  • Linux: X11 backend required for VST3 plugin GUI (launch with GDK_BACKEND=x11 flutter run)

Linux editor entrypoint #

On Linux the plugin's main is the Flutter UI entrypoint because the public Flutter Linux API cannot select a named entrypoint. main and flutterEntrypoint must start the same UI. Plugins without flutterEntrypoint use native sliders.

This framework is not affiliated with Steinberg Media Technologies GmbH. VST® is a trademark of Steinberg Media Technologies GmbH.

Users must comply with the Steinberg VST® 3 SDK License Agreement when distributing VST® 3 plugins. See: https://steinbergmedia.github.io/vst3_dev_portal/pages/VST+3+Licensing/Index.html

License #

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.

7
likes
150
points
29
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Flutter/Dart framework for building VST® 3 plugins with Flutter UI and pure Dart audio processing. Provides the interface between Dart audio processing code and the Steinberg VST® 3 SDK C++ infrastructure.

Repository (GitHub)
View/report issues
Contributing

Topics

#vst3 #audio #plugins #flutter #music

License

BSD-3-Clause (license)

Dependencies

ffi, flutter

More

Packages that depend on flutter_vst3