General concepts

This section introduces some concepts that are either general for DRC or ConvoFS specific.

Filter banks

You need to create at least one bank to upload filters into. Bank names - as well as filter names, can be of arbitrary length and also contain national characters like the German “ö” or Danish “æ”. For technical reasons, ConvoFS will silent strip any leading/ending whitespaces. Filter names are not required to be unique across banks. When requested to process a FLAC file, ConvoFS detects the sample rate and look in the currently active bank for an active filter with that rate. If none is found, it processes the file as if in NonDRC mode. When you activate a bank, ConvoFS activates all filters in the bank. If more filters with a given rate are present in a bank, ConvoFS only activates one of them. If this is not the one you intend, you can enable another filter with that rate. It is the intention that you have only one filter with a given rate in a bank.

Filter format(s)

ConvoFS requires filters to be in 64bit floating point format. The far easiest approach is to have your filter generation program save them in stereo WAV format. This format contain a ‘header’ which ConvoFS can read and use.

If the program only supports saving in header-less, mono format (e.g. with extension .dbl), you may pack them in a ZIP archive per filer and upload that to ConvoFS. ConvoFS will try to deduct the sample rate from the file name. The lexical order of the filter file names determine the channel mapping. A ZIP file will with two .dbl files: filterL96.dbl and filterR96.dbl should e.g. work for uploading a 96 khz filter.

Whatever method you use: (especially in case the latter one) do turn down volume when using the filter for the first time. Should be the filter be garbage, you will hear white noise in your loud speakers which could be a bad thing for the tweeters.


You can configure various attenuation levels that apply to the music files that ConvoFS presents. They can be defined/adjusted in two places of the web GUI. First default levels are applied to every new bank, you define. Secondly, after having defined a bank, you may activate it and adjust the attenuation levels to suit the filters in that bank.

The three attenuation parameters are:

  • NonDRC attenuation: Typically, DRC filters attenuate the processed sound to avoid digital clipping because some frequencies are amplified. This can e.g. be with 6-10 dB. To match this, ConvoFS applies a “NonDRC attenuation” by your choice when convolving is disabled. The purpose for this is to allow for comparing your music system with and without room correction. It also acts as protection against overly high playback volume if amplifier volume is not turned down before disabling DRC.
  • PreDRC attenuation: You can use this parameter to attenuate the input signal by some dB before feeding it to brutefir. This attenuation is used to prevent digital clipping with, e.g. overly loud mastered music.
  • PostDRC attenuation: As the name says, it is applied after DRC and before conversion to FLAC.

ConvoFS modes

  • DRC mode: You’ll probably spend the most time in here. ConvoFS transparently convolves the music files that are accessed, applying the active filter with the proper sampling rate in the active bank.
  • NonDRC mode: Convolving is disabled, and the NonDRC attenuation is applied. Useful when using headphones or when comparing convolving versus non-convolving.
  • Index mode: Special mode intended for use while indexing with music servers which profit from special optimizations. DRC is disabled, and no attenuation is applied. Furthermore, the first and last second of each track is rendered as a low-volume 440 Hz tone. Consequently, Index mode is unsuited for general listening. The web interface uses red letters to inform you that ConvoFS is in Index mode. You select this mode under the maintenance window.

M/S encoding

M/S encoding is a special way of reencoding stereo files. Refer to for technical information. Playing back M/S encoded audio requires dedicated hardware in the analog path. An example is the products listed on Otherwise, it will sound strange. ConvoFS supports M/S encoding; please select it from the maintenance pages.

LoCo encoding

LoCo stand for “localisation correction” and is described on ConvoFS supports LoCo encoding; please select it from the maintenance pages. N.B.: Please use at least ConvoFS 2.1.4 if you’re interested in using Loco encoding – the implementation in earlier releases is badly broken.

LoCoTest support

ConvoFS 2.3.0 and later includes support for Frankl’s “LoCoTest” program which can be used to generate your own LoCo filters. You can find more info on his stereo pages; please use the URL in the preceding section. Please note that describing LoCo and LoCoTest in detail is outside the scope of the ConvoFS documentation.

You’ll have to enable LoCoTest on the maintenance page and restart ConvoFS. In the Synology distribution, ConvoFS will - after coming up, in the background install the prerequisites for running LoCoTest. The web interface informs using red text that this is going on. Depending on the speed of your Internet connection and your NAS, it may take a couple of minutes. When this text disappears (reload the front page), LoCoTest should be running on port 4444 on your NAS (i.e., you should change ‘8999’ to ‘4444’ in the ConvoFS admin URL).

When enabling LoCoTest, a virtual catalog ‘LoCoTest’ appears under the ConvoFS mount point. The catalog/folder contains 12 FLAC files of 14 seconds each. Initially, they hold low-volume 440Hz test tones, but when you use LoCoTest to generate other tones, the 12 files change content instantly.

What you need to do is to let your music server do a re-index, so it discovers the LoCoTest folder. After that, make your music player play the folder/pseudo album on repeat. Whenever you perform an operation in the LoCoTest program, proceed to the next track in the playlist. E.g., using the remote. On some streamers, you may due to read-ahead caching have to do it twice.

This approach may seem a bit cumbersome, but to my best knowledge, it is one of the better ways to implement the functionality of the stand-alone LoCoTest program inside ConvoFS.

The LoCoTest sound files are mainstreamed through the ConvoFS processing logic meaning that if you have DRC enabled, the sound will be convolved. When running LoCoTest, do disable LoCo in the ConvoFS web interface.

Caveat: LoCoTest defaults to 7 seconds for moving from left to right or back. Changing this value when running under ConvoFS is not supported/recommended.


Experience shows that some DRC filters/recordings can benefit from flipping polarity - i.e., the phase. ConvoFS supports this. Also, you can specify reverse phase where ConvoFS flips the phase of one channel only. The GUI warns about this as it is hopefully not the optimal setting. If it is, you should double check the cabling of your loudspeakers.


Resampling to WAV: only available after release 3.2.0

ConvoFS allows for resampling, i.e., changing the audio sample frequency/encoding. Resampling is done after the audio has passed through the processing pipelines - just before conversion to FLAC/WAV format. Resampling thus also supports room correction (convolving), LoCo, etc.

Resampling is done using the ffmpeg program with libsoxr support enabled.

The way resampling in ConvoFS works is that you from the resampling tab select the sample rates/formats to resample to. The upsampled files appear under extra, virtual catalog trees – ‘wav_xxx’ and ‘flac_xxx’ under the top level of the ConvoFS mount. You may also select that non-resampled files should appear under another folder structure ‘originals’.

After having selected the upsampling levels you want to explore, you may have to let your music server re-index the ConvoFS mount point.

If you selected WAV as a resample target, please put ConvoFS into Index mode while indexing and while your control App updates its database. Otherwise, the two processes will last forever because partial convolution is triggered when metadata is read from the files. The ConvoFS optimization which makes this work-around irrelevant when using Minimserver, does not work with WAV.

Here’s a screenshot of an example ConvoFS 3.x resampling setup screen:


The way this configuration works is that the media server will see the following versions of a given music file:

  • Any file from the music source will be accessible as a FLAC file under ‘flac_XXX’ where XXX is the sampling rate.
  • Source files with 44.100 and 48.000 khz sample rate can in addition be accessed in WAV format under ‘flac_176400’.

Finally, you can enable a special “16-bit” mode. When you select this, a new top-level catalog tree ‘flac_16bit’ appears. It will contain 16 bit 44.1 or 48 kHz versions of all your music. This mode is to be used for streamers / DACs that only support lower rates. )t could (unverified) mean that ConvoFS supports Sonos sound systems.

Caching and aggressive convolving

General caching concepts

ConvoFS makes extensive use of ‘caching’. In short words, it tries to anticipate what your player will access next, and pre convolves it so that you won’t risk a multi-second pause.

Caching in ConvoFS 1.x/2.x:

The data is stored on disk. When the cache runs full, ConvoFS begins deleting old content. You set the maximum size of the cache in the maintenance functions tab. The default cache size in fresh installations is quite small: 1 gigabyte. That’s is large enough not to cause any operational problems.

Caching in ConvoFS 3.x

The cache in ConvoFS 3.x is entirely memory(RAM) based meaning that on Synology NAS boxes, it is quite small. On Linux machines with multi-gigabyte RAM, it can grow large. ConvoFS will dynamically change the max cache size. This size is based on a ‘memory pressure’ concept which expresses how much memory is in use on the NAS box / Linux machine. The cache will be allowed to grow until the system memory pressure hits the allowed limit. ConvoFS will monitor the memory pressure level and prune cache elements to reduce it, should other processes on the machine use more memory. Using the web interface, you can configure the maximum acceptable memory pressure. It defaults to 60%. In the stats/metrics tab, you can see the current cache usage and memory pressure.

More caching info

The cache data is broken into parts of some megabytes each. The parts are tagged with the ‘configuration footprint’. Those footprints are a checksum of your filter/LoCO/MS encoding/attenuation parameters. If the configuration footprint changes because you change the setup using the web interface, ConvoFS disregards the contents of the cache and start convolving again. If you revert the configuration change, it begins using old cache content again if it’s still present.

Aggressive convolving

In the admin tab, there’s also a button which can enable/disable ‘aggressive convolving’. New in ConvoFS 2.1.0 - it will make ConvoFS race ahead, convolving until the end of a track is reached. It kicks in after a second or two of music data has been read. The convolved data are stored in the cache. If you enable aggressive caching, consider raising the maximum cache size to e.g. 3 gigabytes. The rationale behind aggressive caching is that the activities incurred by ConvoFS on your computer/NAS may influence the sound quality. As soon as ConvoFS has convolved&cached the entire track, it will use minimal resources until the track has been read to the end.