portfolio

ARCHIE HAZELL

This is another plugin created for my final year portfolio project. It is a reverberator loosely based on the design by Schroder but has been thoroughly extended to perform and sound better. I have always really enjoyed creating reverbs and experimenting with how they work, so for this project I wanted to make a reverb that is:

  • Easy To Use
  • Sounds Great

While Schroeder’s design used four Comb Filters and two All Pass Filters mine uses seven Comb filters and Four all pass filters per channel.

By using a larger comb filter bank there is more diffusion, making the reverb sound more ‘real’, and by using more all pass filters the density of the reverb increases. A win-win!

On top these additions I have also added a feature called Total Delay Compensation (TDC). This feature delays the non processed input sample so it is played at the same time the reverb arrives.

By enabling this feature the reverb is still heard but the clarity of the input transients is still preserved.

Thus presenting VERB.

Block Diagram

Comb Block

The main component of this reverb is the block of Comb Filters in parallel.

This part took the longest time to sound right. If the delay time for any of the filters is wrong the result is a horrible ringing sound. This is great if you want a ring mod but not so much for a reverb.

I used prime numbers as the delay times to ensure no commonality between the filters and this resolved the issue.

You may also notice that I only used 3 more combs than in Schroder’s reverberator. This was purely down to personal preference. I tried up to 10 comb filters and no tangible improvement was found so for the purposes of efficiency and performance 7 filters were used.

To further increase efficiency and clean up my code, all filter components were moved into classes.

Without using classes the code was hard to read, confusing and it was easier to make mistakes

In contrast, with classes the code was easier to write, easier to debug, easier to read and resulted in fewer overall lines (which is always a good thing)

This design of organising everything in classes remained a constant throughout my programming. This also allowed me to build a repo of common elements that could be imported into my plugins. For example, rather than having to remember how to implement an All Pass Filter when I needed one I could just call the class I wrote earlier to do all the heavy lifting for me , while only needing me to tell the filter what to calculate.

Total Delay Compensation

This feature came about due to the drum sample that I used to test this plugin. I found it annoying that there was a delay between the input sample being heard and the reverb ‘replying’ … so I fixed it.

This feature calculates the average amount of delay the left and right channels have. Below is the delay for the left side being calculated.

This is then used to define the length of a Digital Delay Line (DDL) that stores the input sample until the delay has been completed.

Examples

Test 1 – TDC vs non-TDC

EVERLONG – With TDC

EVERLONG – Without TDC

EVERLONG – Dry


Test 2 – Reverb Examples

IF I GET HIGH – WET

IF I GET HIGH – DRY

GOOFIN – WET

GOOFIN – DRY

DOWNLOADS

VST3: GitHub Link

AUv2: GitHub Link

SOURCE: GitHub Link

Due to macOS’s security policy, the VST3 version of the plugin is blocked. This means on macOS only the AU Version of the plugin is allowed to run.

However when both Logic and Ableton are scanning the plugins you need to manually allow the plugin to run through “System Settings” -> “Privacy & Security” and then allow.

Logic also requires the track to be in stereo mode for the plugin to appear in the effects list.

SYSTEM REQUIREMENTS

Supported Formats: VST3, AUv2

Supported Operating Systems: macOS, Windows, Linux