Login / Register  0 items | $0.00 NewWhat is KVR? Submit News Advertise
996 posts since 14 Jun, 2012, from Toronto, Canada

Postby schnapsglas; Fri Feb 22, 2013 1:38 pm I want to start DSP, or rather, programming.

I come from a mathematical background (ehem, a mathematician I am,) and I do have quite a bit of theoretical programming knowledge. I am not the best at analysis, so I do have to look up a harmonic analysis text from time to time, but I am solid there.

I wonder what is the best place to get started. I looked at the sticky but little too general. What IDE do you use? What are some smaller things I could try? I have theoretical ideas for few effects and synthesizers, and I am especially interested in expanding ideas of additive synthesis.

But I just want to start off with something easy that I can put my knowledge to use right away, and brush up on those C libraries' names I forgot years ago.

I know when someone starts to have interest in something which is not their specialty, the post reads like nonsense, so please point me in the right direction :D and apologies for all the ignorance.
It's all about the wavelets. I dream of the perfect additive synthesis.
You can hire me if you are in Toronto! Contact for details.
121 posts since 14 Aug, 2012, from Western Australia

Postby Ninja_Edit; Fri Feb 22, 2013 4:46 pm

If you want something easy to start with, try a modular environment like SynthEdit. For straight coding, you could use Pirkle, Will - Designing Audio Effect Plug-Ins in C++: With Digital Audio Signal Processing Theory and his RackAFX IDE.
231 posts since 15 Apr, 2012, from Toronto, ON

Postby LemonLime; Fri Feb 22, 2013 8:51 pm

Yeah, a modular environment would be a good place to start. You could also look into Max or Pure Data. Both are graphically-based, and Max especially is a very powerful environment.

Pirkle's book is a good one to start with, as Ninja_Edit mentioned. Another one is Boulanger and Lazzarini's "The Audio Programming Book". It includes a refresher on C and C++ at the start as it applies to DSP, which sounds like it might be useful for you.

I use Xcode on Mac and Visual Studio on Windows, but if you want to get started right away, I would suggest sticking with a more modular environment or the RackAFX IDE unless you want to put some time into fiddling with build environments and such.
User avatar
953 posts since 8 Feb, 2012, from South - Africa

Postby Ichad.c; Sat Feb 23, 2013 12:33 am

Ninja_Edit wrote:If you want something easy to start with, try a modular environment like SynthEdit.

+1 it has a SDK based on c++, so you can use it as a "rapid prototyping" enviroment, so for your additive oscillator - you code just the osc in a module - open it up in SE - then quickly add some midi, a gui, envelopes,vca and export to VST to play in your host. The SDK is also relatively easy to understand.

Just my 2cents.

519 posts since 18 Jul, 2007, from Netherlands

Postby obiwanjacobi; Sat Feb 23, 2013 1:50 am

And if you do venture into code, perhaps you could consider C# and VST.NET?

Many beginners find programming in C# easier than C++ and VST.NET comes with a couple of sample plugins for the most common scenarios (effect, midi etc). You can download the free Visual Studio Express edition from Microsoft and install the VST.NET project templates. That gives you the option to create a new VST.NET project with a working audio (effect) or midi (effect) plugin.

It is also a great environment to prototype new ideas and quickly get to a result. Porting code back to C++ -for added performance- is easy because the C# language is so close to C++.

If you have any questions about VST.NET, post them on the discussion list on the VST.NET codeplex site.

Hope it helps.
Grtx, Marc Jacobi.
User avatar
658 posts since 19 Dec, 2010

Postby Richard_Synapse; Sun Feb 24, 2013 7:55 am

Other than modular stuff, VST2 is easiest to get started. Environments are typically XCode on Mac and Visual Studio on Windows.

Synapse Audio Software - www.synapse-audio.com

Moderator: Moderators (Main)

Return to DSP and Plug-in Development