How To Create VST Plugins? Information for those just getting started

DSP, Plug-in and Host development discussion.
hibrasil
KVRian
769 posts since 24 Jun, 2002 from Huddersfield, UK

Post Fri Apr 27, 2012 4:46 am

Perhaps IPlug should be added to this sticky:

my version: https://github.com/olilarkin/wdl-ol

it is very nice for beginners since it is really non-verbose. Adding a parameter with labels etc is just one line of code for instance and adding a control to the GUI is just a couple of lines. I think it's a good way for people to move from high level languages like Puredata to lower-level code in c++.
My Website | WDL-OL | Web Audio Modules - WAMs | Oli Larkin Plugin's Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)

xoxos
Mr Entertainment
12018 posts since 30 Apr, 2002 from i might peeramid

Post Thu May 17, 2012 10:18 pm

few years ago i posted a pdf noting elementary routines for physical modeling. update was in the to do pile, and is now in the ta da pile, that's oos and aas.

audio dsp training wheels -
http://www.xoxos.net/sem/dsp2public.pdf
you come and go, you come and go. amitabha xoxos.net free vst. neither a follower nor a leader be
tagore "where roads are made i lose my way"
where there is certainty, consideration is absent.

User avatar
Ichad.c
KVRian
1039 posts since 8 Feb, 2012 from South - Africa

Post Wed May 23, 2012 3:31 pm

Thakd xoxos! The delayline stuff is very useful, thanks!

Regards
Andrew Ainslie

Nantonos
KVRist
67 posts since 13 Aug, 2012 from France

Post Mon Aug 13, 2012 3:57 pm

very angry mobster wrote: Before learning how to code VST plugins you should check out:
- SynthEdit
- SynthMaker
- Reaktor
- Max/MSP
- PureData
- CSound
- SuperCollider
- Bidule
- Usine
Are there any threads comparing and contrasting these different platforms for VST development?

I have looked at SynthMaker a little, just got hold of PureData; buying a full copy of Reaktor just to test it out is a bit steep without being sure what it can do and if it would suit me.

So a comparison thread would be really helpful (I did search around, didn't find one, but could well have missed it).
Last edited by Nantonos on Sat Aug 25, 2012 1:45 pm, edited 1 time in total.

very angry mobster
KVRian
610 posts since 15 Dec, 2003 from Melbourne, Australia

Post Tue Aug 14, 2012 5:48 pm

hibrasil wrote:Perhaps IPlug should be added to this sticky:

my version: https://github.com/olilarkin/wdl-ol
Added. Thanks Hibrasil.

audio dsp training wheels -
http://www.xoxos.net/sem/dsp2public.pdf
Added. Thanks XOXOS.

very angry mobster
KVRian
610 posts since 15 Dec, 2003 from Melbourne, Australia

Post Tue Aug 14, 2012 6:02 pm

Nantonos wrote:
very angry mobster wrote: Before learning how to code VST plugins you should check out:
- SynthEdit
- SynthMaker
- Reaktor
- Max/MSP
- PureData
- CSound
- SuperCollider
- Bidule
- Usine
Are there any threads comparing and contrasting these different platforms for VST development?
None that I can remember.


- Shannon

agentile1990
KVRer
6 posts since 23 May, 2012 from Nashville, TN

Post Tue Jan 08, 2013 8:37 am

I just want to be a testament of success and say that this really can be done by a beginner programmer from scratch. Check out a post covering my success story and links to free VST's for MAC and PC.

http://www.kvraudio.com/forum/viewtopic ... 90#5200190

KVR definitely helped along the way and I encourage all beginners reading this to get cracking.

Happy VST!

Ninja_Edit
KVRist
128 posts since 15 Aug, 2012 from Western Australia

Post Sat Feb 02, 2013 7:17 am

Here's a HTML source for The Scientist and Engineer's Guide to
Digital Signal Processing By Steven W. Smith, Ph.D.

http://dspguide.com/pdfbook.htm

very angry mobster
KVRian
610 posts since 15 Dec, 2003 from Melbourne, Australia

Post Sun Feb 03, 2013 8:49 pm

Ninja_Edit wrote:Here's a HTML source for The Scientist and Engineer's Guide to
Digital Signal Processing By Steven W. Smith, Ph.D.

http://dspguide.com/pdfbook.htm
Thanks. I've updated the link in the first post.


Shannon

Ninja_Edit
KVRist
128 posts since 15 Aug, 2012 from Western Australia

Post Tue Mar 19, 2013 9:33 am

Also:

http://crca.ucsd.edu/~msp/techniques.htm


Pirkle, Will
Designing Audio Effect Plug-Ins in C++ : With Digital Audio Signal Processing Theory

Ninja_Edit
KVRist
128 posts since 15 Aug, 2012 from Western Australia

Post Tue Apr 16, 2013 6:47 am

Here's my suggesting program of learning, based largely on the original.


1. Mathematics
Algebra
Discrete
Trigonometry / Harmonic analysis
Complex analysis

2. Music/audio
Music theory
Acoustics/psychoacoustics
Digital audio formats and MIDI
Digital Audio Workstations (DAWs)

3. Digital Signal Processing (DSP)
Biquad filter

4. Software development
Market research
Project management
Software lifecycle
Object-oriented programming
C++
Software Development Kit (SDK) - eg VST

maladie
KVRer
9 posts since 25 Jan, 2012

Post Mon May 20, 2013 5:36 am

I'm a student within electro-acoustics and production so I've learned some parts of DSP and have become pretty decent with Csound, Python and Max/MSP. I also tend to mix all of them together through the Csound object that can be downloaded for Max so that I get to use the strongest point of every language.

I've been reading about how to build VST or AU units and I'm probably going to work on the Audio Programming book over the summer. However, I still do have one question: is there any way to build a VST/AU using Csound + Python with Max? The new GEN add-on to max can be used to export something you build into an AU, but I'm not sure if it could work with the Csound object too.

parricide
KVRist
32 posts since 21 Nov, 2010

Post Thu May 23, 2013 7:41 am

great thread.
i have been playing with synthedit and reaktor for years and LOVE making plugins, as well as building hardware.
reaktor is very limited and sometimes synthedit is just not quite enough. these points will definitely help me move forward in my DSP design.

thanks!

User avatar
whyterabbyt
Beware the Quoth
26122 posts since 4 Sep, 2001 from R'lyeh Oceanic Amusement Park and Funfair

Post Thu May 23, 2013 8:02 am

maladie wrote:I've been reading about how to build VST or AU units and I'm probably going to work on the Audio Programming book over the summer. However, I still do have one question: is there any way to build a VST/AU using Csound + Python with Max?
No, almost certainly not. Firstly, as you probably know, the csound~ object for MAX relies on the existing Csound API to pass-off its processing to an instance of CSound, so, really it has no 'knowledge' of anything Csound-y at all. I suppose it would be possible to build a MAX graphical UI/frontend that generated CSound instrument definition, but it'd still rely on the CSound setup as a parallel 'monolithic' audio engine.

You basically have no existing means of directly turning your CSound instrument definition into any other kind of source code that could be compiled into a standalone plugin. And you also wont be able to use a CSound instrument definition without either (1) creating a bridge to the monolith, in exactly the same maner as csound~ does, and thus basically writing your own version of the Cabbage plugin, or (2) replicating/incorporating the CSound monolith in its entirety inside your plugin, or (3) finding some way to parse the CSound score and spit out either the raw underlying code and glue from CSound (which could be a license issue) or your own code which does exactly what CSound does (in other words basically a from-scratch rewrite).
The new GEN add-on to max can be used to export something you build into an AU, but I'm not sure if it could work with the Csound object too.
No, not even slightly. It's GEN-specific, so wont even work on regular MSP audio objects, let alone third party externals like csound~.

One possible avenue for you, though, might be some clever use of Faust, which can spit out compilable source code for VST/AU plugins, Csound opcodes and/or MAX objects, but you wouldnt get to leverage the existing CSound opcodes or MAX audio objects inside it.
"The bearer of this signature is a genuine and authorised pope."

maladie
KVRer
9 posts since 25 Jan, 2012

Post Sun May 26, 2013 6:49 am

Thanks whyterabbyt, you basically confirmed what I thought and gave some extra insight. I'll check out Faust :). Also bought the Audio Programming Book to go more in depth and see other possibilities.

Return to “DSP and Plug-in Development”