$0.00 0

YOUR CART
Checkout

SUBTOTAL
DISCOUNT
VAT
TOTAL
Checkout
Banner
In this tutorial series, I'll explain how reverb works and start to create a reverb macro...

In this tutorial series, I’ll explain how reverb works and start to create a reverb macro in Reaktor. Many of the basic, freely available reverb algorithms require the creation of custom filter types, and as such, readers of this series are expected to be familiar with at least the first few tutorials in our series on filter design in Reaktor.

I will warn you in advance that designing and implementing high-quality reverb algorithms is not easy. The algorithms we will be starting with are old, and have several flaws. Nonetheless, I think it is an important starting point for learning, if you are interested in designing custom reverbs.

WHAT IS REVERB?

Let’s first get a simple understanding of the real-world effect we are trying to mimic. Reverb is easiest to hear and understand in the context of enclosed spaces. Imagine you snap your fingers from the center of a small room. Sound waves emanating from your fingers will travel in all directions until they hit a wall or another barrier.

When a sound wave reflects off of a surface, some of it’s energy is absorbed, depending on the type of material the surface is made of. Soft materials aborb more of a signal than harder materials, and more of the high frequencies in particular.

The first few milliseconds after a sound is made, very few, if any, echoes are arriving at the ears of the listener. This time period is often implemented in reverbs as a “Pre-delay” knob. How long the echoes take, and their density (the frequency of their arrival) is dictated by the position of the sound source, the position of the listener, and the size and shape of the room.

It is tempting to simply calculate the time it would take for individual echoes to reach the ears of the listener, implement delay lines for each, and simply add all of the echoes together. This technique is called raytracing, and it is also an early 3D graphics technology, I believe it was used in the original Wolfenstein.

However, in practice, this is far more expensive for audio than it it is for visual data, and it is not really worth the amount of CPU this method would require.

SCHROEDER REVERBS

The earliest attempts at creating artificial reverb that I know of were made by Manfred Schroeder, almost 50 years ago. A fantastic resource on these can be found here, by Julius O. Smith. I’ll be working off of this page for the remainder of this tutorial.

Let’s take a look at implementing the three components that make up this graph (the All Pass filters, the Feedback Comb Filters (FBFCs), and the Mixing Matrix. Let’s start with the All Pass filter. Smith provides the following image:

Here, M1, M2 and M3 are delay times, in samples, and ‘g’ is generally considered to 0.7. Notice that this picture really is a single struture repeated three times. Let’s simply implement one of these and copy it three times.

This is not so hard to implement. I used a System Info module to help translate the ‘M’ input (which is in samples) to milliseconds, which the Single Delay module takes as an input.

If I understand correctly, this all pass filter functions as a sort of frequency-dependant delay.

Looking at the transfer function of the Feedback Comb Filters, we can see that they are essentially the same structure as the all pass filter, with the feedforward section removed. This is a simple edit:

The only thing left to implement is the mixing matrix. The All Pass filers and the FBFCs can be wired up like so to match the diagram from Smith’s page:

And finally, adding in the mixer, which Smith notes can be reduced to 4 adds and 2 negations:

I’m not sure exactly why the structure has four outputs, but I tried a few combinations of choosing two of the four to be the left and right outputs. Some work better than others – using a negative version of a signal as one output and the positive version as the other seems to be the worst combination. I have also found that the input or output should be attenuated to eliminate bad distortion. It is also possible I’ve made an error somewhere causing this problem.

CONCLUSION

Today we covered a very basic reverb unit. It lacks many things, most of all, any form of tweakability for the user – there are no knobs! Nonetheless, the basic idea of reverb has been stated and a simple implementation shown. In the coming tutorials, I’ll find some more advanced algorithms to implement.

RELATED COURSES

Building in Reaktor for Beginners

ADSR Courses

Add to cart

Sequencer Modules in Reaktor

ADSR Courses

Add to cart

FFT (Fast Fourier Transform) with Reaktor

ADSR Courses

Add to cart

Reaktor Core Masterclass

ADSR Courses

Add to cart
Waveform Loaded
Waveform Played
×
PLAYLIST
Clear all
WISHLISTS
Create an account to use wishlists
×
SAVE TUTORIALS
Create an account to save tutorials
×
FOLLOW YOUR FAVORITES
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!
CREATE ACCOUNT
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!
SIGN IN
adsrsounds.com login Video streaming login
Remember me
Forgot your password?
DON'T HAVE AN ADSR ACCOUNT?
Create your account
FORGOT PASSWORD

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
DON'T HAVE AN ADSR ACCOUNT?
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
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