SPHINX

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 “o-umlaut” or Danish “ae”. 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 activate another filter with that rate. It is the intention that you have only one filter with a given rate in a bank.

Attenuation

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 which 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. That could 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. If you only use ConvoFS for FLAC to DSD upsampling, set this parameter to 0 or a few dB.
  • PreDRC attenuation: You can use this parameter to attenuate the input signal by some dB before feeding it to brutefir. This attenuation is useful 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/DSD. It is mostly useful to avoid the DSD upsampler clipping.

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 http://www.soundonsound.com/techniques/processing-stereo-audio-file for technical information. Playing back M/S encoded audio requires dedicated hardware in the analog path. An example is the products listed on http://www.audiovero.de/en/acouratecleaner.php. 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 http://frankl.luebecknet.de/stereoutils/loco.html. 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 to is to let your music server do a re-index, so it discovers the LoCoTest folder. After that, let 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.

LoCoTest w/ConvoFS for Linux

Running FrankL’s LoCoTest with ConvoFS on Linux machines takes a little work which has been taken care of in the Synology distribution. First, download the script locotest.perl from the ConvoFS download site. Place it somewhere, e.g. in the ConvoFS source directory. Make it executable (chmod a+rx locotest.perl). Replace the locotest/playcmd script in the unpacked LoCoTest directory with (you’ll have to change the paths according to where you’ve installed ConvoFS):

#!/bin/sh
/ConvoFS-2.3.0/locotest.perl /ConvoFS-data/LoCoTest/LoCoTest.flac

and run

mkdir /ConvoFS-data/LoCoTest
sox -nr 44100 -t raw -c 2  -e floating-point -b 32 - synth 30 sine 440 vol -45 dB | /ConvoFS-2.3.0/locotest.perl /ConvoFS-data/LoCoTest/LoCoTest.flac x

Then fetch the patch file ‘locotest.c.diff’ from the download site and - using the ‘patch’ program or manually - apply it to the locotest.c program in the LoCoTest distribution. Compile it as shown at the beginning of the locotest.c file.

Start the LoCoTest service using the ‘start’ script and proceed according to the instructions in the preceding section and LoCoTest documentation.

Polarity/Phase

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

FLAC(PCM) to DSD upsampling is becoming an increasingly hot topic. As ‘Mansr’, a Computer Audiophile forum user has made a fork of the SoX audio processing program which provides this mode, ConvoFS supports it. The way it works is that you from the maintenance tab select whether to enable DSD64, DSD128 or DSD256 upsampling. The upsampled files appear under three virtual catalog trees – ‘dsd64’, ‘dsd128’ and ‘dsd256’ under the top level of the ConvoFS mount. You can even decide to hide your FLAC files. The upsampled music appear as ‘.dsf’ files.

After having selected the upsampling levels you want to explore, you have to let your music server re-index your collection. To help you distinguish between the up to 3 new versions of each music file, ConvoFS modifies the metadata appending ‘ - DSDxxx’ to upsampled album and track titles.

Limitations: This current releases of ConvoFS does due to internal issues only support DSD upsampling of 44.1 kHz FLAC files. The limitation may be lifted in a later release. Another thing is that not all DSD DACs/streamers support non-44.1kHz based DSD upsampling. DSD upsampling is very computing intensive, and your system may not be able to support all/any upsampling modes. You won’t be in doubt if this is the situation. Combining DSD upsampling and DRC: this is supported – room correction is be applied on the PCM data before DSD upsampling is performed.

DSD upsampling is currently not enabled in the Synology package builds. That’s because I’ve not yet compiled a ‘Mansr’-modified Sox version for Synology and - sadly - because most Synology boxes have to limited processing power to perform DSD upsampling.

CAVEAT - PLEASE READ If you use DSD upsampling, please proceed with care and start listening to low volumes for some time: some streamer/DAC combinations are prone to making unpleasant bangs/other artifacts if suffering buffer underflows due to not being fed fast enough with DSD data. Due to the nature of ConvoFS, this may happen occasionally. The syndrome may be caused by the DAC reverting from ‘DoP’ mode to PCM mode. The risk/frequency of the problems also depends on the rate of DSD upsampling and the speed of your computer – DSD256 is harder than DSD128/DSD64. Aggressive convolving, default enabled with DSD, drastically reduces the frequency. You are also advised to increase the cache size to e.g. 3 gigabytes to allow for caching the convolved data.

Caching and aggressive convolving

ConvoFS makes extensive use of ‘caching’. If this word is unfamiliar to you, refer to here for an introduction. 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. 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.

In the admin tab, there’s 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 have an influence on 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.

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.

When playing DSD upsampled music, aggressive convolving is always active regardless of what the interface says.