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
0
votes
1 answer

making work the Oouras's FFT

i'm trying to make a simple convolution of two signals. One is a signal (music for example) and the other one is an IR (simple delay like this scheme: IR[0] = 1.0 IR[1->511] = 0 IR[512] = 0.5 IR[513->1023] = 0; so it should make a small echo. I've…
IonOne
  • 385
  • 4
  • 15
0
votes
1 answer

VSTGUI: Conventions for editor::open and editor::close

While writing a new vst-plugin using VSTGUI I'm really struggling with how to use the library, and most progress is made from guessing and debugging after (because there really is no documentation besides the million lines and ygrabit, which states…
Shaggi
  • 1,121
  • 1
  • 9
  • 31
0
votes
1 answer

How do I implement VST plugins in FMOD Ex?

The title says it all. I'm trying to implement VST plugins using FMOD Ex. The only guides I've been able to find have been for FMOD Studio, but not the actual coding implementation. I have the C++ documentation for FMOD, so I'm able to play sounds…
0
votes
0 answers

How do turn my mac touchpad into a midi controller?

I want to write a custom script/program that would allow me to send the signal from my mac trackpad to midi. I dont even know where to start though, im a c# programmer so not to easy for me :-( Could someone point me in the right…
Exitos
  • 29,230
  • 38
  • 123
  • 178
0
votes
2 answers

Backward foramatting values in VST GUI

A new problem to solve. In my my setParameter() i use to set values up to "real values". I'm formatting them with value * (max - min) + min e.g.: value of 1.0 == 20000Hz or value of 0.0 == -30dB Now I have the problem, that VSTGUI seems to accept…
0
votes
1 answer

C++ Compiler cannot find files without absolute path in Steinberg VST SDK files

I'm trying to compile a simple program that's already been written included in the Steinberg VST SDK. The issue I'm having is my compiler can't find the file unless it has an absolute path. For some reason, the code is written in such a way that my…
JVE999
  • 3,327
  • 10
  • 54
  • 89
0
votes
0 answers

VSTi envelope implementation

For a university assignment I have to write a simple VSTi additive synth. I have most of the work done, I just cannot get my ADSR envelope to do anything. I think (and am definitely not sure) that the time variable, and/or the logic that decides the…
0
votes
1 answer

VST GUI Faders/Sliders not updating

I have a university assignment that requires me to build a simple additive synth using VST SDK 2.4. So far I have the partials being summed and an envelope. I think the envelope works but am not sure as it is pulling its values based on the…
0
votes
1 answer

Juce vst synth: cannot instantiate abstract class

I've generated source and project files for simple vst synth in Introjucer. The code compiles with one weird error: error C2259: 'SimpleSynthAudioProcessor' : cannot instantiate abstract class The compiler thinks that SimpleSynthAudioProcessor is an…
Piotr Joniec
  • 157
  • 1
  • 2
  • 13
0
votes
1 answer

sqrt() VST-Plugin MATH - Loss gain by sqrt()?

is it possible that a calculation with "sqrt()" has affect to the ouput gain? Here's is my Code: (MS Tool with Panorama adjustment) //Code...precalculations above (*out1++) = (mid+side) * dGain * sqrt(dOne - dPan); //sqrt for pan law (*out2++) =…
0
votes
1 answer

How can you compile VST 3 or Audio Units with the command line?

I would like to make an audio plugin, as either an Audio Unit or a VST 3. However, compiling plugins under both frameworks seems to be a very heavyweight process for which only XCode or Visual Studio project files are provided as examples. Is there…
Vortico
  • 2,610
  • 2
  • 32
  • 49
0
votes
2 answers

Getting full audio frequency spectrum with Tobybears VST Template?

I'm trying to make a simple frequency analyzer VST plugin using Tobybears VST Template for Delphi. The problem I'm having is that I cant seem to find any documentation or information about how to get something like an array of values that represent…
xaid
  • 740
  • 6
  • 18
0
votes
1 answer

Passing parameters from processor to controller; VST 3.5

I'm new here so first of all: "Hello everybody!!" I have a sincere problem with passing parameter changes from the process() to the the controller via data.outputParameterChanges. Take a look at the following code (kDataParamId is an ID of a…
ChrisE
  • 1
  • 1
-1
votes
1 answer

How do I make a function with if in Kontakt?

I make a function that contains if in NI Kontakt: on init message(Add(1,2)) end on function Add(x,y) -> output if x > 0 output := x + y else output := 0 end if end function And I get the error message: The…
mr_blond
  • 1,586
  • 2
  • 20
  • 52
-1
votes
1 answer

How can I have one singleton per dylib?

I'm trying to make a VST plugin (a dynamic library for audio software), with a singleton in it (using a static C++ member). The problem is, when I try to load more than one instance of the plugin (i.e. 2 copies of the dylib) the static members get…
mazbox
  • 613
  • 1
  • 5
  • 7
1 2 3
15
16