1 week ago

#

**1****VA for Electronic Gearslutz**

With the release of the new Rolands, I've noticed there's a lot of misunderstanding about what VA is, how it works, terminology, etc. So, I hope to explain it well enough that we can all at least argue with a common understanding of the terminology.

Analog Modeling: this is just fancy talk for a very complex, CPU-expensive algorithm that

Sample: an unfortunately very loaded term. It can mean:

1. An input captured by a microphone, digitized, and stored.

2. Any data file that contains a digitized sound, regardless of its source. Some samples can be generated by the CPU according to an algorithm.

3. A single data value amongst a stream of data values given by 1 or 2 above.

Every time I use this term, I will follow it by its number.

Oscillator: in the digital world, it's a stream of samples(3) from a sample(2) that describe digitally the shape of the wave normally created in circuitry.

Band-limited: an oscillator is band-limited when all frequencies higher than the audible range are removed. This can be done by building the wave up from so many generated sine waves, or by building bleps through an algorithm that removes unwanted frequencies from a pure waveform. There are other ways, but I just give these as common examples.

Interpolation: this is used when transposing samples for playback. There are a number of methods, from the worst--linear to one of the best--sinc. Linear just takes two samples and finds a mid-point. Sinc takes several samples to find a curve to match and then finds the needed point on that curve. Sinc sounds extremely good, but can be very CPU expensive.

There are basically only two parts of a synth that need modeling: the oscillators and the filters. All the rest can be modeled, but they are not as important to the overall sound, so I am shamelessly ignoring them.

Back to oscillators: there are two ways of generating them.

One, read a sample(3) from a sample(2) and interpolate as needed if you don't have a sample(2) at the correct frequency. The CPU cost is purely dependent upon the interpolation method used. For single-cycle waveforms, it's very cheap, in both CPU and memory, to just pre-calculate each frequency needed and put them into a lookup table. Then, no interpolation is necessary.

Two: calculate the sample(3) on-the-fly. Depending on the algorithm used, this can be quite expensive in terms of CPU. Pre-calculated lookup tables for sin, cos, tan, atan, etc. can alleviate a lot of that pain.

Back to filters: filters must necessarily be calculated on-the-fly since they do not know what their input will ever be. So, there are dozens of filter models out there. Some are purely mathematical in their creation and are very CPU-cheap to use. Modeled filters tend to be very CPU-expensive. Diva is the spendy one. Arturia filters are the cheaper ones, probably by simplifying the algorithms for speed; however, the edge cases (extreme values) may not sound as good as U-he's models.

Finally, there are anti-aliasing filters that can be applied, all of varying efficacy vs. CPU-expense. These are usually applied to an oversampled signal at the very end before the data goes out to the effects and can be used in addition to or in lieu of band-limited oscillators.

I hope this helps. Don't be fooled by marketing buzzword hype! Basically, VAs, like VSTis, are all 1s and 0s and are either read from a pre-calculated table or they are generated on the fly.

Let me know if you have any questions, or see any egregious errors.

Analog Modeling: this is just fancy talk for a very complex, CPU-expensive algorithm that

*can*take an input and does give an output. It looks at each component of a circuit for its behavior and then describes it mathematically. By combining all these equations, you get a full model.Sample: an unfortunately very loaded term. It can mean:

1. An input captured by a microphone, digitized, and stored.

2. Any data file that contains a digitized sound, regardless of its source. Some samples can be generated by the CPU according to an algorithm.

3. A single data value amongst a stream of data values given by 1 or 2 above.

Every time I use this term, I will follow it by its number.

Oscillator: in the digital world, it's a stream of samples(3) from a sample(2) that describe digitally the shape of the wave normally created in circuitry.

Band-limited: an oscillator is band-limited when all frequencies higher than the audible range are removed. This can be done by building the wave up from so many generated sine waves, or by building bleps through an algorithm that removes unwanted frequencies from a pure waveform. There are other ways, but I just give these as common examples.

Interpolation: this is used when transposing samples for playback. There are a number of methods, from the worst--linear to one of the best--sinc. Linear just takes two samples and finds a mid-point. Sinc takes several samples to find a curve to match and then finds the needed point on that curve. Sinc sounds extremely good, but can be very CPU expensive.

There are basically only two parts of a synth that need modeling: the oscillators and the filters. All the rest can be modeled, but they are not as important to the overall sound, so I am shamelessly ignoring them.

Back to oscillators: there are two ways of generating them.

One, read a sample(3) from a sample(2) and interpolate as needed if you don't have a sample(2) at the correct frequency. The CPU cost is purely dependent upon the interpolation method used. For single-cycle waveforms, it's very cheap, in both CPU and memory, to just pre-calculate each frequency needed and put them into a lookup table. Then, no interpolation is necessary.

Two: calculate the sample(3) on-the-fly. Depending on the algorithm used, this can be quite expensive in terms of CPU. Pre-calculated lookup tables for sin, cos, tan, atan, etc. can alleviate a lot of that pain.

Back to filters: filters must necessarily be calculated on-the-fly since they do not know what their input will ever be. So, there are dozens of filter models out there. Some are purely mathematical in their creation and are very CPU-cheap to use. Modeled filters tend to be very CPU-expensive. Diva is the spendy one. Arturia filters are the cheaper ones, probably by simplifying the algorithms for speed; however, the edge cases (extreme values) may not sound as good as U-he's models.

Finally, there are anti-aliasing filters that can be applied, all of varying efficacy vs. CPU-expense. These are usually applied to an oversampled signal at the very end before the data goes out to the effects and can be used in addition to or in lieu of band-limited oscillators.

I hope this helps. Don't be fooled by marketing buzzword hype! Basically, VAs, like VSTis, are all 1s and 0s and are either read from a pre-calculated table or they are generated on the fly.

Let me know if you have any questions, or see any egregious errors.

*Last edited by syntonica; 1 week ago at 12:47 AM..*