Vst Plugin Developer Tutorial

/ Comments off
VST was developed by Steinberg Media Technologies in 1996. It creates a complete, professional studio environment on the PC or Mac.[1]

The VST 3 SDK (Virtual Studio Technology Software Development Kit) is a collection of software development tools included in one package. This allows plug-in developers to create plug-ins in VST 3 format and host developers to load VST 3 plug-ins into a DAW or audio editor. Developer: Waves Factory Type: Plugin OS: Win 64Bit, Mac 64Bit Format: VST, VST3 Tags: Drum Synth, Sample Player, Physical Modelling Waves Factory - SK10 new!! SK10 is a free audio plugin that simulates a sub-kick microphone. In this tutorial series we will be learning how to create audio plugins that run as VST, VST3, AU, RTAS, AAX or as a standalone application. Audio plugins are programs that are loaded into a host software (such as Ableton Live, Logic or REAPER). They process Audio and/or MIDI data and can have a graphical user interface. Grizzly is a drum sampler with built in filters, effects and modulation. It was made for the 2006 KVR Developer Challenge together with Edward 'Cyan' Blake.

Virtual Studio Technology (VST) is an audio plug-in software interface that integrates software synthesizers and effects units into digital audio workstations. VST and similar technologies use digital signal processing to simulate traditional recording studio hardware in software. Thousands of plugins exist, both commercial and freeware, and many audio applications support VST under license from its creator, Steinberg.

Overview[edit]

VST plugins generally run within a digital audio workstation (DAW), to provide additional functionality, though a few standalone plugin hosts exist which support VST. Most VST plugins are either instruments (VSTi) or effects (VSTfx), although other categories exist—for example spectrum analyzers and various meters. VST plugins usually provide a custom graphical user interface that displays controls similar to physical switches and knobs on audio hardware. Some (often older) plugins rely on the host application for their user interface.

VST instruments include software simulation emulations of well-known hardware synthesizers and samplers. These typically emulate the look of the original equipment as well as its sonic characteristics. This lets musicians and recording engineers use virtual versions of devices that otherwise might be difficult and expensive to obtain.

VST instruments receive notes as digital information via MIDI, and output digital audio. Effect plugins receive digital audio and process it through to their outputs. (Some effect plugins also accept MIDI input—for example, MIDI sync to modulate the effect in sync with the tempo). MIDI messages can control both instrument and effect plugin parameters. Most host applications can route the audio output from one VST to the audio input of another VST (chaining). For example, the output of a VST synthesizer can be sent through a VST reverb effect.

History[edit]

Steinberg released the VST interface specification and SDK in 1996. They released it at the same time as Steinberg Cubase 3.02, which included the first VST format plugins: Espacial (a reverb), Choirus (a chorus effect), Stereo Echo, and Auto-Panner.[2]

Steinberg updated the VST interface specification to version 2.0 in 1999. One addition was the ability for plugins to receive MIDI data. This supported the introduction of Virtual Studio Technology Instrument (VSTi) format plugins. VST Instruments can act as standalone software synthesizers, samplers, or drum machines.[3]

Bit

Neon[4] was the first available VST Instrument (included with Cubase VST 3.7). It was a 16-voice, 2-oscillator virtual analog synthesizer.[3]

In 2006, the VST interface specification was updated to version 2.4. Changes included the ability to process audio with 64-bit precision.[5] A free-software replacement was developed for LMMS that would be used later by other free-software projects.[6][7]

Vst Plugins For Fl Studio

VST 3.0 came out in 2008. Changes included:[8]

  • Audio Inputs for VST Instruments
  • Multiple MIDI inputs/outputs
  • Optional SKI (Steinberg Kernel Interface) integration

VST 3.5 came out in February 2011. Changes included note expression, which provides extensive articulation information in individual note events in a polyphonic arrangement. According to Steinberg, this supports performance flexibility and a more natural playing feel.[9]

In October 2011, Celemony Software and PreSonus released Audio Random Access (ARA), an extension for audio plug-in interfaces, such as VST, allowing greater integration between audio plug-ins and DAW software.[10]

In September, 2013, Steinberg discontinued maintenance of the VST 2 SDK. In December, Steinberg stopped distributing the SDK.[11] The higher versions are continued.

VST 3.6.7 came out in March, 2017. It includes a preview version of VST3 for Linux platform, the VST3 part of the SDK gets a dual license: 'Proprietary Steinberg VST3' or the 'Open-source GPLv3'.

As VSTi virtual instrument technology was under development at Steinberg, a platform for virtual instruments using DirectX engine technology was being developed by Cakewalk, famous for its Sonar DAW. However, the format did not gain much acceptance beyond instruments bundled with SONAR. Currently, almost all virtual instruments on the market use Steinberg's VSTi format.[citation needed]

VST plugins[edit]

There are three types of VST plugins:

  • VST instruments generate audio. They are generally either Virtual Synthesizers or Virtual samplers. Many recreate the look and sound of famous hardware synthesizers. Better known VST instruments include Discovery, Nexus, Sylenth1, Massive, Omnisphere, FM8, Absynth, Reaktor, Gladiator, Serum and Vanguard.
  • VST effects process rather than generate audio—and perform the same functions as hardware audio processors such as reverbs and phasers. Other monitoring effects provide visual feedback of the input signal without processing the audio. Most hosts allow multiple effects to be chained. Audio monitoring devices such as spectrum analyzers and meters represent audio characteristics (frequency distribution, amplitude, etc.) visually.
  • VST MIDI effects process MIDI messages (for example, transpose or arpeggiate) and route the MIDI data to other VST instruments or to hardware devices.

VST hosts[edit]

A VST host is a software application or hardware device that VST plugins run under. The host application presents the plugin UIs and routes digital audio and MIDI to and from the plugins.

Software[edit]

Many VST hosts are available. Not all of these support VST 3 plugins.

  • Acon Digital Acoustica
  • Acoustica Mixcraft (VST3)
  • Ardour (open source)
  • Audacity (free and open source, VST support works on Windows, Mac OS X and Linux[12])
  • Digital Performer (version 8 or higher)
  • Psycle (open source)
  • Reason (version 9.5 or higher)
  • vMix (VST3 Only)

Stand-alone dedicated hosts provide a host environment for VST plugins rather than use the plugins to extend their own capabilities. These are usually optimized for live performance use, with features like fast song configuration switching.

VST plugins can be hosted in incompatible environments using a translation layer, or shim. For example, FL Studio only supports its own internal plugin architecture, but an available native 'wrapper' loads VST plugins, among others. FXpansion offers a VST-to-RTAS (Real Time AudioSuite) wrapper that lets VST plugins run in Pro Tools, and a VST-to-Audio Units wrapper lets VST plugins run in Logic Pro.

Hardware[edit]

Hardware VST hosts can load special versions of VST plugins. These units are portable and usable without a computer, though some of them require a computer for editing. Other hardware options include PCI/PCIe cards designed for audio processing, which take over audio processing from the computer's CPU and free up RAM.

Some hardware hosts accept VSTs and VSTis, and either run Windows-compatible music applications like Cubase, Live, Pro Tools, Logic etc., or run their own DAW. Other are VST Hosts only and require a separate DAW application. Origin from Arturia is a hardware DSP system that houses several VST software synthesizers in one machine, like Jupiter 50/80 from Roland. Using appropriate software, audio data can also be sent over a network, so the main host runs on one computer, and VST plugins on peripheral machines.

Standard[edit]

The VST plugin standard is the audio plugin standard created by Steinberg to allow any third-party developers to create VST plugins for use within VST host applications. VST requires separate installations for Windows, Mac OS X and Linux. The majority of VST plugins are available for Windows only due to Apple's competing proprietary Audio Unit technology being used on OS X (Audio Units is a core part of the OS X operating system). The short history of commercial environments for Linux means few developers have targeted this platform.

Presets[edit]

VST plugins often have many controls, and therefore need a method of managing presets (sets of control settings).

Steinberg Cubase VST introduced two file formats for storing presets: an FXP file stores a single preset, while an FXB file stores a whole bank of presets. These formats have since been adopted by many other VST hosts, although Cubase itself switched to a new system of preset management with Cubase 4.0.

Many VST plugins have their own method of loading and saving presets, which do not necessarily use the standard FXP/FXB formats.

Competing technologies[edit]

  • Apple's Audio Units
  • Avid's Avid Audio eXtension
  • Digidesign's Real Time AudioSuite
  • Digidesign's TDM
  • LADSPA, DSSI for Linux
  • LV2, a cross-platform, open source, liberally licensed audio plugin standard
  • Microsoft's DirectX plugin
  • Mark of the Unicorn's Motu Audio System
  • JACK Audio Connection Kit, an open-source sound server allowing flexible audio routing between apps
  • Reason Studios' Rack Extensions

Programming languages[edit]

Steinberg's VST SDK is a set of C++ classes based around an underlying C API. The SDK can be downloaded from their website.

There are several ports available, such as a Delphi version by Frederic Vanmol,[13] a Java version from the jVSTwRapper project at Sourceforge,[14] and two .NET versions – Noise[15] and VST.NET;[16] this open source project also includes a framework that makes creating VST plugins easier and result in more structured code. VST.NET also provides support for writing managed host applications with a managed class that allows loading an unmanaged Plugin. A notable language supporting VST is FAUST, considering that it is especially made for making signal processing plugins, often producing code faster than hand-written C++.

In addition, Steinberg has developed the VST GUI, which is another set of C++ classes, which can be used to build a graphical interface. There are classes for buttons, sliders and displays, etc. Note that these are low-level C++ classes and the look and feel still have to be created by the plugin manufacturer. VST GUI is part of the VST SDK and is also available as a SourceForge project.[17]

Many commercial and open-source VSTs are written using the Juce C++ framework instead of direct calls to the VST SDK because this allows multi-format (VST, Audio Units and Real Time AudioSuite) binaries to be built from a single codebase.

See also[edit]

  • LADSPA and LV2, similar open-source standards.
  • SynthEdit, a VST/VSTi editor.

References[edit]

  1. ^'Our Technologies'. www.steinberg.net.
  2. ^Steinberg Cubase 3 (article), Sound on sound, Jul 1996.
  3. ^ abCubase 3.7 (article), Sound on sound, Sep 1999
  4. ^KVR audio.
  5. ^Steinberg.
  6. ^'vestige.h'.
  7. ^'aeffectx.h'.
  8. ^News, KVR audio.
  9. ^VST 3.5 a milestone in VST development (News), Steinberg, 2011-02-10.
  10. ^'Celemony introduces ARA Audio Random Access - Extension for Plug-in Interfaces'. KVR Audio. Retrieved 2018-06-05.
  11. ^SDK for VST 2 software interface discontinued (News), Steinberg, 2013-12-09
  12. ^VST plug-ins
  13. ^VST, Axi world.
  14. ^jVSTwRapper, Source forge.
  15. ^Noise, Google code.
  16. ^VST.Net, Codeplex.
  17. ^http://sourceforge.net/projects/vstgui
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Virtual_Studio_Technology&oldid=989584235'

Virtual studio technology (VST) is an audio plug-in software interface that integrates a software synthesizer and effects into digital audio workstations. It uses digital signal processing to simulate a traditional recording studio’s hardware in software.

There are both commercial and freeware versions of VST plug-ins available in the market.

Think of VST plugins as an affordable way of making your home studio sound like an expensive commercial studio setup.

  • 10 Best Opto Compressor Plugins (VST,AU,AAX) For Transparent Sound
  • The 15 Best Delay Plugins For Mixing (VST, AU, AAX)
  • The 33 Best WAVES Plugins Of 2020
  • 29 Best Sound Design VST Plugins In 2020
  • 17 Best Free EQ VST Plugins

What are the Best Tools to Develop VST Plug-ins?

I have listed a couple of libraries and frameworks that can handle most of the coding required in developing VST plug-ins.

JUCE Cross-Platform C++ Library

It is supported by the following platforms: OSX, Windows, Linux, iOS, and Android. It is free for non-commercial releases, but the commercial license works our best. It also covers 64bit systems.

Pricing of its commercial license

  • Commercial license for a single product – $521
  • Commercial license for any number of products – $912
  • Upgrade from single-product version to unlimited version – $455
    Despite the cost of the license for retail releases, it is the only library/framework option for a 64bit cross-platform.

Watch this video on how to create an awesome distortion VST/AU Plug-in using C++ / JUCE Framework

SynthEdit

SynthEdit is a framework and a visual circuit design that allows you to create your own synths with only drag & drop without programming. Therefore giving you the flexibility of using your DSP algorithms inside the modules.

At the time of writing this the 64-bit version is in Alpha and its creator Jeff McClintock is working on the ability to exporting it to AU. It’s got a ton of community-produced modules and works great with the 32-bit version. It is soft on your wallet – goes for $70.

Check out this video how SynthEdit work –

FL SynthMaker

FL SynthMaker aka flowstone comes free with FL studio.
It has a straightforward drag-and-drop graphical interface and a wide range of components. You can use it to code modules and DSP in Ruby and comes with loads of examples to get started quickly and its ability to assist you in creating a prototype within a short time is a plus.

How Are VST Plugins Made

You’ll be required to source for information from different sources depending on what your specific goals are.

For beginners, before learning how to code VST plugins, I would advise you to check out these environments:

  • SynthEdit, SynthMaker, Reaktor, Max/MSP, PureData
  • CSound, SuperCollider, Bidule, Usine

These environments allow you to build something unique without having to write low-level code which most people find difficult to master. You’ll be required to know different areas, and if you already have some, then you’ll only require to fill in the gaps.

Check out this video to learn how to build and design your VST Plugin using JUCE

Audio Basics

Understanding sound and its properties are essential before embarking on the development of VST plug-ins. I have outlined a couple of online resources you should go through them:

Fundamentals of Digital Audio Processing

The Scientist and Engineer’s Guide to Audio Signal Processing

Discrete-time systems, sampling theorem, audio DSP, maths, psychoacoustics, sound analysis, and sound modeling.

Signals, Sound, and Sensation by William M. Harmann

The book got an introductory text on psychoacoustics and the readers on a journey through the mathematics of signal and processing from its beginnings.

  • 6 Best Passive EQ VST Plugins of 2020 (SPL, UAD, Waves, IK Multimedia)
  • Top 6 Spectrum Analyzer Plugins Of 2020 – Spectral Analysis Tools
  • 37 Best FREE VST Compressor Plugins For Mixing & Mastering
  • 11 Best Granulizer Plugins 2020 for a Future Sound Design
  • 10 Best Noise Gate Plugins (VST,AU, AAX) of 2020

Programming

Many professional VST plugins available on the market have been written in C++.

There are also several other languages you can use, but each got their pros and cons.

Learning how to develop VST Plug-ins as you’re learning to program isn’t easy. I usually recommend learning how to program before starting to create VST plug-ins.

Vst Plugin Developer Tutorial Download

The Audio Programming Book by Richard Boulanger – This book comes highly recommended for those who want to learn audio plug-ins.

BasicSynth by Daniel Mitchell – This one shows you how to create a custom synthesize in software using C++ programming language.

For more further information about VST development, you should definitely check these resources:

Audio Software (VST Plugin) Development with Practical Application

JUCE framework for VST-plugin development

Maths

You should have some basic engineering mathematics such as linear algebra, complex analysis, among others. Visit this website to get practical algebra lessons: www.purplemath.com.

Digital Signal Processing

You must know what an FFT routine is and why it is useful. Advanced content focusing on audio will usually require you to have at least a conversational level of DSP understanding.

Check out these resources on DSP:

Online and Free:
The Scientist & Engineer’s Guide to Digital Signal Processing

Free Trap Vst Plugins

Print:
Understanding Digital Signal Processing by Richard G. Lyons

Audio Digital Signal Processing

Audio DSP extends on core DSP concepts to include the way digital signal processes apply to digital audio. It covers subjects such as audio filters, delays, and non-linear effects; think compression.

DAFX by Udo Zolzer is a book that comes highly recommended and covers many aspects of audio DSP technique.

Check out these online resources to get more info:

DSP Audio Classics
DSP Audio Algorithm Notes by XOXOS

Below are threads on VST Plug-ins I found from a couple of online discussion forums:

Advice for someone with ZERO experience
Developing a Vst Effect Plugin Where To Start?
What is your development setup?

Books

Vocal Vst Plugins Free Downloads

I have listed some books that can serve as a resource in your pursuit of learning how to make VST plug-ins.

Check them here:

    Designing Audio Effect Plug-Ins in C++: With Digital Audio Signal Processing Theory
  1. Designing Software Synthesizer Plug-Ins in C++: For RackAFX, VST3, and Audio Units

Audio Plug-ins frameworks

Reaper vst plugins go haywire. JUCE

JUCE is a highly recommended and all-encompassing C++ class library for developing cross-platform software. JUCE includes components for VST, AU, and RTAS. You should have at least a basic grasp of JUCE if you intend to use C++ for the development of your VST plug-in.

IPlug

This is a C++ framework for developing audio plug-ins and GUIs.

VST.NET

It allows VST Plugin developers to write Plugins in any .NET language. It also eases the transition between the C++ and .NET world and its framework built on top of the interop layer provide a clear and structured architecture. Feel free to check this Delphi library for creating VST plugins, VST hosts but also ASIO applications:

Delphi ASIO and VST

Free Vst Plugins Download

It also includes the algorithm for filters and dynamics.

Vst Plugin Developer Tutorial Free

  • The 6 Best Ring Modulator VST Plugins in 2020 KiloHearts, Melda
  • 7 Best Vari-Mu Compressor Plugins of 2020 Arturia, Manley, IK Multimedia
  • 7 Best Autopan VST Plugins 2020 CableGuys, Melda, Waves, Soundtoys
  • The 6 Best Frequency Shifter VST Plugins Of 2020

What is the best programming language for the VST plugin?

Vst Plugin Developer Tutorial Pdf

C++ is one of the best programming languages for creating VST Plug-ins, and the reason for this is that C++ has a wide range of frameworks and libraries that work so well in creating VSTs. Read more What’s the Best Way How To learn C++?

The WDL-OL library makes C++ an attractive programming language for VST plugins because it helps you with the following:

Vst Plugin Developer Tutorial For Beginners

  • Creating multiple formats (VST, AudioUnit, VST3, and RTAS) from one codebase: Just choose the plugin format and click “run.”
  • Create both 32-Bit and 64-Bit executables.
  • Run your plugin as a standalone application (Windows or Mac). It means you don’t technically need a DAW to use the plugin.
  • Most GUI controls used in audio plugins (knobs, buttons, visuals).

Understanding what VST Plugins are and their role within the music production industry provides you with the knowledge of identifying the most effective tools for your music production outfit. It makes your music sound like it was produced in a million-dollar music studio.