I have been working on the synth, adding features I had on the previous version, and optimising/refactoring some code too. These are its (not too amazing) current specs:
- Two voices - you can choose from Sine, Square, Triangle and Sawtooth
- Independent Octave and volume for each voice
The good thing is than when played together the two voices seem to diminish the clicking that could be heard yesterday :D
Still, I need to look into some of that Bandwidth Limited theory to see if it can improve the overall result (thanks Cly Suva for the hint!)
Another cool thing is that all the parameters can be modified and automated:
I find it funny that the code for the synth in itself (the .cpp file only) is just 261 lines, including comments, whitespaces etc. And the code for the VST file, which is pretty much boilerplate and glue code, is now at 464 lines. And it pretty much does "nothing", just connect things here and there.
I wonder how will it end, I (suppose|hope) that when I add more meat to the synth things will change!
Here's a quick test I've done: Sorollet test for 20100209
Nothing fancy, just two channels (i.e. two instances of the synth), and playing a bit with the parameters (the octave) on the 'lead' channel, the note offs, etc. Not that it leads too much but hey! At least it doesn't break -- I was expecting something to break when more than one instance was created, ha!
Also, each instance just uses between 0.50%-0.70% of CPU (says Renoise), just so you know. Let's see when I add the rest of the stuff!
I still haven't looked into compiling for Windows, but an anonymous reader has suggested me (via email) to use MinGW right under Linux. (I'll keep the reader anonymous unless he tells me otherwise!). I'll try that as soon as I finish converting the synth to an VSTi, I promise :)