I'm probably way behind the curve with this as this software has been around for years but I've only just started playing around with it the last few weeks and am feeling very proud of my first creation (synth / multi effects processor). The software is called Pure Data, there is a wikipedia site here which will tell you all the background you need to know regarding it.
It is free to download from the Pure Data site and is supported on Windows, Linux, Mac some OS's I've never heard of and there's even a version that works on PDA's.
Pd is described as "a real-time graphical programming environment for audio, video, and graphical processing".
Unless you are fairly computer literate or a programmer don't expect to get much out of it straight away. The best approach is to download a few simple patches created by others and play around with them for a while to get a feel for the GUI and then explore the examples that can be found in the help browser. Start by building an oscillator [osc~] then adding volume control [*~] and reverb using the freeverb [freeverb~] object. Using pd you can build virtually any sound or effect you can imagine there is even a [moog~] object that emulates a Moog resonance filter.
Pd can also be controlled using external midi devices and firmware can be downloaded which allows you to control pure data with the arduino micro-controller board so potentially you could build a reconfigurable personalized music machine with your computer creating the sounds.
There is also a very good forum called pure data hurleur, this community shares and develops objects and extensions for pd and offers advice and feedback to people getting started.
It is possible to play an instrument through your diy virtual effects processor using the adc object [adc~] if you have a line in on your computer or if you have one of those audio to USB converter thingys.
Cycling 74 the creators of Max/MSP which is a more evolved and expensive version of pure data have a free tool called Soundflower that allows you to connect audio packages together (Like jack but easier to use) so for example you could use Soundflower to record pd using Audacity.
Here you will find a cute little synth to play around with just download and install pd and open the file.
I haven't recorded anything yet but as soon as I do ill post it on this site.
Now if someone could just tell me how to emulate distortion of fuzz that would be great.