Getting, Installing and configuring ConvoProxy

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

Installing on Synology

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

Supporting non-Linn streamers

As noted elsewhere, you will need to install Bubble UPnP server. Referer to the vendor’s site for instructions. After having installed & started it, go to the Bubble UPnP web interface tab ‘Media Renderers’. There, you should hopefully find an icon for your device. Click it and subsequently tick the two boxes ‘Create an OpenHome streamer’ and ‘Gapless Playback’. That should be it. Afterwards, force a ConvoProxy streamer rescan (under the Misc tab).

Post-install basics

After having installed ConvoProxy, direct your browser to http://the-address-of-your-computer-or-Synology-box:8996/. E.g.,

From there, select the DRC filters link, and create a filter bank with a proper name reflecting the filters you will upload to it. Then upload filters into it. On a Windows PC by using ‘control-left-click’ rather than just ‘left-click’ to select.

As mentioned elsewhere, ConvoProxy intercepts the connection between the media server running on the NAS, and the connected streamers. Ideally, the music server’s music catalog (s) should point to the plain music files. If you are already running ConvoFS and want to evaluate ConvoProxy, you could either run ConvoProxy on top of ConvoFS or - better - create a new music catalog in the media server, pointing to the ‘real’ music catalog and disable the ConvoFS one.

If you run on-top of ConvoFS, disable convolving , and any resampling. If you use Loco or M/S encoding, disable them in ConvoFS and enable them in ConvoProxy. If you changed resampling in ConvoFS, let the media server reindex, otherwise not.

Then you should be set to go. For the first testing, do turn down volume in your system, just to be safe.

Web interface in more detail

The ConvoProxy web interface currently has the following subpages:

  • Main page: From here, you can select basic but important parameters of the ConvoProxy operation. This includes PassThrough vs. Process mode, whether to perform convolving or not, and which - if any - rate to resample the music to. NB: if you select resampling to 48 khz, ConvoProxy will reduce the outgoing bit depth to 16 bit. This is to support devices that do not support 24 bit WAV or high sample rates.
  • DRC filters: This is where you define filter banks and upload filters into them.
  • LoCo: Here, you can enable/disable LoCo-encoding. 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 music-playback. This may be advantageous. If you may even - hopefully only for testing - select 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 are also supported. Note: Linn streamers do not support 32 bit WAV.
  • Misc: Under this tab, you can generate log+config bundles to help me in debugging any issues. You may also select the level of logging: 1/2/9. Level 9 will make ConvoProxy log each and every read access from the streamer. This is usually not very needed and will generate huge bundles. Also, you there’s a function for rescanning for streamers.
  • About: Copyright notices etc.

Operational modes

From the main page, you may select PassThrough vs. Process mode. In PassThrough mode, ConvoProxy will just relay requests to/from the media server without interfering. In Process mode, ConvoProxy will transcode audio data that passes it to WAV format and possibly do other processing. In Process mode, you may also choose to resample audio to, e.g 192 kHz format.

Operations that will stop playback

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

  • Changing from PassThrough to Process mode or the reverse.
  • Modifying resampling parameters.

If it fails to stop a streamer, ConvoProxy will blacklist it until the next time ConvoProxy restarts. Likewise, it will scan your network for streamers at start-up time and stop playback on all of them. Those streamers that obey the command will be able to access ConvoProxy. So be sure to have your streamers turned on when you start your NAS/ConvoProxy. Should you miss it or get a new streamer, you can perform a rescan for streamers under the ‘Misc’ menu.


Since version 1.2.0, ConvoProxy allows for storing prefences in files in the music folders. This is currently tested with Minim Server. This is a concept also known from ConvoFS. Preference files can be named either ConvoPrefs.txt, ConvoPrefs-“streameridentification”.txt” or ConvoPrefs-“brand”.txt. This could e.g be “ConvoPrefs-Linn-Main-Room.txt” or “ConvoPrefs-Linn-Products-Ltd.txt”. The proper names for a streamer/brand can be looked up in the web interface in the ‘Misc’ section. Preference files can be located anywhere in the music area, and settings can be read from multiple files for a given track.

The settings that can be defined are currently:

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

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

Settings are resolved as follows:

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

This may seem complicated at first but is actually very intuitive and the one reasonable way to do it. If one litters prefs files are all over the music area, it should, though, be possible to confuse one-self. Another way to phrase the rules are that the most specific setting found, always wins. If the resolved settings for a file being played differs from the settings set by the web interface, an info text at the top of the web interface will inform of the actual settings in effect.

Usage scenarios:

  • If one’s Mozart records sounds best in inverted phase, place a ConvoPrefs.txt in the Mozart top-folder containing the line phase=inverted. But if the Requiem sounds best in normal phase, place a prefs file with ‘phase=normal’ in the Requiem 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’.

Then the main room streamer will play Mozart in 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.