Questions tagged [vst]

VST (Virtual Studio Technology) is a standard created by Steinberg for audio plugins, which are libraries that can be loaded by a sequencer for synthesizing or processing audio.

The VST standard was introduced by Steinberg to expand sequencers to include third-party instruments and effects. Although other types of VST plugins exist, these are the two most commonly seen types. Instruments synthesize audio from MIDI events sent to them by the host (like a piano plugin, oscillator-based synthesizer, etc.), and effects process audio from a given input audio signal (like a distortion effect, equalizer, etc.).

VST plugins are dynamic libraries which communicate through the VST protocol with a host. On Windows, VST's are regular DLL's, and on Mac OS X they are dynamic library bundles with a .vst extension.

Programming VST effects is a great way to get started doing DSP work, since all of the complicated audio subsystem is handled by your sequencer, giving the programmer a simple entry point to where they can process data. Audio in VST plugins is floating-point and block-based, meaning that the plugin uses arrays of floating-point numbers, one for each channel.

Although VST's can be written in many languages, C++ is most commonly used, since performance is very important when processing realtime audio.

Unfortunately, the VST SDK is not exactly open-source, though it is free to download. To develop VST plugins (or hosts), one needs to create a developer account at Steinberg's website, and download the VST SDK from them directly. Redistribution of the VST SDK source code is not permitted under Steinberg's license.

There are two major branches of VST plugins commonly found these days: 2.4-compatible plugins, and VST3 plugins. The majority of plugins found in the market today use the 2.4 SDK, as the version 3 SDK is not backwards compatible with 2.4.

230 questions
121
votes
5 answers

How are VST Plugins made?

I would like to make (or learn how to make) VST plugins. Is there a special SDK for this? how does one yield a .vst instead of a .exe? Also, if one is looking to make Audio Units for Logic Pro, how is that done? Thanks
jmasterx
  • 52,639
  • 96
  • 311
  • 557
54
votes
4 answers

Midi Timing Issues with Delphi ASIO VST and MiniHost

I'm coming from a background of using MSC* MidiSequencer for a Delphi XE2 project and have been playing with DelphiASIOVST this weekend on the off chance the MIDI may be stable enough to use as my core MIDI engine while also allowing me to support…
Charles R. Thompson
  • 683
  • 1
  • 6
  • 10
25
votes
0 answers

VST3 SDK: Problematic construction of std::string member in ClassInfo object causes program to crash

The Problem: I'm trying to use the VST Hosting utilities included in the SDK to load a plugin. The code is as shown: #include "vst/v3/Vst3CommonIncludes.h" int main() { std::string vst3_module_path = R"(C:\Program Files\Common…
Yuwei Xu
  • 433
  • 3
  • 5
19
votes
3 answers

Qt GUI environment in a DLL (VST Plugin)

I would like to use the Qt GUI library as the user interface for a VST plugin. A VST plugin is a DLL on windows. A host application calls various functions on the DLL, including things like openGUI(). I want to know how to use Qt GUI from a DLL; I…
oggmonster
  • 4,672
  • 10
  • 51
  • 73
14
votes
1 answer

How would I go about programmatically interacting with VST(i) Plugins to synthesize audio?

Take, for example, the VSTi Triforce, by Tweakbench. When loaded up in any VST host on the market, it allows the host to send a (presumably MIDI) signal to the VSTi. The VSTi will then process that signal and output synthesized audio as created by…
Justin L.
  • 13,510
  • 5
  • 48
  • 83
12
votes
2 answers

How to strip Objective-C symbols from OS X binary?

OK, I know there have been other posts about how you can't actually strip Objective-C symbols from an OS X binary because they're necessary for Obj-C to work at all, but my case is a bit different. I have a single binary which is a bundle. It is…
jimw
  • 121
  • 3
11
votes
5 answers

How to call audio plugins from within Python?

I've noticed that some open source DAWs such as Ardour and Audacity are able to access audio plugins (e.g. VST, AU) that the user has installed on their system. This makes me think that "there ought to be a way" to do this in general. Specifically,…
sh37211
  • 1,411
  • 1
  • 17
  • 39
10
votes
3 answers

How do I scan/enumerate vst plugin dlls?

I'm trying to build a small program that hosts vst effects and I would like to scan a folder for plugin dlls. I know how to find all the dlls but now I have the following questions: What is the best way to determine if a given dll is a vst…
Roald
  • 1,722
  • 11
  • 21
9
votes
3 answers

Has anybody out there used Delphi for programming VST's?

Has anybody out there used Delphi for programming a Virtual Studio Technology plugin?
Logan
9
votes
2 answers

Build a minimal VST3 host in C++

I'm struggling to find a basic example on how to set up a minimal plugin host with VST 3.x SDK. The official documentation is absolutely criptic and brief, I can't get anywhere. I would like to: understand the minimal setup: required headers,…
Ignorant
  • 2,411
  • 4
  • 31
  • 48
9
votes
3 answers

Hosting a VST/DX instrument in C#/C++?

I'm trying to get a read on the effort level involved in building a barebones virtual instrument host in C++ or C# but I haven't been able to get any hard information. Does anybody know any good starter apps, tutorials, helper libraries for this…
user2189331
8
votes
4 answers

How to build a VST-plugin with OSX/XCode

I want to build a VST plugin on OSX. I can compile it just fine, but the VST-host (Cubase Essential 4) always crashes when trying to load it or reports that the plugin is somehow broken. Probably, this is because I am missing some ingredients to the…
bastibe
  • 16,551
  • 28
  • 95
  • 126
8
votes
4 answers

Lowpass FIR Filter with FFT Convolution - Overlap add, why and how

First off, sorry for not posting the code here. For some reason all the code got messed upp when i tried to enter the code i had onto this page, and it probably was too much anyhow to post, to be acceptable. Here is my code:…
Hiam
  • 303
  • 1
  • 4
  • 12
7
votes
1 answer

Is it possible to compile a VST on linux?

For a class project I'm attempting to write a VST plugin backed by CUDA. My current CUDA workflow is on a Linux box, so I'd prefer to compile and link there. According to Wikipedia, this should be possible (I couldn't find any Steinberg…
Robert Karl
  • 7,598
  • 6
  • 38
  • 61
7
votes
3 answers

programmatically get BPM of a wave or MP3 from .Net

I have a project with a requirement to get the BPM of a wave or MP3 file programmatically using .Net (VB.Net or C#). Does anyone know of a binary or library for this or have a code snippet to steer me in the right direction?
Robert
  • 81
  • 1
  • 5
1
2 3
15 16