Learning to program VST/VSTi's

For computer based music makers. Discussions about plug-ins and stand alone computer synth gear.
Post Reply
User avatar
jimi_t
Newbie
Newbie
Posts: 97
Joined: Sat Nov 26, 2005 12:35 am
Location: Dublin, Republic Of Ireland

Learning to program VST/VSTi's

Post by jimi_t » Mon Dec 08, 2008 12:10 am

Can anyone recommend any good starting points on learning to program a VST/VSTi in C for a complete programming novice?
---------
MFB Synth Lite II, x0xb0x, ER-1 Mk.II, Yamaha TG-33, Axiom 49

User avatar
downgrade
Junior Member
Junior Member
Posts: 153
Joined: Sun Apr 27, 2008 2:18 pm
Gear: Evolver. Syntecno TeeBee MKIII. Vermona DRM1 MKII. Nova modded SH-101. MAM SQ16. AS Red Square V2. Thingamakit. MFB Kraftzwerg. Sherman FilterBank V1
Contact:

Re: Learning to program VST/VSTi's

Post by downgrade » Mon Dec 08, 2008 4:00 am


User avatar
Pilot352
Active Member
Active Member
Posts: 260
Joined: Wed May 02, 2007 9:39 pm
Location: Darien, Il.

Re: Learning to program VST/VSTi's

Post by Pilot352 » Mon Dec 08, 2008 12:23 pm

Synthedit = LAME

It's not what he's asking for. All you're doing with Synthedit is arranging already programmed tools in an order you decide. Creating a soft synth this way will result in all the synths sounding basically the same but with different skins. They will all use the same sound engine.

To answer your question, you first need to learn C++ not C. Although C++ is a super set of C, these are two majorly different programming languages. You then might want to research ASIO driver technology. There are a few articles here...

http://www.codeproject.com/info/search.aspx?artkw=asio

What you ask shouldn't be attempted by a rooky as it uses very advanced programming techniques. If you want to try it anyway... good luck as it's going to take a long time. You will have to do a lot of research and you probably wont get any good answers here. Not to many users on this forum are programmers. I know there are a few but this forum is about synths, not programming.
Analog: Mono/Poly, Prophet '08, Juno 106
Digital: Kurzweil SP88, Yamaha DX11, Kawai K4, MS2K, AN1x
Modules: Triton (loaded), Motif ES, MS2KR, E-Mu Proteus 2K, TR626 DM, Roland U220
New Addition: Fender Rhodes 73 Mark I
So much gear... So little time!!!

User avatar
Yoozer
Expert Member
Expert Member
Posts: 1390
Joined: Sun Oct 09, 2005 1:31 pm

Re: Learning to program VST/VSTi's

Post by Yoozer » Mon Dec 08, 2008 10:50 pm

jimi_t wrote:Can anyone recommend any good starting points on learning to program a VST/VSTi in C for a complete programming novice?
You don't. You don't pick up C or C++ in 24 hours or 2 weeks, and you don't learn general programming either. You don't learn programming from a web site, you'll be buying books - like http://www.acceleratedcpp.com/ .

Clicking an application in Visual Studio together is not programming. Do not underestimate that; you'll be really proud of your Hello World after an hour and then pointers will arrive and concepts like object orientation and model-view-controller and serialization, writing and reading from and to files, and you'll go howling mad.

Start with feasability - and for that, SynthEdit or (better) SynthMaker is not bad. That 6-oscillator 3-filter dreamsynth of yours should be pleasant to use when using a tool like that; you'll soon find out the limits and issues of your user interface. If it sucks, throw it away and find another dreamsynth.

Then, you start learning algorithms and you replace the built-in filter / oscillator stuff with your homebrew code. You'll have to learn all about FFT and translating transfer functions in code.

A gentler way to do this is to build a Reaktor ensemble; still allows hairy bits of processing, but without the actual code.
"Part of an instrument is what it can do, and part of it is what you do to it" - Suzanne Ciani, 197x.

User avatar
jimi_t
Newbie
Newbie
Posts: 97
Joined: Sat Nov 26, 2005 12:35 am
Location: Dublin, Republic Of Ireland

Re: Learning to program VST/VSTi's

Post by jimi_t » Tue Dec 09, 2008 2:28 am

Thanks for all the replies so far.

I'm well aware of synthedit/synthmaker and even programming in an 'easier' language like Delphi etc... but, the plan ultimately being to produce something of use, I would obviously prefer to start from the outset with the industry standard. I've a basic understanding of BASIC (ba dum tish!) but my one experience of C was to pick up some all-in-one course bundled with CodeWarrior and I got as far as

INDEX
p.1 - Intro
p2-243 - Printing 'Hello World'
.....


which obviously put me off :D I find it flabbergasting that there isn't some sort of introductory system in place which is geared strictly towards learning programming within the confines of the Steinberg SDK. I mean you can learn the core concepts and knock together a feasible FPS engine over a long weekend if you buy a decent book and beg borrow and steal from the libraries available, but you can't knock together a personal variation on a comb filter or whatever?

Yoozer: Surely there's a better way I could invest my time than to arse about in SynthEdit/Reaktor playing with ideas? I've no specific aim as to what I would like to create, more that its simply been a driving ambition of mine for some time to be able to program even a relatively basic plug from scratch.

Pilot352: Some light reading for over christmas methinks :D
---------
MFB Synth Lite II, x0xb0x, ER-1 Mk.II, Yamaha TG-33, Axiom 49

User avatar
Yoozer
Expert Member
Expert Member
Posts: 1390
Joined: Sun Oct 09, 2005 1:31 pm

Re: Learning to program VST/VSTi's

Post by Yoozer » Tue Dec 09, 2008 5:46 pm

jimi_t wrote: which obviously put me off :D I find it flabbergasting that there isn't some sort of introductory system in place which is geared strictly towards learning programming within the confines of the Steinberg SDK.
In that case you'd rather want to work on a Mac in XCode where you (apparently) get some nice examples for an AU synth or effect.
I mean you can learn the core concepts and knock together a feasible FPS engine over a long weekend if you buy a decent book and beg borrow and steal from the libraries available
In that case you use an already existing engine (Irrlicht) and your time is mostly spent on using Photoshop and Blender for the models, not on actually calculating radiosity maps or flippping normals.
but you can't knock together a personal variation on a comb filter or whatever?
There are a lot of approaches towards programming filters, but nothing'll happen if you don't know what is involved initially. Making a 512 x 512 brick texture is a lot easier than FFT.
Yoozer: Surely there's a better way I could invest my time than to arse about in SynthEdit/Reaktor playing with ideas? I've no specific aim as to what I would like to create
And that's one of the problems. You need to know what to make, first, and you need to make a planning; there's no way to just freewheel around, because this means rewrite after rewrite after rewrite and shotgun debugging. Your project is a failure as long as you don't have a target to work towards to, which is software engineering 101.

See if you can knock together something that displays incoming MIDI notes in a textbox :)
"Part of an instrument is what it can do, and part of it is what you do to it" - Suzanne Ciani, 197x.

Post Reply