How does ConvoProxy work?

ConvoProxy runs on the same NAS/Linux as the media server. It intercepts the traffic between the streamer and the media server, acting as a ‘man-in-middle’ or ‘proxy’. When the streamers ask for a media file, ConvoProxy will return a convolved and transcoded copy.

How does ConvoProxy differ from ConvoFS?

Both ConvoProxy and ConvoProxy works by squeezing themselves in between software components, transparently doing their work. ConvoFS sits on top of the operating system, just below the media server. ConvoProxy rides on top of the media server before the streamer.

See the below figure for a graphic illustration of the above description:


ConvoProxy uses the same internal processing pipe line as pictured here.

Should I migrate from ConvoFS to ConvoProxy?

ConvoProxy is a light weight construction, ocmpared to ConvoFS. There’s no meta data rescan, no potential beeps in playback, and media server rescans will be much faster, as the server accesses the music catalogue directly. So migrating may be worth considering. User reports of sound quality have ranged from neutral to large improvements.

Which source media types does ConvoProxy support?

Currently WAV, M4A, FLAC, MP3.

Why does ConvoProxy produce all WAV output?

The overall experience with ConvoFS is that there’s a strong demand for WAV output. Furthermore, this was the easiest thing to implement. Finally, ConvoFS has some issues with WAV transcoding, so the easy choice was to do WAV output.

Is ConvoProxy free?

As ConvoFS, ConvoProxy is Open Source and free to use. Whereas ConvoFS is published under the “GNU license”, ConvoProxy is currently licensed under the “MIT license”. The license change was motivated by the choice of programming language (“Go” aka “Golang”) and the licenses of 3rd party components. It has no practical consequences for the end-user.

Why do I need BubbleUPnP server for my non-Linn device?

ConvoProxy needs to communicate with the streamer in order to

  • Retrieve information about the next track in order to support gapless playback
  • More importantly, it needs to be able to stop playback on streamers when starting up, when shutting down, and when essential configuration variables are changed. This is to avoid noise, should the streamer suddenly receive music data with the wrong file type/sample rate/sample width.

I upgraded to ConvoProxy 1.1.x but no convolving takes place

ConvoProxy 1.1.x differs from 1.1.0 in the respect that it converts internal UPnP file names from e.g. xxx.flac to xxx.flac.cproxy.wav. This is quite transparent, but you will need to clear the streamer playlist. Also, if you use the Lumin controlpoint, you should update your library. If not, just go a level up in the file hierarchy and down to the desired track again.

What do I need to run ConvoProxy?

You need Synology Intel-based (e.g., Atom/Celeron/Xeon) 64 bit NAS or an ordinary Linux computer. A Linux computer should preferably run Ubuntu or another Debian based Linux flavor. A NAS (Synology/QNAP) has to be able to run the docker containers. For a list of those models, please refer to the below two links:

Synology NAS devices with known success stories include most ‘plus’ models.

If your NAS can run ConvoFS, it will also support ConvoProxy.

QNAP: with newer QTS firmware releases, there are problems installing unsigned packages. If you would like to have ConvoProxy run on a QNAP device, please contact me for further instructions.

Ubuntu/Debian: you should run:

apt-get update  && apt-get install netcat-traditional net-tools iproute2 iptables sox flac ffmpeg perl git zip curl redis-server libaudio-scan-perl libwww-perl libjson-perl psmisc

in order to install the software needed by ConvoProxy. Afterwards, you should be able to start/stop ConvoProxy using hte script.

What products are in use with ConvoProxy?

ConvoProxy was initially known to work with the MinimServer media server and Linn streamers. This was the case with ConvoProxy 1.0.0. ConvoProxy 1.1.0 and later has been tested with “Moode”, “Ropieee XL”) - Raspberry Pi based streaming products) and the eRED streamer products. But the combo of ConvoProxy and Bubble UPnP server should be able to support many other products.

Does ConvoProxy support gapless playback?

Indeed, when the playback of a track nears completion, ConvoProx will query your streamer for the upcoming track and start processing it so that there will be no gaps in e.g. live recordings.

What happened to good old BruteFIR?

ConvoProxy uses CamillaDSP developed by Henrik Enquist for convolving and MS/LoCo processing and not BruteFIR as ConvoFS. I wanted to try something new, and using CamillaDSP is easier. I believe that sound quality is as good – and as used in ConvoProxy, all CamillaDSP processing is performed in 64 bit floating point precision, and use the same support library (fftw) as BruteFIR do.

Take care

General common sense wrs DRC setups should be also followed when using ConvoProxy. The principles are to turn down the volume, the first time a new filter is uploaded, avoiding loudspeaker getting damaged _should_ the filter file produce white noise.