DSP Engine: Convolution

DSP Engine: Convolution

Introduction

Convolution is part of the DSP Engine. For more information on accessing the DSP Engine, see here.

Convolution is a powerful signal processing technique commonly used for room correction, headphone listening, or surround processing.

When using convolution in Roon, the first step is to design a convolution filter. This is done using an external piece of software. Some examples of software that can generate convolution filters are Room EQ Wizard, Acourate, Audiolense, DRC, Rephase, FIR Creator, and EQuilibrium.

Loading a filter into Roon

Convolution filters are loaded using the Browse button:

Note that Roon does not yet support loading convolution filters from mobile devices. This must be done on a Mac or Windows computer.

Depending on the exact type of filter you have, the next steps vary slightly:

If you have a single impulse response file, typically in `.WAV` format:
  1. Browse to the .zip file and select it in Roon 
  2. Enjoy the music

If you have a set of impulse response files, one per sample rate or channel layout:
  1. Place all of the impulse response files in the same directory
  2. Create a `.zip` file from that directory
  3. Browse to the `.zip` file and select it in Roon
  4.  Enjoy the music
 If you use convolver-style `.cfg` files:
  1. Place all of the impulse response files and `.cfg` files in the same directory
  2. Open up each `.cfg` file and make sure that the filter paths inside are relative to the location of the `.cfg` file (see "Convolver text configuration support" for more details)
  3. Remove any `.cfg` files that simply contain a list of other `.cfg` files. Roon does not support these
  4. Create a `.zip` file from that directory
  5. Browse to the `.zip` file and select it in Roon
  6. Enjoy the music

 Technical Notes

Handling of Monaural impulse responses

If you provide a monaural impulse response file, it will apply to channels of the source material. If you provide an impulse response file with multiple channels, then they will be mapped onto the channels in the source material appropriately.

Sample rate and channel layout switching

If multiple impulse response files, or multiple `.cfg` files, are provided in the same `.zip` archive, then Roon will choose the closest match based on the channel layout and sample rate source material being played.

Filter resampling

If no filter is available that exactly matches the playback sample rate, Roon will resample the provided impulse response file to match.

You can avoid filter resampling by providing a separate filter for each sample rate. This can improve performance--both CPU performance and sonic performance--so you should try to provide a filter for each rate when possible.

You can also avoid filter resampling by configuring Roon to resample all content to the rate that matches your filter using [[ Sample Rate Conversion

Impulse Response File Formats

Roon supports the following impulse response file types:
  1. .flac
  2. .m4a (ALAC only)
  3. .aiff
  4. .wav
  5. .pcm (raw float 32 samples)
  6. .dbl (raw float64 samples)
Filters may use 16, 24, 32, or 64-bit samples. 64-bit samples are only supported for `.wav` and `.dbl` formats.

Implementation Details

Filters are applied using FFT Convolution and the overlap-add method. Like all of DSP Engine, Roon's Convolution engine uses 64-bit floating-point processing throughout. 

Convolver text configuration support

Roon supports the convolver text configuration format. Examples.

When using .cfg files with Roon, you must first place them in a .zip file along with the impulse response files that they reference, as described above. Roon does not support .cfg files that simply list out other .cfg files. If you have files that look like this, please do not include them in the .zip file:



Note that unlike convolver, Roon requires that you use relative paths when referring to impulse response files. This may require you to edit the files like this:



As of the 1.3 release, only a handful of users have used our convolution text file support during alpha testing. If you run into issues, please stop by our  community and let us know.


    • Related Articles

    • DSP Engine

      DSP Engine gives you tools that can create loud or potentially damaging sounds. Experiment at low volume levels until you are confident that things are alright. If in doubt, ask for help. Getting Started Each zone has its own, independently ...
    • DSP Engine: Headroom Management

      Introduction Headroom Management is part of the DSP Engine. For more information on accessing the DSP Engine, see here. Digital signal processing can result in "clipping", or audio samples that exceed the allowed range. These samples are "clipped" to ...
    • DSP Engine: Speaker Setup

      Speaker Setup is part of the DSP Engine. For more information on accessing the DSP Engine, see here. Speaker setup helps correct for inconsistencies in speaker placement or sensitivity. For example, if the speakers are not equal distances from the ...
    • DSP Engine: Accessing DSP Engine

      There are several ways to open the DSP Engine screen. From your volume controls: By right-clicking or long-pressing the current zone icon: From Signal Path: Using a keyboard shortcut: Windows: Ctrl-/ Mac: Command-/
    • DSP Engine: Procedural Equalizer

      The Procedural Equalizer is part of the DSP Engine. For more information on accessing the DSP Engine, see here. The procedural equalizer is used for advanced DSP configurations like digital crossovers, custom crossfeeds, and manual room correction. ...
    Visit the Roon Community!
    Need help? Thousands of Roon subscribers and audio enthusiasts are chatting over on our community site right now, join them! You don't even need a Roon subscription to sign up.