Intro
1. general
2. coding
3. dsp
4. in detail
credits
3. dsp - digital signal processing

What else do I need (to know) to start developing plugins?
Please be aware that audio plugin development is a very complex issue. You should be very good in your programming language (C++/Delphi), know what pointers and classes are and how to inherit and overwrite objects and functions, else you won't get far. It is not so complicated, but you absolutely need this basic knowledge before going anywhere. Good books for object oriented languages are available and a good point to start if you know that this is your weak area. Furthermore, if you want to code/implement your own audio algorithms, you should have a profound knowledge in higher level mathematics and DSP (digital signal processing). This can be a very complicated and technical issue, but if you don't know how a lowpass filter works mathematically, how are you going to implement one? FFT, FIR/IIR filters, poles and complex numbers, shaping functions, signal theory, etc. should be at least a bit familiar to you. Again, there are excellent resources available (see next question), especially for beginners. I am not saying that it is impossible to do plugins without this knowledge, but these things will most certainly pop up very soon when developing audio plugins.

Are there any good sites on the internet concerning DSP programming/learning?
Yes, of varying complexity and difficulty. I compiled a list of selected sites dealing with this topic, with a description what each site is about. You can find it on my site (www.tobybear.de) under "DSP Stuff". A very good starting point with some excellent algorithm stuff is here: www.musicdsp.org (see link on top left of this site)

What is the difference between an FIR and an IIR filter and how to implement them in my plugin?
Go to www.dspguru.com for a good introduction to FIR/IIR filters. Here's some info from that site: "FIR means "Finite Impulse Response". The impulse response is "finite" because there is no feedback in the filter; if you put in an impulse, zeroes will eventually come out after the "1" sample has made its way in the delay line past all the coefficients. DSP filters can also be "Infinite Impulse Response" (IIR). IIR filters use feedback, so when you input an impulse the output theoretically rings indefinitely.

Each has advantages and disadvantages. Overall, though, the advantages of FIR filters outweigh the disadvantages, so they are used much more than IIRs. Compared to IIR filters, FIR filters offer the following advantages:

They can easily be designed to be "linear phase" (and usually are). Put simply, linear-phase filters delay the input signal, but don't distort its phase.

They are simple to implement. On most DSP microprocessors, the FIR calculation can be done by looping a single instruction.

They are suited to multi-rate applications. By multi-rate, we mean either "decimation" (reducing the sampling rate), "interpolation" (increasing the sampling rate), or both. Whether decimating or interpolating, the use of FIR filters allows some of the calculations to be omitted, thus providing an important computational efficiency. In contrast, if IIR filters are used, each output must be individually calculated, even if it that output will discarded (so the feedback will be incorporated into the filter).

They have desireable numeric properties. In practice, all DSP filters must be implemented using "finite-precision" arithmetic, that is, a limited number of bits. The use of finite-precision arithmetic in IIR filters can cause significant problems due to the use of feedback, but FIR filters have no feedback, so they can usually be implemented using fewer bits, and the designer has fewer practical problems to solve related to non-ideal arithmetic.

They can be implemented using fractional arithmetic. Unlike IIR filters, it is always possible to implement a FIR filter using coefficients with magnitude of less than 1.0. This is an important considertaion when using fixed-point DSP's, because it makes the implementation much simpler.

Compared to IIR filters, FIR filters sometimes have the disadvantage that they require more memory and/or calculation to achieve a given filter response characteristic. Also, certain responses are not practical to implement with FIR filters" .

Can you recommend good books & where to get them?
I know no book about VST plugin programming itself (yet), but there are loads of excellent books on object oriented languages (C++ / Delphi) and DSP available. Some can be viewed online/downloaded (as PDF), see my site for the links. Every larger bookstore and every good library should have some books about these topics, so I suggest going there and checking them out, to find some books that are understandable and on an appropriate level for you.



Site adapted and maintained by Urs
Original music-dsp site created and maintained by bram & david
Original graphic design by line.out | Site hosted by NN
VST Technology by Steinberg Media AG
Number of unique visitors (since january 2002):