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
1
vote
2 answers

Simple VST Synth Changes Pitch at Random Intervals

I'm learning how to use the Steinberg VST 2.4 SDK (or rather, the 2.x portion that comes with the 3.6.0 version). I've created a simple synthesizer designed to play a sine wave at a constant frequency during its lifetime. Here is the code for this…
NmdMystery
  • 2,778
  • 3
  • 32
  • 60
1
vote
0 answers

JVST UnsatisfiedLinkError

I am trying to run an example from the JVST library, and I get: Exception in thread "main" java.lang.UnsatisfiedLinkError: no jvst-0.0.1 in java.library.path or on the classpath I made sure that jvst-0.0.1.dll is in the same directory as the…
1
vote
1 answer

Writing time sequenced to Android AudioTrack

I am currently writing some code for a sample sequencer in Android. I am using the AudioTrack class. I have been told the only proper way to have accurate timing is to use the timing of the AudioTrack. EG I know that if I write a buffer of X samples…
user3083522
  • 211
  • 3
  • 14
1
vote
1 answer

VSTGUI 4.0 - error C2664: 'std::make_pair'

I'm trying to make a very simple gui for a vst plugin using vstgui 4.0. I'm using Visual Studio 2012 Express. When I build it, I'm getting an error from one of the sdk files. The error is: error C2664: 'std::make_pair' : cannot convert parameter 1…
Rob Allsopp
  • 3,309
  • 5
  • 34
  • 53
1
vote
0 answers

Only one module for 2 Mac plugin bundles (AU, VST) gets loaded

my audio plugins are bundles with binaries containing exports for all supported formats, say AU and VST. I copy the exact same bundle (just different extension) to /Library/Audio/Plug-Ins/Components for AU and /Library/Audio/Plug-Ins/VST for…
Vojtěch Melda Meluzín
  • 1,117
  • 3
  • 11
  • 22
1
vote
1 answer

VST SDK 2.4 Instrument - processReplace and processEvents

Example: If I want to play a sound in my soon to be homemade VST instrument, and this note in the sequencer is 15000 samples long and the note is set to ON by the processEvents, the processReplace function starts to play the sound from 0 to…
Magnus
  • 379
  • 1
  • 15
1
vote
1 answer

Multiple instances of the same VST instrument in the host plays the same MIDI sounds

I've made a VST2.4 instrument in C++ and everything is working fine, but if I load my instrument in several channels in the host they all play each others midi files. If I copy my dll and change the name of the copy of the dll, then I can load two…
Magnus
  • 379
  • 1
  • 15
1
vote
1 answer

SetFocus to parent window, then back to child window

I'm trying to implement a VST using VSTGUI 4.0. My DAW uses WM_KEYDOWN and WM_KEYUP messages to send midi notes based on keyboard presses, so that you can play VST's with the keyboard. The problem is, that VSTGUI does this when it receives a…
1
vote
1 answer

VST on XCode 4.6 - Plugin gives high output directly when loaded

I'm programming a Steinberg VST-Plugin in XCode 4.6. I've already implemented a Highpass-filter which works correctly. Now I'm trying to do some nonlinear distortion with a quadratic function. After I implemented the few lines below and loaded the…
fzpf
  • 11
  • 2
1
vote
2 answers

Filter Example for VSTSDK2.4 Source

Is there anywhere an existing example how to implement a dsp filter for exactly the vstsdk2.4? I mean something like the source examples included in vstsdk (.h and .cpp file) for easy understanding how this will work. Searched very long on web,…
1
vote
1 answer

How to process VUMeter on VSTGUI?

I'm on Xcode 4.5 and can't get a simple VU Meter working on VSTGUI. I found no documentation for how to send values from the process loop to the CVuMeter Function. I opened a thread at KVR a time ago: VUMETER and GUI The code I used, works good,…
1
vote
1 answer

Calculating triangle wave table for a VST

I'm creating a VST for a project, and trying to create an oscillator produces sawtooth, pulse, sin and triangle wave forms. I've looked everywhere and cannot seem to find anything useful (for me), essentially because I'm struggling to understand…
user1132760
1
vote
2 answers

Problems using wxWidgets (wxMSW) within multiple DLL instances

Preface I'm developing VST-plugins which are DLL-based software modules and loaded by VST-supporting host applications. To open a VST-plugin the host applications loads the VST-DLL and calls an appropriate function of the plugin while providing a…
None
1
vote
1 answer

Multiple executables in Xcode4 for debugging plugins?

In Xcode 3.26 I am used to having a variety of plugin hosts supporting various audio plugin formats (VST, Audiounit, VST3 etc) in the "Active Executable" menu. This is very useful for quickly debugging in different hosts. When I bring my projects…
olilarkin
  • 460
  • 6
  • 17
1
vote
2 answers

g++ cdecl calling convention with Steinberg VST SDK

As far as I have researched, I see that GNU C by default uses cdecl for function calls. The VST SDK explicitly defines the calls as cdecl when compiling with GNU C, and it spits out the following error: again.cpp:27:15: warning: multi-character…
Loke
  • 249
  • 1
  • 6
  • 14