How To Create VST Plugins? Information for those just getting started
-
very angry mobster very angry mobster https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=11047
- KVRian
- Topic Starter
- 611 posts since 15 Dec, 2003 from Melbourne, Australia
There has been a few "how do I..." threads lately. Perhaps a sticky would be useful?
The text below contains additions and edits from several people. Ideally it would be a wiki and publicly editable. Please suggest additions/edits/updates etc.
***
Learn How to Make VST Plugins.
Learning how to make VST plugins from scratch isn't easy. Making anything non-trivial requires knowledge and skills in several areas. Additionally, there isn't a single "How To..." guide that will take you through step by step. You'll need to piece together information from different sources depending on your own specific goals.
Before learning how to code VST plugins you should check out:
- SynthEdit
- SynthMaker
- Reaktor
- Max/MSP
- PureData
- CSound
- SuperCollider
- Bidule
- Usine
These environments allow you to build something unique without the pain of writing low-level code. If you absolutely need to build a VST plugin, these environments may be useful for prototyping.
Depending on exactly what you want to do, you will require knowledge in a few different areas. If you're lucky you'll already have studied some of this and only need to fill in gaps. If not, you've a long road ahead. Don't get overly discouraged, a surprising amount can be achieved with a limited understanding of the basic principles.
Audio Basics
Before building a VST plugin it would be useful to have an understanding of exactly what sound is and how sound is represented in the digital domain.
Introduction to Sound Processing by Davide Rocchesso [PDF] Discrete time systems, sampling theorem, audio DSP, maths, psychoacoustics, sound analysis and sound modelling.
Signals, Sound, and Sensation by William M. Harmann "Designed to follow an introductory text on psychoacoustics, this book takes readers through the mathematics of signal processing from its beginnings in the Fourier transform to advanced topics in modulation, dispersion relations, minimum phase systems, sampled data, and nonlinear distortion. "
Programming
Most professional VST plugins are written in C++. Alternative languages can be used. They each have pros and cons. If you are unsure what language to use, C++ is probably the safest bet. If you don't already know how to program, go to your local bookstore, browse through all the programming books and choose the one that makes the most sense. Consider enrolling in a class.
Be aware, learning how to program isn't easy. Learning how to develop VST plugins at the same time will make the task more difficult again. Most people would recommend learning how to program before developing VST plugins.
Some understanding of basic computer science stuff (especially algorithmic complexity, maybe state machines too) is probably useful as well... though that isn't very hard.
The Audio Programming Book by Richard Boulanger might be useful. Its one of the few books which covers audio plugin formats.
BasicSynth by Daniel Mitchell "BasicSynth [...] shows you how to create a custom synthesizer in software using the C++ programming language."
For many more programming resources see What are the most important parts of C++ for coding plug-ins?
Recommend a book for learning C++
Maths
Basic engineering math (linear algebra, complex analysis, etc) should be more or less sufficient (ie pick any university textbook, it'll have more or less the right stuff); even less if you're not planning on doing any filter design or other "fancy" stuff. Mostly you just have to be fairly confident with your math, since most of the time "try random things" doesn't exactly work very well (as if we didn't do it anyway) when it comes to math.
www.PurpleMath.com Practical algebra lessons.
Digital Signal Processing
You will benefit from some digital signal processing (DSP) knowledge. You can probably get by without knowing how to write your own FFT routines, but you should know what a FFT is and why it is useful.
Much of what is covered in introductory DSP textbooks will not be immediately useful for developing plugins, but advanced texts focusing on audio usually require at least a conversational level DSP understanding.
Online and Free:
The Scientist & Engineer's Guide to Digital Signal Processing
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 includes subjects such as audio filters, delays, non-linear effects (think compression) and much more.
DAFX by Udo Zolzer is a good introductory textbook covering many audio DSP techniques. It sometimes reads as a summary. For more detailed material you may need to seek specific papers. DAFX has many references listed and provides a good starting point for exploring.
The Art of VA Filter Design Zero-delay feedback filter design. No preliminary filter design knowledge required.
DSP Audio Classics
DSP Audio Algorithm Notes by XOXOS
Previous Threads Asking a Similar Question
Adivce for someone with ZERO experience
How do I go about learing to develop synths?
Developing a Vst Effect Plugin Where To Start?
What is your development setup?
Any more threads that should be linked here?
Books...
The books listed here aren't the only books on these topics. They are listed here as a starting point for your own research. Please look at alternatives before purchasing anything.
Audio Plugin Frameworks
JUCE is an all-encompassing C++ class library for developing cross-platform software. JUCE includes components for VST, AU and RTAS. JUCE is often highly recommended. Definitely check it out if you use C++.
IPlug is a C++ framework for developing audio plugins and GUIs.
Enhanced version of Cockos' IPlug A simple-to-use C++ framework for developing cross platform audio plugins and targeting multiple plugin APIs with the same code. VST / VST3 / Audiounit / RTAS / AAX (Native) formats supported.
VST.NET allows VST Plugin developers to write Plugins in any .NET language. It makes the transition between the C++ and .NET world smooth and easy. The Framework built on top of the interop layer provides a clear and structured architecture accelerating development considerably.
Delphi ASIO and VST A Delphi library for creating VST plugins, VST hosts and ASIO applications. Includes algorithms for filters and dynamics.
The text below contains additions and edits from several people. Ideally it would be a wiki and publicly editable. Please suggest additions/edits/updates etc.
***
Learn How to Make VST Plugins.
Learning how to make VST plugins from scratch isn't easy. Making anything non-trivial requires knowledge and skills in several areas. Additionally, there isn't a single "How To..." guide that will take you through step by step. You'll need to piece together information from different sources depending on your own specific goals.
Before learning how to code VST plugins you should check out:
- SynthEdit
- SynthMaker
- Reaktor
- Max/MSP
- PureData
- CSound
- SuperCollider
- Bidule
- Usine
These environments allow you to build something unique without the pain of writing low-level code. If you absolutely need to build a VST plugin, these environments may be useful for prototyping.
Depending on exactly what you want to do, you will require knowledge in a few different areas. If you're lucky you'll already have studied some of this and only need to fill in gaps. If not, you've a long road ahead. Don't get overly discouraged, a surprising amount can be achieved with a limited understanding of the basic principles.
Audio Basics
Before building a VST plugin it would be useful to have an understanding of exactly what sound is and how sound is represented in the digital domain.
Introduction to Sound Processing by Davide Rocchesso [PDF] Discrete time systems, sampling theorem, audio DSP, maths, psychoacoustics, sound analysis and sound modelling.
Signals, Sound, and Sensation by William M. Harmann "Designed to follow an introductory text on psychoacoustics, this book takes readers through the mathematics of signal processing from its beginnings in the Fourier transform to advanced topics in modulation, dispersion relations, minimum phase systems, sampled data, and nonlinear distortion. "
Programming
Most professional VST plugins are written in C++. Alternative languages can be used. They each have pros and cons. If you are unsure what language to use, C++ is probably the safest bet. If you don't already know how to program, go to your local bookstore, browse through all the programming books and choose the one that makes the most sense. Consider enrolling in a class.
Be aware, learning how to program isn't easy. Learning how to develop VST plugins at the same time will make the task more difficult again. Most people would recommend learning how to program before developing VST plugins.
Some understanding of basic computer science stuff (especially algorithmic complexity, maybe state machines too) is probably useful as well... though that isn't very hard.
The Audio Programming Book by Richard Boulanger might be useful. Its one of the few books which covers audio plugin formats.
BasicSynth by Daniel Mitchell "BasicSynth [...] shows you how to create a custom synthesizer in software using the C++ programming language."
For many more programming resources see What are the most important parts of C++ for coding plug-ins?
Recommend a book for learning C++
Maths
Basic engineering math (linear algebra, complex analysis, etc) should be more or less sufficient (ie pick any university textbook, it'll have more or less the right stuff); even less if you're not planning on doing any filter design or other "fancy" stuff. Mostly you just have to be fairly confident with your math, since most of the time "try random things" doesn't exactly work very well (as if we didn't do it anyway) when it comes to math.
www.PurpleMath.com Practical algebra lessons.
Digital Signal Processing
You will benefit from some digital signal processing (DSP) knowledge. You can probably get by without knowing how to write your own FFT routines, but you should know what a FFT is and why it is useful.
Much of what is covered in introductory DSP textbooks will not be immediately useful for developing plugins, but advanced texts focusing on audio usually require at least a conversational level DSP understanding.
Online and Free:
The Scientist & Engineer's Guide to Digital Signal Processing
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 includes subjects such as audio filters, delays, non-linear effects (think compression) and much more.
DAFX by Udo Zolzer is a good introductory textbook covering many audio DSP techniques. It sometimes reads as a summary. For more detailed material you may need to seek specific papers. DAFX has many references listed and provides a good starting point for exploring.
The Art of VA Filter Design Zero-delay feedback filter design. No preliminary filter design knowledge required.
DSP Audio Classics
DSP Audio Algorithm Notes by XOXOS
Previous Threads Asking a Similar Question
Adivce for someone with ZERO experience
How do I go about learing to develop synths?
Developing a Vst Effect Plugin Where To Start?
What is your development setup?
Any more threads that should be linked here?
Books...
The books listed here aren't the only books on these topics. They are listed here as a starting point for your own research. Please look at alternatives before purchasing anything.
Audio Plugin Frameworks
JUCE is an all-encompassing C++ class library for developing cross-platform software. JUCE includes components for VST, AU and RTAS. JUCE is often highly recommended. Definitely check it out if you use C++.
IPlug is a C++ framework for developing audio plugins and GUIs.
Enhanced version of Cockos' IPlug A simple-to-use C++ framework for developing cross platform audio plugins and targeting multiple plugin APIs with the same code. VST / VST3 / Audiounit / RTAS / AAX (Native) formats supported.
VST.NET allows VST Plugin developers to write Plugins in any .NET language. It makes the transition between the C++ and .NET world smooth and easy. The Framework built on top of the interop layer provides a clear and structured architecture accelerating development considerably.
Delphi ASIO and VST A Delphi library for creating VST plugins, VST hosts and ASIO applications. Includes algorithms for filters and dynamics.
Last edited by very angry mobster on Tue Jan 30, 2024 12:04 pm, edited 19 times in total.
- Beware the Quoth
- 33907 posts since 4 Sep, 2001 from R'lyeh Oceanic Amusement Park and Funfair
Here's another book which I suspect might be useful. Its one of the few books which covers audio plugin formats.
http://www.amazon.co.uk/Audio-Programmi ... 39&s=books
http://www.amazon.co.uk/Audio-Programmi ... 39&s=books
my other modular synth is a bugbrand
- KVRAF
- 1702 posts since 22 Apr, 2009 from Belgrade
here's a link with some tips and an introduction to VST programming:
http://www.axiworld.be/vst.html
http://www.axiworld.be/vst.html
Bedroom Producers Blog << Free VST Plugins!
- KVRAF
- 8088 posts since 12 Feb, 2006 from Helsinki, Finland
As far as math goes, basic engineering math (linear algebra, complex analysis, etc) should be more or less sufficient (ie pick any university textbook, it'll have more or less the right stuff); even less if you're not planning on doing any filter design or other "fancy" stuff. Mostly you just have to be fairly confident with your math, since most of the time "try random things" doesn't exactly work very well (as if we didn't do it anyway) when it comes to math.
Some understanding of basic CS stuff (especially algorithmic complexity, maybe state machines too) is probably useful as well... though that isn't very hard.
Some understanding of basic CS stuff (especially algorithmic complexity, maybe state machines too) is probably useful as well... though that isn't very hard.
-
very angry mobster very angry mobster https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=11047
- KVRian
- Topic Starter
- 611 posts since 15 Dec, 2003 from Melbourne, Australia
I've added your book recommendation Whyterabbyt.
@Mystran: Thanks for the maths. That's been dropped in as well.
@bpblog: Is this stuff too Delphi specific?
Can anyone recommend a good maths text book?
What else is needed? Any other comments?
@Mystran: Thanks for the maths. That's been dropped in as well.
@bpblog: Is this stuff too Delphi specific?
Can anyone recommend a good maths text book?
What else is needed? Any other comments?
-
- Banned
- 12367 posts since 30 Apr, 2002 from i might peeramid
for your 'audio basics' book link, i think dspguide.com is indispensible. the prose isn't exclusory at all.
i currently noticed that the free pdf 'introduction to sound processing' by davide rochesso has a brief but exhaustive appendix on math required for dsp. i am.. still going through it..
really, i think the current sticky on resources has all the information that currently exists. perhaps the paragraphs you have written above could be added to the first post, so people have a start on why they should be familiar with these resources
for math in general, purplemath.com provides very accessible explanations (i don't know if it's currently linked in the thread).
i currently noticed that the free pdf 'introduction to sound processing' by davide rochesso has a brief but exhaustive appendix on math required for dsp. i am.. still going through it..
really, i think the current sticky on resources has all the information that currently exists. perhaps the paragraphs you have written above could be added to the first post, so people have a start on why they should be familiar with these resources
for math in general, purplemath.com provides very accessible explanations (i don't know if it's currently linked in the thread).
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.
-
- KVRist
- 391 posts since 11 May, 2005 from France
Interesting thread !
can i add Usine to your list..?
since the last version you can save your patch as VST or VSTI
no native oscillator yet, but you can easily built midi or audio effect..
can i add Usine to your list..?
since the last version you can save your patch as VST or VSTI
no native oscillator yet, but you can easily built midi or audio effect..
-
very angry mobster very angry mobster https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=11047
- KVRian
- Topic Starter
- 611 posts since 15 Dec, 2003 from Melbourne, Australia
Added.nay-seven wrote:Interesting thread !
can i add Usine to your list..?
since the last version you can save your patch as VST or VSTI
no native oscillator yet, but you can easily built midi or audio effect..
- KVRAF
- 1724 posts since 31 Dec, 2004 from betwixt
Open notepad.
Type in "saw square sine tri."
Save file. Change file extension to .dll
Drop in VST folder.
No not really. If only.
Type in "saw square sine tri."
Save file. Change file extension to .dll
Drop in VST folder.
No not really. If only.
-
- KVRist
- 304 posts since 3 Nov, 2007 from Earth, USA, CO, Denver
What ever happened to the WiKi? Any info "sticky-able" is more or less FAQ, which WiKis excel at...
-
- KVRer
- 14 posts since 22 Mar, 2011
For a good guide to sound through to perception I cannot recommend Hartmann's text enough. It is a little pricey, but it now seems to be available on google books
http://books.google.com/books/about/Sig ... 72rIoTHiEC
http://books.google.com/books/about/Sig ... 72rIoTHiEC
-
- KVRist
- 88 posts since 18 Jun, 2011 from Ukraine
This book shoud be added too: http://www.amazon.com/BasicSynth-Daniel ... 0557022126 . It's very good DSP (and not only about dsp) tutorial for complete noobs, every beginning developer must read this.
Best section for the book is Audio Basics or Audio Digital Signal Processing, probably in Audio Basics.
Best section for the book is Audio Basics or Audio Digital Signal Processing, probably in Audio Basics.
-
Bronto Scorpio Bronto Scorpio https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=98170
- KVRAF
- 5546 posts since 13 Feb, 2006 from Wiesmoor, Germany
Great thread!
@ very angry mobster: It would be nice if you could add Pure Data to your "Before learning how to code VST plugins you should check out:" list
It's a great free alternative
Cheers
Dennis
@ very angry mobster: It would be nice if you could add Pure Data to your "Before learning how to code VST plugins you should check out:" list
It's a great free alternative
Cheers
Dennis
-
very angry mobster very angry mobster https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=11047
- KVRian
- Topic Starter
- 611 posts since 15 Dec, 2003 from Melbourne, Australia
Yep, a wiki page would be ideal..re8 wrote:What ever happened to the WiKi? Any info "sticky-able" is more or less FAQ, which WiKis excel at...
@xoxos, billythekidd, Vadkvr: Nice link suggestions. I've added them all.
@Bronto Scorpio: Added Pure Data to the list. Thanks for the suggestion.
@Meffy: Thanks for the sticky.