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

How to get audio from generator/instrument VST with VST.NET and NAudio?

I'm trying to write a simple VST host in C# using NAudio and VST.NET. I don't know how to get output audio buffers with generator/instrument VST and pass it to NAudio. Has someone did something like that and can share his/her experience with me?
0
votes
0 answers

Binding a C++ virtual class for use in Python

I want to know a way of consuming the VST3 SDK from Python. In its essence, the VST3 architecture mimics COM. My end goal is using the GetPluginFactory exported by a VST3 plugin in Python. This function returns a pointer to a C++ virtual class. I am…
demberto
  • 489
  • 5
  • 15
0
votes
1 answer

How to add an AudioSource based class to a MixerAudioSource

I’ve created a class for managing the audio of my synth: class midiSource : public juce::AudioSource I would like to add it to my mixer. However, the MixerAudioSource class accepts only AudioSource as input. How can I pass midiSource as an input…
Balthus89
  • 11
  • 3
0
votes
0 answers

Possible? Internet connected VST audio plugin placed on midi/audio tracks on DAWs, e.g. Ableton, Logic, etc

Is this possible to create? Requirements VST can send messages to a webserver VST can receive messages from a webserver VST can automatically receive/send messages to/from the webserver, e.g. in the background, without the user having to open the…
steak2002
  • 177
  • 2
  • 11
0
votes
0 answers

Working with unmanaged 32/64 bit DLLs in a .NET 5 WinForms application

My WinForms application will load the unmanaged DLL "stub", and retrieve information. The stub DLLs themselves load unmanaged DLLs "source" to retrieve the information. The 32-bit stub will load 32-bit sources and 64-bit stub will load 64-bit…
demberto
  • 489
  • 5
  • 15
0
votes
2 answers

DAW Audio Plugin Development for Non-Destructive Operations (e.g. Cut, Fade)

I want to create a plugin for DAWs such as Adobe Audition or Pro Tools, etc. that would do something like this: Download a text file (just into the memory would be enough) Apply the commands in this file (mostly cut and potentially cross-fade…
drakon
  • 125
  • 9
0
votes
0 answers

How do I fix this Convolution Algorithm? (C++)

What can I do to fix this algorithm? I'm using iPlug 2 to make a VST plugin that uses convolution. Right now it outputs very loud and high-pitched frequencies. My goal is to take in 100 samples at a time (and while that's happening the output is…
aaaa123
  • 1
  • 1
0
votes
1 answer

C++ Refactor an inline Double for faster code PolyBelp

Have this inline double code from a PolyBlep oscillator for making a synthesizer. I was wondering if I could make it more efficient maybe using intrinsic replacements or just refactoring the code so that the compiler can automatically apply…
Davdson
  • 21
  • 6
0
votes
1 answer

What do I need to include to avoid an Unresolved external symbol error trying to export a VST3?

I'm currently attempting to compile a VST3 plugin (or any C++ code, for that matter) for the first time, mainly just following Steinberg's own tutorial for all things except the actual sound processing. Attempting to compile throws an "unresolved…
Itisdud
  • 41
  • 7
0
votes
0 answers

Trying to route audio from Musescore to Ableton Live 10 via JACK audio connection?

My goal is to be able to write sheet music in Musescore and then have the audio output of the playback routed to Ableton Live. I've tried using loopMIDI audio and LoopBe1 as virtual midi cables. I have the Jack audio driver set in Ableton's audio…
0
votes
2 answers

Read specific parts of ASCII file in C#

I am trying to make a FXB file previewer (VST preset banks for those who don't know) for Sylenth1 banks. I have encoded the FXB as an ASCII string and had it print to the console. The preset names show up fine. My issue is that the parameters for…
na-no.
  • 344
  • 1
  • 3
  • 11
0
votes
0 answers

How do I use VST.Net to load one plugin and use it with multi connection

I had a vstplugin to remove noise of sound. I made connection it with input device and output device and it worked fine. Load vst function public static void LoadPlugin(string path, out VstPluginContext plugin) { var hcs = new…
0
votes
0 answers

How do I set sample rate and buffer size for VST plugin like vsthost config in VST.NET 2 Host

I have VST2 plugin and when I add it into vsthost, It worked with Bypass equals true, when I set Bypass equals false, It only worked with Sample Rate = 48000hz and Buffer = 4800 samples (10b/s). Below image: vsthost image So, I want to set that…
0
votes
2 answers

Using Midi Library To Parse Events And Store In Vector C++

I'm a PHP programmer whose decided to take the plunge into C++ by developing a simple alternative to MissWatson that would allow me to, via the command line with PHP, process a MIDI file through a VST. I started with the Steinberg VST SDK and I've…
grandcameo
  • 185
  • 2
  • 11
0
votes
0 answers

Why my Butterworth filter make noise in VST3?

I am now trying to implement the 2nd order Butterworth LPF in VST3. I have tried the following methods. calculated the coefficients ( such as b0, b1, a1) on my own and implemented it the normal way. designed the same filter in faust and then…