![u he hive oversampling u he hive oversampling](https://s3-us-west-1.amazonaws.com/goldmidi/Sound+Design+Tutorials/Leads+Sound+Design/Leads+Essentials+Sound+Design+Vol.1/How+to+Make+a+Funky+Worm+Synth+in+Spire/How+to+Make+a+Funky+Worm+Synth+in+Spire_01+-+INIT.png)
However, there is another, easier solution.
![u he hive oversampling u he hive oversampling](https://i.ytimg.com/vi/QtlWHrDCk3U/maxresdefault.jpg)
The only way I know of to accomplish this is to use an Iteration module running at audio rate and merging the outputs with an audio signal in core. Let’s get started on some building! IMPLEMENTATION IN REAKTORīuilding a filter that works this way is not so hard in Reaktor, however, there is one problem – making a filter with a single output that sends out 4 values for every 1 value received is very inefficient in Reaktor. Hence, each input gets multiplied by each coefficient, in order, and sent to the output. Let’s take a look at the output of such a structure: Therefore, even though the filter has 4 taps, we only need to calculate one tap for each output. To calculate the output, we can actually ignore all of the zero-valued inputs since they do not contribute to the output in any way. At any given point in time, 3 of the 4 x values will be equal to zero. Where x is the input, y is the output, are a0-a3 are coefficients. If we take a zero-stuffed signal like the one we were discussing above:Īnd feed it into an FIR filter with 4 taps: The basic design of an FIR filter makes the insertion of zeros between each sample point very easy. Now let’s talk about how we can modify the filters designed in the previous tutorial to work as an oversampling, or polyphase, filter. This process is referred to as downsampling, or decimation. We can do this by simply discarding 3/4 of our output values from the second low pass filter. Therefore, we can again lowpass the signal to remove any frequency content above the original Nyquist.įinally, we need to get back to our original sampling rate. Using our example of oversampling by 4, our Nyquist limit is now 4 times higher than our original sampling rate can represent. Next, we can do any audio processing that we wish. This is known as upsampling, or interpolation. This signal is then sent through a low pass filter, after which any operations which require a higher sampling rater can be done. Now let’s assume we want to oversample by a factor of 4. For example, let’s say we have a signal with following input: The general concept works like this: to oversample, we insert zeros between each known sample point. By oversampling the input to this function, we can substantially reduce this aliasing, however. If the input has high enough frequency content, this function will cause aliasing, which will add some unwanted frequency content to our signal. A perfect example is in the use of saturation or distortion algorithms, which typically use non-linear functions to add harmonics to a signal. Generally, the purpose of oversampling is to reduce aliasing in a small part of a structure (for more on aliasing, please check our tutorial on the subject here).
U he hive oversampling series#
Our series on filter design can be found in it’s whole here, only the first few are relevant to this discussion. This tutorial also assumes basic knowledge of filters. First, we’ll cover the basics of oversampling. We’ll be expanding upon our work from last time to build a polyphase filter. This tutorial is the second in a series on techniques for oversampling in Reaktor.