Analog synthesizers have been constantly popular since their spread in the 60s and 70s. However, the manufacturers no longer produce these models, thus there is a need to emulate classic sounds and implement these musical instruments as a cheap computer software. Many of the most popular types of such software use the Virtual Studio Technology, or VST.
In the course of my thesis such an analog synthesizer has been made in VST environment. The instrument is based on subtractive synthesis, which consists in the filtering of a signal having a wide spectrum. The thesis discusses the internal units (the signal generator oscillator, the filter, the pre-amplifier, and the oscillator for modulation) and their digital implementations.
The trivial solution of the signal generation leads to aliasing. There are various algorithms which reduce the problem. In the thesis the Differentiated Parabolic Waveform and Polynomial Transition Regions are studied. These methods are based on differentiating the polynomial functions of the waveform, leading to reduced aliasing and better sound quality.
Both algorithms have been extended to produce triangle signals with variable duty cycle. Each step of the signal-generation has been defined on the basis of the original methods. DPW turned out to be sensitive to the sudden change of the duty cycle, while PTR can be used without restriction. Further comparsion pointed out that PTR is more cost-effective, hence this algorithm was implemented in the software synthesizer.
The digital filter is based on the classic Moog filter. Modulating the cutoff frequency of the implemented filter leads to negligible transients. The amplifier is controlled by an ADSR envelope generator.
Following the simulations in MATLAB, the synthesizer has been implemented as VST, written in C++ language with the help of the Steinberg VST SDK.