Getting, Installing and configuringConvoProxy

Note (important): The docker-based installers use container (Docker) technology and install ConvoProxy in a shielded environment inside your box. It downloads and installs some hundred megabytes of supporting programs into this environment as part of this process. This process can take up to 10-15 minutes the first time it runs, and the hard disk on the NAS will be busy. When installing ConvoProxy updates, things will go much faster.

The ‘native’ installers offer a much faster installation process.

Installing on Synology (Running DSM 6.x)

To install ConvoProxy, go to the Package Center, click Settings, and select “any publisher” as Trust Level due to problems with digital signatures. Afterward, click “Manual Install, ” select the downloaded SPK file, and continue. After installation, ConvoProxy should appear among other installed packages. Next, click the icon and check that it is running. Otherwise, start it using the ‘Action’ menu. Finally, a “URL” link will lead you to the ConvoProxy admin interface.

Installing on Synology (Running DSM 7.x)

For DSM7, only a native installer is available. Otherwise, installation is basically the same as with 6.x.

Installing on Windows

Download the ConvoProxy Windows installer. It is an ‘.exe’ file. Double-click it and follow the instructions.

Note: with ConvoProxy for Windows, you may have to handle pop-ups from your Antivírus (AV) program complaining of rarely seen software. AV programs may even quarantine some of the essential executable programs shipped with ConvoProxy.

Furthermore, you may need to give ConvoProxy permission to do communication on the local network, including ‘multicast’ traffic on UDP port 1900.

To summarize, ConvoProxy needs to be able to execute the following programs:

convod.exe
ConvoProxy.exe
encoder.exe
curly.exe

camilladsp.exe

ffmpeg.exe
ffprobe.exe

On start-up, ConvoProxy will test if the above programs are present and executable. Any failures are logged in the web interface.

Supporting non-OpenHome streamers

In the following it is assumed that your linux box is running a 64 bit edition of a Debian based linux distribution (including Ubuntu). Other Linux flavors will probably also work, assuming that you install the ffmpeg package.

You may enable the ‘Convostreamer’ functionality and use an ordinary UPnP control point. Alternatively, you may use an application like BubbleUPnp server to emulate an OpenHome streamer based on ConvoStreamer.

Installing on Linux

Unpack ConvoProxy somewhere that fits you. E.g in your home directory. (do it as your self (non-superuser)) by running

tar -xzf name-of-the-downloaded-installation file

e.g

tar -xzf ConvoProxy_2.2.0-600-Linux-native.tar.gz

Change directory into the unpacked catalogue, e.g

cd ConvoProxy-2.2.x

and run:

sudo apt-get update; sudo apt-get install ffmpeg
sudo ./ctl_convoproxy.sh start

If you would like ConvoProxy to start automatically when your machine starts up, run the following, additional commmand:

sudo set-up-linux-boot.sh

Please refer to the next section for further instructions.

Post-install basics

After having installed ConvoProxy, direct your browser to “http://the-address-of-your-computer-or-Synology-box:8996/”.” E.g., http://192.168.2.128:8996 On Windows, you can most likely go to http://localhost:8996 (provided you run ConvoProxy on your local machine).

Select the DRC filters link from the page loaded, and create a filter bank with a name reflecting the filters you will upload. Then upload the filters. On a Windows PC, use ‘control-left-click’ rather than ‘left-click’ to select multiple filters are one time.

Also, visit the ‘Misc’ section and check that ConvoProxy has selected the correct media server.

ConvoProxy sits between the media server and the connected streamer, and the music server’s music catalog(s) should point to the plain music files. It’s usually the case unless you’ve migrated from ConvoFS.

You should now be ready to go. For the first test, turn down the amplifier volume to be safe.

The web interface in more detail

The ConvoProxy web interface has the following subpages:

  • Main page: You can select basic but essential parameters of the ConvoProxy operation from here. Those parameters include whether to perform convolving and the resampling rate. NB: if you choose to resample to 48 kHz, ConvoProxy will implicitly reduce the outgoing bit depth to 16 bits to support devices that do not support 24-bit WAV or higher sample rates.
  • DRC filters: This is where you define filter banks and upload filters.
  • LoCo: Here, you can turn LoCo-encoding on/off. For more info on this subject, visit the ConvoFS documentation.
  • Encoding: Control how ConvoProxy encodes your music: * M/S encoding: ConvoProxy also supports M/S encoding. For more info on this subject, visit the ConvoFS documentation. * Phase: ConvoProxy supports flipping the phase during playback, which can be advantageous. You may even - hopefully only for testing - select the reverse phase. * WAV encoding: In addition to ‘plain’ 24-bit WAV and for use in streamers that support 32-bit WAV, integer/float 32-bit versions. Note: Linn streamers do not support non-standard WAV formats, and they may produce white noise on playback. * Resampling order/method: You can select if resampling should take before/after any convolving. In the former case, ConvoProxy will use the resampling facilities offered in CamillaDSP; in the latter case, Libsoxr performs resampling, having implications for sound quality and processor load on your box.
  • Misc: Under this tab, you can generate log+config bundles to help me debug any issues. You also select the level of logging. A high level will increase the processor load on your device and may cause huge log+config bundles. So you should normally not change this parameter. Also, there’s a function for rescanning for streamers/media servers and a drop-down menu for choosing the proxy media server.
  • About: Copyright notices etc.

Operations that will stop playback

The following operations will stop playback (stop - not pause):

  • Changing output format
  • Modifying resampling parameters.

Performing a streamer/media server rescan

ConvoProxy will scan your network for streamers/media servers at start-up time so be sure to have the relevant devices turned on when you start your NAS/ConvoProxy. You can at any time perform an extra rescan (under the ‘Misc’ menu) if you miss a streamer/media server.

Stored-preferences

ConvoProxy allows for storing playback preferences in files in the music folder area. Preference files can be named either ConvoPrefs.txt, ConvoPrefs-“streamer identification”.txt” or ConvoPrefs-“brand”.txt. This could e.g. be “ConvoPrefs-Linn-Main-Room.txt.” or “ConvoPrefs-Linn-Products-Ltd.txt”. The valid names for preferences files are shown in the web interface under the ‘Misc’ section. Preferences files are allowed anywhere in the music area, and ConvoProxy can read from multiple files for a given track.

The available settings include:

  • locoencoding = bank/”disabled.”
  • msencode = “n(o)” / “y(es)
  • phase = “normal” / “inverted” / “reverse”
  • drcbank = bank
  • nondrcatt = number
  • predrcatt = number
  • resample_to = number (“0” means no resampling)
  • wav_mode = “wav” / “waw32_int” / “wav32_float”

Commenting out a setting using a ‘#’ character at the beginning of a line is possible.

Settings are resolved as follows:

  • First, the web interface settings are consulted
  • The folder path is traversed from the music start catalog to the played file.
  • A setting read at one level may be overridden at the next level.
  • In the same folder, streamer prefs file entries “win” over brand prefs entries which win over ConvoPrefs.txt entries.

The processing of multiple stored preferences files may initially seem complicated. Still, it is a reasonable way to do it, but if preferences files are littered all over the music area, it is possible to confuse oneself.

Another way to phrase the processing rules is that the most specific setting always wins. If the resolved settings for a music file differ from those set by the web interface, a text at the top will inform of the actual settings.

Usage scenarios:

  • If your Mozart records sound best in the inverted phase, place a ConvoPrefs.txt in the Mozart top folder containing the line phase=inverted. And if his Requiem sounds best in the normal phase, put a prefs file with ‘phase=normal’ in the Requiem sub-folder.
  • If the “Main Room” Linn streamer does not support M/S encoding, place a file ‘ConvoPrefs-Linn-Main-Room.txt.’ at the top of the music area, containing the line ‘msencode = no’.

The main room streamer will play Mozart in the inverse phase (except for the Requiem) and will not, in any case, have M/S encoding enabled. Any other streamer will use the defined Mozart phase settings and respect the M/S settings from the web interface.

Messages section

The top-middle section of the ConvoProxy web interface will always show up to five lines of time-stamped status messages. They will auto-update. The information shown includes messages about internal digital clipping, filter selection, and dynamic range information. Please note that duplicate messages are suppressed within the window.

Dynamic Range (DR)

You can enable this optional feature from the Encoding section of the web interface. It will analyze the tracks which pass through ConvoProxy and determine the ‘Dynamic Range (DR)’. After completing a track, find the result in the messages section. The analysis uses the original (2009) DR algorithm. I’ve checked several sample tracks with the database on https://dr.loudness-war.info, and they closely match the values computed by ConvoProxy. Please Note: Convolving and resampling may affect the analysis results. So if you want to get data consistent with the loudness war site, please deactivate both.

Clipping warnings

An optional feature warns you of digital clipping events within the ConvoProxy processing pipeline. Excessive digital clipping may be readily discernible while listening to the music. If so, you may choose to add a little pre-processing attenuation. To set this, please go to the Encoding section of the web interface. You can set the value per-bank or in general. You can even set it on a per-album basis using stored preferences. Beware that manually added attenuation has been reported to cause changed, perceived signal quality. So only add it if you get annoying, audible clipping.