09
Mar
09

How to use this site

Welcome to my VST tutorial site. This post is a sticky, so please scroll down for the latest content. If this is your first visit then please view the ‘pages’ links in the right hand column. These will tell you how to easily build the VST plugins which come with the SDK from Steinberg. If you are comfortable with the builds then please scan my other posts which give tips and tricks to other VST programming newcommers. 

Enjoy your stay and be sure to check back regularly :)

04
Nov
09

i am a . . .


What Video Game Character Are You? I am a Space-invader.I am a Space-invader.


I will happily recruit the help of friends to aid me in getting what I want. I have no tolerance for people getting in my way, and I am completely relentless until any threats or opposition are removed. I try to be down-to-earth, but something always seems to get in the way. What Video Game Character Are You?

30
Oct
09

Learn C++ the fun way

I recently found this fantastic tutorial website which teaches the reader the basics of creating video games using the SDL library. This may have only a vague relevance to VST programming, however, the tutorials are incredibly clear and use C++ (rather than straight C used in many other tutorials) throughout. If you’re having trouble learning C++ by reading books with the standard dull “now we shall make an employee class for our payroll system zzzzzZzzzzZzzz” then I strongly suggest that you check this out. The author does not expect any prior knowledge of C++ programming, and it is a great way of learning by doing. The comments of the readers say it all for me.

The author of this tutorial recommends that you use the code::blocks IDE. I too have more recently become an advocate of using code::blocks due to its fantastic debugging capabilities and plugin support for profiling with gprof. Code::Blocks uses the same open source GNU c++ compiler which I use in the tutorials here but has its own build system built in rather than using SCons. The only reason I show the reader how to use SCons is for educational purposes, so that they have a really good idea of what they are doing with the source files in each example I present. It is just as easy to use code::blocks for VST plugin development once you want debugging and profiling support.

15
Sep
09

Lots of hits

I’ve just checked back here for the first time in ages to see if this blog had broken 10k hits and we’re actually up to 12k. How exciting :) Very sorry to anyone looking here for updates or new content as I’ve been absolutely swamped with studies. It doesn’t look like I’ll be back to posting on here until 2010 at the current rate of thesis writing. I do have lots of ideas I want to play with though and I will post some more content in the new year. Thanks for stopping by to look!

09
Jun
09

pyvst – those pesky numpy data types

This is more of a note for myself than an actual blog post, but I’ve found a useful little resource to help get the numpy data typed to talk with the vst sdk. I plan on doing all of the numerical processing using numpy arrays and the like to make rapid development and testing easy. see the resource here. Sorry to anyone checking up on this about the delay since previous posts. I’m pretty snowed under with studies at the moment and don’t have much time to spend here as a consequence. I’m still alive though!!

17
May
09

Ride my fish

Ok, it is shameless plug time. My band has a new demo out which I think you’ll enjoy. Check it out on myspace music using this link.

22
Apr
09

more pyvst

Ok, pyvst is stil chugging along but the python C API is pretty massive and has a lot of functions to get my small brained head around. I’ve got the again demo supplied in the vst sdk returning random numbers to the fader label after each buffer, which is useless on its own but another step forward. Watch this space. I’m still chugging along and coming up with some cool feature ideas.

20
Apr
09

python and vst in harmony

I’ve seen that my short post a while back has generated quite a few hits to my site from people searching for “python vst” and similar on Google. For those here looking for a way to program plugins using python fear not! I am actively developing this when I find time, but time is a little tight at the moment!

I’ve got some basic python stuff integrated with c code now after finding some helpful tutorials on the code project website here and here. I’m just trying to get numpy to play nice with c style arrays and then I’ll get something out soon as possible. Ability to pass numpy arrays will allow the python programmer to use all of the functionality built into scipy for filtering and ffts etc.

The code project tutorial linked above also gives threading advice, so it may be possible to make some pretty serious plugins. The plan at the moment is to compile a dll, which will search its directory for a python script of the same name and then run all of its processing from there. The aim being to keep things as neat and as simple as possible. Back to reading the numpy api for me!

06
Apr
09

NEW soundcard

Just ordered a Focusrite Saffire pro 40. I’m like a kid waiting for Christmas to arrive. Can’t wait to get the band demo recorded. Hopefully it’ll be here mid week. I’ll write a little review when it arrives.

31
Mar
09

Best software in the world, ever

This is a small post totally unrelated to vst plugin development, but I feel I need to share this discovery with any readers. SWTSG is a bit of software which makes the Star Wars opening text crawl with the Lucas Art’s and 20th Century Fox logos also. The results are nothing short of stunning, but you’ll need access to a mac to use it unless you want to port it (the source is freely available on the website). There is a tutorial on how to merge all of the bitmaps generated by the software into a video file, but I found it much easier to use Matlab to do it for me. Here is my little Matlab script contribution.

close all; clear all; clc
bmpDir = 'bmps';

aviobj = avifile('demo', 'compression', 'divx', 'fps', 25);
x = dir(bmpDir);
ofst = 4;
for n = 1+ofst:numel(x)
    frm = im2frame(imread(fullfile(bmpDir, x(n).name)));
    aviobj = addframe(aviobj,frm);
    disp(n)
end
aviobj = close(aviobj);

Put the bitmaps into a sub folder named “bmps” and then just run the script from the top directory. This will generate a Divx movie called “demo.avi”, which will look awesome and be about 8MB for 2 minutes of video using the ‘large’ setting in the SWTSG renderer software. If you don’t have divx installed, you can download it from here or change ‘divx’ to ‘none’ in the above script, although this will create a much larger file.

20
Mar
09

pyVST – A python wrapper for vst

Interpreted languages are an awsome way of realising ideas very quickly, even if you eventually want to hard code your projects in C. I’ve been looking into python more and more recently (since using SCons as my C++ build tool), and have been having some luck with the numPy package for efficient matrix and array mathematics (gives MATLAB type functionality, but for free). Python is also very easy to integrate with C code.

I’ll try to get something up and running in the near future where you have a pre-compiled dll (and eventually the equivalents on other os) which acts as the gateway between your vst host and Python. This is intended to be a very similar project to jVST, enabling python programmers to achieve similar ease of development. I’m sure it is much better to worry about the DSP and sound quality of your plugin at first without the faff involved with the C++ language and constant compile, recompile cycles.

Keep watching this space and I’ll keep reading up in my spare time and eventually start a source forge project or something similar. Should be fun!