
DSP Programming for VST Instruments and Effects? - ninjakeyboard
Hey, 
I currently work in distributed computing especially in the video domain and primarily have been interested in functional programming in the last few years - I&#x27;m currently a scala developer.<p>I&#x27;m wondering a couple things:<p>1) If I wanted to play with producing VSTs&#x2F;AUs - especially instruments - are there any decent resources for getting into this specific problem domain? It seems a bit aloof relative to more prolific areas like distributed computing.<p>2) Are there any functional programming approaches - eg languages and libraries - that are widely used in audio DSP? I don&#x27;t think imperative languages would fit quite as well as functional programming as you can just string a signal through a series of functions, and re-arrange them to produce some sort of signal path - that seems logical to me from what I know of analog signal processing circuitry.<p>3) What sort of math would i want to get up to speed with if I was to venture in this direction? I&#x27;m assuming that there is a lot more mathematics that become apparent when working with digital audio and processing&#x2F;altering it.<p>Thanks in advance for any insight - it&#x27;s hard to research the field as very little information appears to be available. I can see this one book here: 
http:&#x2F;&#x2F;www.amazon.ca&#x2F;Designing-Audio-Effect-Plug-Ins-Processing&#x2F;dp&#x2F;0240825152<p>I honestly do not really want to work in C - I&#x27;d much prefer to work in a higher level language as it&#x27;s for interest and enjoyment atm.<p>I also found some Haskell bits: http:&#x2F;&#x2F;hackage.haskell.org&#x2F;package&#x2F;csound-expression-0.3.4&#x2F;docs&#x2F;CsoundExpr-Opcodes-Plugin-Vst4cs.html
======
strangecasts
Personally, I've found the JUCE framework to be fairly clean and really nice
for setting up simple MIDI effects: [http://www.juce.com/learn/tutorials-code-
examples/create-bas...](http://www.juce.com/learn/tutorials-code-
examples/create-basic-audio-midi-plugin-part-1-setting-up)

If you really cannot stomach C++, though, VST.NET (
[https://vstnet.codeplex.com/](https://vstnet.codeplex.com/) ) is meant to let
you do audio plugins in .NET languages - couldn't get it to work myself,
though.

------
T-A
A couple of links to get you started:
[http://www.musicdsp.org/links.php](http://www.musicdsp.org/links.php)
[http://www.polyhedric.com/software/amazon/dsp.htm](http://www.polyhedric.com/software/amazon/dsp.htm)

Last time I looked (a few years ago now) everybody serious was still using
C/C++. I suppose Haskell could be a good choice for you, or you could be hip
and pioneer the use of Rust for this stuff. :)

For math, you need to understand complex analysis and Fourier transforms. If
poles and residues don't faze you, you know enough to read a good DSP textbook
like [http://www.amazon.com/Discrete-Time-Signal-Processing-
Editio...](http://www.amazon.com/Discrete-Time-Signal-Processing-Edition-
Prentice-Hall/dp/0131988425)

~~~
ninjakeyboard
poles don't phase me but I guess you don't mean the dancing variety.

Okay thanks very much for the resources!!

