PDA

View Full Version : Programming VST's



Maxima
06-06-2004, 05:23 PM
How would you go about Creating and programing your own Virtual instruments? I have no programing experience but would love to no how its done. What programmes would you use??

Barely Human
07-06-2004, 12:39 AM
C++ is probably the best to write one with, but unless you know it really well, then i wouldnt bother. Best thing to start with is synth edit www.synthedit.com

yorkie
11-06-2004, 02:27 PM
to get started you will need C++.


get the vstsdk (Software Develeopment Kit) of the steinberg website

this has examples of vst effects that you can modify.



become a seriously massive DSP head!!


stay in doors for hours

yorkie
11-06-2004, 02:30 PM
another simpler option is to use CPS which is a reaktor/synthedit style vst creator.

you cannot create a GUI with CPS though

Maxima
11-06-2004, 05:31 PM
Nice 1 Guys, will check these out :lol:

Tecnik
22-06-2004, 11:34 PM
to program a VST,u will need a vast amount of knowledge regarding c++ and data structures.
If ya new to c++,the odds of being able to program a vst straight away are VERY VERY small.
betta off startin to learn c++ from the ground up rather then jump straight into something like a VST,will defo **** ur head right up.
ive been programmin c++ for around 2-2 1/2yrs now,and its a awesome tool to have wen u know how to use it,but until then,it can and will seem very daunting at times.
good luck :)

detfella
06-05-2005, 11:59 PM
u could try h4x instead :lol:


/* Bomb program that is solved using a buffer overflow attack */

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

/* Like gets, except that characters are typed as pairs of hex digits.
Nondigit characters are ignored. Stops when encounters newline */
char *getxs(char *dest)
{
int c;
int even = 1; /* Have read even number of digits */
int otherd = 0; /* Other hex digit of pair */
char *sp = dest;
while ((c = getchar()) != EOF && c != '\n') {
if (isxdigit(c)) {
int val;
if ('0' <= c && c <= '9')
val = c - '0';
else if ('A' <= c && c <= 'F')
val = c - 'A' + 10;
else
val = c - 'a' + 10;
if (even) {
otherd = val;
even = 0;
} else {
*sp++ = otherd * 16 + val;
even = 1;
}
}
}
*sp++ = '\0';
return dest;
}

/* $begin getbuf-c */
int getbuf()
{
char buf[12];
getxs(buf);
return 1;
}

void test()
{
int val;
printf("Type Hex string:");
val = getbuf();
printf("getbuf returned 0x%x\n", val);
}
/* $end getbuf-c */

int main()
{

int buf[16];
/* This little hack is an attempt to get the stack to be in a
stable position
*/
int offset = (((int) buf) & 0xFFF);
int *space = (int *) alloca(offset);
*space = 0; /* So that don't get complaint of unused variable */
test();
return 0;
}

danielmarshall
16-12-2005, 10:24 AM
First prerequite is SERIOUS dedication to study.

How much do you know about calculus by the way? I've done a maths degree, and most of the stuff in those DSP books confuses me (though with enough effort I probably could do it). If you're into electrical engineering or done study in Fourier Series'/ Complex Analysis it'll be ALLOT easier to grasp otherwise.

Of course DSP is mainly useful when you're writing stuff that opperates on discrete frequency bands like pitch shifters, vocoders, filters or spectral effects. You can find DSP libraries out there that will do some of these things for you without having to rewrite them. Haven't checked in a long time though.

You don't HAVE to use C++ by the way. There are Object Pascal wrappers for the API so you could use Delphi, but I can't guarentee you'll have an internal-bug free experience.

Anyway I gave up and decided to learn how to use Reaktor properly. Just wish it was stable enough for live use. I think one day I'll pluck up enough courage to give it another crack, until then I think I'll devote my time to getting drunk.

Actually don't listen to me, speak to jobro on samplecity.net. He's written quite a few plug-ins.

Hope I didn't discourage you too much.

Dan

danielmarshall
23-12-2005, 12:40 PM
Here's (http://ccrma.stanford.edu/~jos/filters/filters.html) a fantastic introduction to DSP

278d7e64a374de26f==