Originally Posted by Feral_P
The thing is, even though I'd be doing this for fun, I'd find it hard to maintain motivation if I knew that there was a much easier way to do it; So my question is:
What are the pros and cons of doing something like this in a) a pure programming environment, like C++ b) a specifically audio programming environmend, like Pure Data or c) a modular synthesis environment, like NI Reaktor?
How 'deep' into the code can I go with each of these, and does NI Reaktor (or similar) cover everything I'd need to, say, make a custom distortion effect?
You need to define what you want to do and then look at which of the solutions work out best for that. Which is the fastest, which is the easiest in terms of learning curve, which is the most flexible, how much time are you prepared to spend on learning and building.
Coding in a general purpose language would be most flexible, because then you aren't necessarily bind to proprietary frameworks. And if you want to distribute the code, you can package it as you want (e.g. a VST). But DSP programming is an extremely hardcore field.
Reaktor's Core technology can afaik build complex DSP, but maybe in a bit nicer way than using a general purpose language. The limitation is that it's a Reaktor ensemble then, tied to Reaktor and usable just by Reaktor users.
Pure Data is very flexible in the sense that it can integrate external code as "externals". So you have the immediacy of dataflow/visual programming, but can add low-level functionality using externals written in e.g. C++. The distribution is again difficult, because what you're making is a PD patch, which can be run as VST though using PdVST. With Max/MSP you could develop for Max4Live.
Then there's Faust ([Only registered and activated users can see links. Click here to register]
), which I feel stands in the middle. You can write plug-ins/externals for e.g. Pd, Max/MSP and SuperCollider using it, but you can also export to VST. And I believe it can do quite a bit of crunching in terms of DSP. And the compiler translates Faust code to C++.
I guess SynthMaker and such could also be viable options, but I'm not familiar with them.
Originally Posted by Feral_P
EDIT: A second, probably more to the point, question is: What can't modular environments do, that I could do by programming?
I'd put it this way: Modular environments & audio programming languages can do a lot. Think whether you want to go through the trouble of doing something from scratch with C++, VST SDK and digging into digital signal processing theory. Or whether you'd do the same in a more abstracted environment where you can possibly find much of the stuff you need already abstracted and pre-built and you spend much less time building and studying DSP and more time in the actual implementation of your idea and functionality.