Designing Software Synthesizer Plug-Ins in C++: For RackAFX, VST3, and Audio Units