Virtual Analog Synthesizer - Detailed Description
My virtual analog synthesizer can work in three basic modes:
Classical synthesis (waveform generator) with subtractive filtering - the base signal is generated by a shape waveform generator (e.g., sine, rectangular, saw, ...). Filtration is performed by digital filters that modify the signal and change its frequency composition (color). Such a method of sound generation is implemented on most analog synthesizers.
Additive synthesis with subtractive filtering - the base signal is generated by summing up harmonic components - sines.
Properly adjusting the volume of the harmonic components makes it possible to generate an almost identical signal as the signal from the shape waveform generator.
This mode is computationally difficult and therefore it is possible to determine how many harmonic components to count (parameter "Harmonic count").
With fewer harmonic components, there is a lack of sound at high frequency.
Unlike the previous mode, however, it has one advantage - it is possible to vary the frequencies of the individual harmonic components (use e.g. when creating "ringing" or "metallic" sound).
Additive synthesis with additive filtering - signal generation works similarly to the previous mode - the signal is generated by summing up harmonic components - sines.
However, filtering works differently - it does not process any resulting signal but instead determines the volume (i.e. amplitude) of the individual harmonic components.
The amplitude of the particular harmonic component therefore depends on the selected spectrum (e.g. the saw waveform) and the value given by the filter for this harmonic component.
The resulting signal is not filtered anymore.
In the following description, it will be mentioned in which of these modes the description is concerned. However, some parts of the description are common to all three modes.
The following block diagrams illustrate the connection of synthesizer modules and other modules.
Block diagram of the synthesizer in additive synthesis mode and subtractive or additive filtering (modes ):
The frequency of the tone is created by a main oscillator, whose task is to determine the frequency based on the played tone, portamento, vibrato, oscillator envelope and so on.
Controllers serve to control parameters of the synthesizer, the arpegger and the drum-machine either by special rotary knobs on the screen or by controlers via MIDI. To each controller can be assigned one of the control component (for example, the volume pedal, the joystick on the keyboard, etc.) and parameter of the synthesizer, the arpeggiator or the drum machine, which should be controlled. You can also set the range of the controlled parameter and slow the change.
My virtual analog synthesizer can work either in 1-layer mode or in 2-layer mode.
A layer is a block that produces the sound given by its complete set-up
In 2-layer mode, such blocks are two, and therefore when the tone is played, sound is produced that is the sum of two independent layers.
So the sound of each layer can be completely different.
The layers are independent of each other (except for the ability to synchronize layer 1 oscillator according to layer 2 oscillator).
Only the input is common (i.e. commands from keyboard, MIDI, NetSound, arpeggiator or controller) and the output is summed up and brought to the effect module.
It should be mentioned that the number of layers is different from the number of sounds at once - polyphony. If polyphony is 4, at least 4 voices can be heard (but the setting is the same). However, each voice may contain one or two layers.
If the synthesizer is in 2-layer mode, the resulting signal can be obtained in two ways from single layer signals:
The oscillator module consists of one (classical synthesis with subtractive filtering ) or of two parts (modes of additive synthesis ):
Generator of the pitch of the basic harmonic component is illustrated in the following figure:
The main output of this module is in the picture called "Oscillator pitch" and it also includes vibrato. On the other hand, the output called "Frequency of tone" does not include vibrato and serves to control some other modules (e.g. filters or VDA modulation), where a parameter depends on the pitch of the played tone.
In this module there is a "BEI" evelope generator (BEI = Begin-End-Interval) having the following structure:
In the figure, various transition profiles between the start and end values are color-coded.
Generator of the pitch of other harmonic components and module of the harmonic oscillators illustrate following two figures (only in modes ):
This figure shows a mode of parametric shift of higher harmonics - the pitch of other harmonics is determined by a certain mathematical calculation.
It should be noted that all "BEI" envelope generators have a common time interval parameter.
In this mode, the pitch of each harmonic component can be set separately.
Spectrum generator ()
The task of this module is to produce the resulting signal from the harmonic oscillator signals. The amplitude of all harmonic components from the harmonic oscillators is the same, and a simple addition of these signals would not produce a reasonable result signal. Therefore, the amplitude of the individual harmonic components needs to be suitably adjusted, and it is possible to simulate the spectrum of known shape signals (saw, triangle, rectangle, etc.) This makes the spectrum generator module:
In addition to the spectrum of basic known signal shapes, it is also possible to select a user spectrum in which it is possible to set the amplitude of each individual harmonic component. There is also a random spectrum - this is always generated when the envelope is started.
One of the most important parts of an analog synthesizer are filters. The synthesizer works with up to three independent filters that can be combined either in parallel, serial or one of two serial-parallel combination (see figure):
Block diagram of one filter in modes :
Block diagram of one filter in mode :
The filter works with basic parameters:
Filter envelope modules (envelope A, B, and C) are common to all 3 filters, but each filter has one of the envelopes to choose from and also the intensity and polarity of the selected envelope.
It is also possible to choose the shape of the rising and falling edge - it can be either linear or exponential. It is possible to set the dependence of some envelope parameters on the key velocity value.
In the case of modes and it is possible to switch each filter to a "double" mode - in which case the filter core will be as two identical filter cores connected in serial:
Simple filter has a 12dB/octave slope, double filter has a 24dB/octave slope.
Parameter "Cutoff" (center frequency) can change even so-called. modifiers:
This module is common to all 3 filters. The "Apply select" block allows you to link the specified modifier to filters or the pulse width parameter (only in mode and when Pulse shape is selected). Three modifiers are available:
Note: starting envelopes may not be the same as the starting of a tone - in the case of a legato when a new tone starts but the envelopes do not restart.
Modes of filtering
Filtering in this virtual analog synthesizer can work in two completely different modes:
These two modes need to be more explained.
Mode of subtractive filtering - filters are actually blocks into which the signal enters and the filtered signal outputs.
Filtering in this mode means that something is being removed from the signal - of which the name "subtractive" filtering.
Filter principle in subtraction filtering in mode :
Mode of additive filtering works by computing the frequency spectrum of the filter combination as a set of values (one value for one harmonic component).
These values are multiplied by the amplitudes of harmonic oscillators (similar to what the spectrum generator does).
Apart from the difference in the principle of the filters in these two modes, the difference is also in the options. Each has its advantages and disadvantages:
VDA (Variable-Digital-Amplifier) is the signal amplitude processing module. Immediate amplitude is determined as follows:
The modules of "BEI" envelopes, the stepping random generator, and the shape signal generator are the same as for filter modifiers.
In the case of the shape signal generator, it is possible to set the modulation method:
"ADSR" envelope module (Attack-Decay-Sustain-Release) is illustrated in the following figure:
The rising edge is always linear and the declining edge is always exponential. Additionally, it is possible to set the envelope intensity as well as the dependence of this intensity on the key velocity. It is also possible to adjust the dependence of some other "ADSR" envelope parameters on the key velocity.
The effect module modifies the signal by effects such as an tube distortion, chorus or flanger and echo.
In addition, at this point a stereo signal is generated from the mono signal.
|Copyright © 2009-2021 Ing. Radovan Konečný - radkon. All rights reserved.|