I've recently experimented with creating my own synth from scratch. A few months ago I knew absolutely nothing about synths, but now I've made one. Below is a screenshot. It's looking awful, I know. But the looks was something I scrapped together in a few minutes. The real beauty is underneath :)
It was made using SDL, so it should be cross platform. And it features sine, sawtooth waveforms, ADSR envelope, instrument saving, state variable filter and lots of hacks. It also has an oscilloscope-kind of graph, to display how the final sound wave looks like. I will post more details later, because I could not find any good tutorials on how to make my own synth.