ConvoProxy

ConvoProxy is a “Convolving Proxy” designed to sit either between a media server and an UPnP/ OpenHome-compatible network audio streamer, or between the streamer and a UPnP media server, thus introducing convolving/resampling/other features to media setups that do not support it.

Most users use ConvoProxy for convolving (applying digital room correction filters). But there also users who use ConvoProxy exclusively for resampling, WAV conversion and/ controlling phase on a per-album basis.

A note

I myself do not need perfect software. What I like is software that is being developed and friendly supported, and I hate hostile support forums. I try to maintain the same, positive standards with ConvoProxy. So if you’ve run into a bug, have an idea for new functionality, or just want to let me know that you use ConvoProxy and like/dislike it, don’t hesitate to drop me a note (see contact info at the end of the documentation). If you read German, there’s a thread on the “Aktives Hören” forum where users discuss ConvoProxy:

https://www.aktives-hoeren.de/viewtopic.php?t=12196

ConvoProxy 2.x introduction

ConvoProxy v/2 is the second major release of ConvoProxy. The code has been reworked and is now 100% written in Go (aka “Golang”), and the last portions of Perl code have been removed. This evolution allows for ‘native builds’, which don’t need ‘Docker’. Native builds adapts to the restrictive install environment of Synology DSM7, and for making a Windows version possible.

Compared to v1.x, the play-back architecture, as seen by the user, is slightly different. Please see below.

ConvoProxy2 allows for emulating a plain UPnP (non-OpenHome), creating a streamer “ConvoStreamer”, which will relay traffic to/from a “real” streamer. This streamer may be OpenHome compatible (e.g., Linn) or a plain UPnP streamer, allowing for a broad range of control points. A separate document describes such use.

Notice about ConvoProxy 2.x

ConvoProxy 2.0.0 and later use a somewhat different setup than the older ones. Whereas earlier versions impersonated the real music server, ConvoProxy 2.x creates a virtual streamer, “ConvoProxy,” to be selected in the control point application. For further information, refer to the introduction section below.

Info about sample rate display

Beware that when using the UPnP proxying method, the control point application, e.g., the Kazoo/Linn/Lumin App, will show the original media file sample rate/format even when resampling. If you have a sample rate display in your streamer/DAC, it will show the correct rate.

Notice about MPD-based streaming setups (Volumio, Moode, etc.)

In some configurations, these popular products use aggressive ‘memory caching’, meaning that they - in contrast to, e.g., Linn streamers - read as much as possible of a track as fast as possible into working memory, meaning that actions such as filter-change in ConvoProxy do not take action before the next music track. Repeating play-back of a given music track will re-read from the streamer’s memory cache rather than accessing ConvoProxy. It isn’t obvious, but it is outside the control of ConvoProxy.

ConvoProxy 2.0.0 and later: UpNP -> OpenHome/UpNP proxying

In version 2.0.0 and later, ConvoProxy adds functionality for enabling a UPnP streaming service, ‘ConvoStreamer’. It will proxy to a physical UPnP or OpenHome device, convolving and doing other processing of music data. You enable the ConvoStreamer functionality under the ‘Misc’ tab. After allowing it, a drop-down menu to select the target streamer will appear.

You will thus select ConvoStreamer as the target in your control application (and ConvoProxy as the music source). As this functionality is new, please find additional details in a separate document, ‘ConvoProxy-Streamingservices’, in the ConvoProxy download catalog.