Hey guys, I'm writing a user manual for some software I'm publishing. It's a software synthesizer design toolkit, for making your own software synthesizer in your programming language of choice. Of course, in order to make your own synthesizer, you must know how one works.
My goal in writing this user manual is not only to document my code, but also to teach how synthesizers actually work, so that anyone can make their own. That's where this post comes in. I need inspiration on what exactly it is people don't already know about them, and what all the hot topics are.
I'm happy to actually explain these things in the comments below!
Honestly, latency/performance stuff. As in: how do VST synths ensure that they'll synthesize in time to keep up with the audio buffer, depending on user hardware. I'm asking because I've seen/heard countless VST synths fail at this and sound like a clicky mess, and I feel like if I understood how it's handled in code it would make more sense to me.
I think immediately of libao for the C programming language. Imagine a while loop that completes itself at least 44100 times in a second. If the synth cannot write to the buffer that quickly, the sound card runs out of samples, and can't do anything, so it stops playing. Hence that clicky mess sound. This is for realtime synthesis though. If you can produce audio at your own pace, you have the opportunity to sound good every time.