$0.00 0


In this tutorial, I'll continue building a formant filter in Reaktor. Last time, I laid out...

Reaktor Tutorials

Advanced Formant Filter in Reaktor, Part II

In this tutorial, I’ll continue building a formant filter in Reaktor.

Last time, I laid out how we can morph between vowel sounds when providing frequency and bandwidth data to our filter. This week, I’ll lay out the structure of the filter itself, first proposed by Dennis Klatt in this paper.


The diagram for the resonator filter looks like so:

Translating into Reaktor is a trivial task once you understand what each element of the diagram does. The Unit Delay boxes are building blocks available to Reaktor builders in both Primary (The Unit Delay module) and Core (the z^-1 macro). The circled boxes with letters A, B and C are multiplications (A,B and C being filter coefficients). Finally, the box with the addition symbol is simply a mixer, or an adder.

All in all, the basic Reaktor translation looks like this:

Our final formant filter will use five of these structures in a serial format. We still need to provide values for A, B and C. Klatt provides the following equations:

Where values F (Frequency) and BW (Bandwidth) are given by the structure. The Exp() function is another way of saying the numerical constant e (2.71828) raised to the power in the parantheses.

Hence, we can build the following structure to calculate these values:


As I mentioned in the previous tutorial, a very important feature of a formant filter is to be able to morph between vowel sounds, preferably using an XY module. To that end, I built a simple Core Cell with two tables that could morph between four different values.

The Cell contained six inputs. V1-v4 hold the index values for the vowel data to be read from the table. P1 and P2 control the morphing between values on the X-axis and Y-axis, respectively.

The formant information is stored in the tables such that the X-axis controls morphing between the vowels A, E, I, O and U in that order. So then the X-axis is set all the way to the left, the output will be the parameters for vowel A, and all the way to the right it will give the values for U. The Y-axis controls gender voicing.

We need 5 such structures, one for each formant in our filter. For the first formant, the table values given are from the ‘F1’ column in this chart . Filling the tables is tedious work, but gives a nice final product.

So now we need a way to provide this Cell with the inputs it needs. A basic setup might look something like this:

The XY module has a range of 0-4 on both axes. The outputs of the XY are stripped of their decimal values, which are used to control the position of the morph later on. The remaining integers are used to control the four points to morph between.

This structure could of course be improved in many ways. We should probably add some snap values to the output of the XY so the user can save and recall presets, I’ll leave that to the user as it should be easy enough. Receiving modulation inputs is also an important feature, but it will unfortunately have to wait for a future tutorial.


Okay, so we can connect the XY macro just shown to the inputs of our Core Cells controlling the parameter tables. The outputs of the Core Cells can then be used to calculate the coefficients of our resonator filter structures.

However, when the vowel position changes suddenly (say, by changing the position of the XY module), the resulting jump in coefficient values can sound very ugly. It is therefore necessary to use a smoother on the coefficients to prevent an unpleasant screeching sound whenever the position of the filter is changed.

The larger structure looks like this:


Okay, I know that was a lot to follow, so I’ve included an upload of today’s work as well.

Download here.

If there is interest we can continue to develop this filter.


Building in Reaktor for Beginners

ADSR Courses

Add to cart
SAVE 40%

Sequencer Modules in Reaktor

ADSR Courses

Add to cart
SAVE 40%

FFT (Fast Fourier Transform) with Reaktor

ADSR Courses

Add to cart
SAVE 40%

Reaktor Core Masterclass

ADSR Courses

Add to cart
Waveform Loaded
Waveform Played
Clear all
Create an account to use wishlists
Create an account to save tutorials
Follow your favourite labels, formats and genre's and ADSR will show what's new in those on your next visit.
  • Create product wishlist
  • Save your favorite tutorials
  • Regular discounts and exclusives
  • Never miss a sound! Follow your favorite labels.
Sign up to My ADSR to ensure you're ahead of the pack. Save your favorite content and be notified of new content. You'll never miss a thing!
Create your account now!
Sign up to My ADSR to ensure you're ahead of the pack. Save your favorite content and be notified of new content. You'll never miss a thing!
  • Get days all ADSR courses free
  • Create product wishlist
  • Save your favorite tutorials
  • Regular discounts and exclusives
Create your account now!
adsrsounds.com login Video streaming login
Remember me
Forgot your password?
Create your account

Send info
  1. Enter your email address
  2. Click "Send info"
  3. Check your inbox for an activation link
  4. Visit activation link and enter set new password
Sign in
Create your account
IMPORTANT: Is this product compatible with your system? Please check the product system requirements tab before purchasing. To proceed with this purchase you must check the box to confirm you have checked the requirements.

I have read the system requirements and agree to the return policy. I understand that refunds will not be given due to limitation of my software or operating system.

I don't agree
, you have loyalty credit available. To redeem click the button to claim !
Claim your free sounds

For every $5 you spend on ADSR receive 1 free credit for Sample Manager.

Even better, we have back-dated this so any purchases you made since 2017 have also been credited to your account!

Click the button below to claim your free credit.

Get my free credits
Loyalty credits
1Every purchase you make on ADSR* now earns you 1 loyalty credit for every $5 spent
2Once you make a purchase your credits are added to your account
3Credits can be redeemed in ADSR Sample Manager to download individual loops and samples
4To redeem simply download ADSR Sample Manager and/or log into Sample Manager with your ADSR login details
5Credits will have been automatically added to your account
6Loyalty credits expire 30 days after initial purchase
* Not including video subscriptions