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
2
votes
0 answers

Simple VST Host doesn't open Plugin

I am trying to write a VST Host which basically should provide a better interface to control to Plugins at the same time. For that i looked searched for the best way to do it and stumbeld over VST.NET. Now i made this code to just simply open a…
MariusR
  • 1,534
  • 2
  • 11
  • 20
2
votes
2 answers

VST plugin doesn't get recognized on OSX

I'm just trying to get my foot inside the OSX world after recently getting a MAC. Over the past months i haven't successfully built a working VST 2.4 yet. I simply dont get why: the projects in the vst examples work (somewhat) out of the box, but my…
Shaggi
  • 1,121
  • 1
  • 9
  • 31
2
votes
3 answers

Control VST Host Transport from a VST Plug-In

I would like to control the transport (play/stop) of a VST host from within a VST plug-in. It is clear that the sendVstEventsToHost method provides a mean to send commands to the host, but these ones are MIDI, and are said to be attached to the…
moala
  • 5,094
  • 9
  • 45
  • 66
2
votes
2 answers

Remembering VST presets in Max/Msp

I am trying to get Max/MSP to remember vst presets for my patch. Every time I close the patch and re-open, the vst goes to default. The vst I am trying to use is called alchemy (free version). Does anyone know how to get max/msp to remember vst…
2
votes
3 answers

How to create pointer to pointer array same as VST audio buffer?

In the VST spec, a buffer of multichannel audio data is passed around..... MyClass::ProcessDoubleReplacing(double **inputs, double **outputs, int frames) { //and accessed like this... outputs[channel][sample] = inputs[channel][sample] } I…
PaulR
  • 706
  • 9
  • 27
2
votes
1 answer

Explanation of a this Vst Synth example

I am having trouble understanding a particular area of code in the Steinberg VST Synth example In this function: void VstXSynth::processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames) { float* out1 = outputs[0]; float*…
Dabloons
  • 1,462
  • 2
  • 17
  • 30
2
votes
1 answer

VST2.x GUI How does it work?

Although I know how to create a VST plugin today, I still don't understand the GUI part of it. I've been playing around with Steinbergs samples and what I can see is that they are using some default sliders in the exapmles, but am I supposed to use…
Magnus
  • 379
  • 1
  • 15
2
votes
1 answer

Downsampling 96 to 44.1 kHz audio fast (realtime) in a VST instrument

I'm trying to make a fast downsampling function in my VSTi (c++), but I'm having some hard time to get it to work. This is what I have and what I'm trying to do. First off is the low-pass filter.. void resetFilter() { c = 1.0 /…
Magnus
  • 379
  • 1
  • 15
2
votes
1 answer

How can I play a synth sound in a C++ app on OSX?

I want to play instrumental sounds in my app. The duration of the sounds is flexible so MIDI seems the best solution. I am using Open Framework for now. Using Audio Units, I managed to process an input sound, not to play through an instrument. I…
BaptisteB
  • 1,168
  • 2
  • 9
  • 16
2
votes
0 answers

VST unable to be loaded after links with Google Breakpad

I'm trying to build a 32-bit VST plugin on OSX and link it with Google Breakpad. Breakpad.framework can be built by following official guide https://code.google.com/p/google-breakpad/wiki/MacBreakpadStarterGuide But the VST is no longer able to be…
nono_liang
  • 21
  • 2
2
votes
1 answer

WinAPI window messages appear to get stolen by plugin - how to fix?

First off, some links (for those who want to try things out by themselves): I'm loading the Proteus VX VST plugin into my host, OpenMPT. The plugin works just fine, however it seems to steal some window messages so that clicking on the menus that…
j_schultz
  • 649
  • 13
  • 29
2
votes
2 answers

Steinberg's VST SDK Qs [getting number of frames]

I've been searching all over the internet to get this but no vain. I am working with Steinberg's VST SDK in C++. I am developing an effect plugin and I need to know the length of the sound file, meaning the number of frames within it. So I know the…
2
votes
1 answer

Host won't load VST plugin effect

I've been trying to write a simple VST plugin. It doesn't need any fancy interfaces, just a few controls. But I don't know where to start. Begin huge wall of text. I've been researching religiously around the net for information and guides on this…
Shaggi
  • 1,121
  • 1
  • 9
  • 31
2
votes
1 answer

VSTGUI 4.0.1 XCODE 4.5 and MacOSX 10.8 Troubles

That's the first time I use stack overflow 'cause I got a problem develop VST Plugins with GUI on MacOSX 10.8. I'm new to mac development and I'm not shure why I get the following errors due compiling and linking my product using VSTGUI…
2
votes
2 answers

Tutorial on how to host VST plugins using JUCE?

I would like to write some code to host VST plugins in my C++ application. It looks like the JUCE library may be helpful for this. Does anyone know where I can find a tutorial on how to host and connect together VST plugins in JUCE? I've built the…
Richard Shepherd
  • 1,300
  • 17
  • 20