Plugins for third party EQ

Does Roon allow for third party plugins? More specifically I am talking about EQ plugins, such as DMG Equilibrium EQ.

I am aware of the Roon DSP engine.


No, but there’s a feature request for AU/VST plugins. The status is unknown at the moment but there have been a few discussions in the past so perhaps it may happen in the future.

So no plugins of any kind with Roon?

I understand (from @Brian) that there is a problem with most plugins, notably VST, in that they are designed for a monolithic (single computer) architecture: the user interface is combined with the processing. This is not Roon’s architecture: Roon separates the user interface ( Roon Remote) from the processing including DSP (Roon Core) and the music play (Roon endpoint). Sure it is possible to put those three functions on the same computer, but they are still separate functions.

A plugin that combines user interface with processing is old-fashioned, fits the old PC mindset in the 90s but not today’s networked world. It somewhat fits the phone app model, although even there we have playback capability when the UI is not visible.

I’m particularly sensitive to this, having worked in the software industry for a long time, and having cleaned up such monolithic systems time and time again. A PC used to be a thing; now it is part of a distributed system; a very big change with lots of subtle implications for installation, discovery, power management, troubleshooting, security…


Do you think this can be overcome by Roon ?

Is it totally technically impossible ?

I’m sure someone know the answer to this. Willing to do is another thing. That is just time and money. And “religion” :grinning:

I wouldn’t mind even pay (one time) for having this possibility.

@brian knows more about these plugins than I do, but based on architectural principles I doubt Roon can do it, the plugin manufacturers would have to change — and maybe some of them have, I’m not really into those things.

But if a plugin is built in such a way that the same piece of code does the display of the user interface and the processing of the audio signal, that’s fundamentally inconsistent with Roon’s architecture (and old-fashioned), and difficult to get around without changing the plugin. My only user interface is on my iPad or iPhone, and the audio never passes through those devices. The audio passes through the Core and the endpoints, the endpoints typically are not general purpose computers and don’t have enough processing power, so the plugin would have to be on the core. And the core in general does not have a screen or a mouse/keyboard, and may be in a closet,

It might be possible to temporarily hook up a display, mouse and keyboard to the core to configure the plugin and then disconnect it for daily operation, but my experience (from many years in the industry including as an architect at Microsoft) is that if code is written on the assumption of having access to a UI, it tends to display stuff even when it is not necessary.

The first time somebody at Microsoft tried to build a headless Windows Server, it crashed on boot; investigation showed that it tried to go “bong”.

Of course it could work if the Core is a Windows or Mac PC with full UI and it is visible and accessible, but that’s not a recommended model, and from a business perspective I imagine Roon would not want to add capabilities that work only in a limited (and unrecommended) configuration. And most users would be displeased with it.

The answer is for the plugin guys to decouple their UI and their processing. A common problem that has haunted me for a quarter of a century. And often a huge pain to fix.

Several other threads about this, but one thing that should be noted is that VST plugins expose its properties so its possible to do a simplified GUI remotely. So even with Roon on a NUC it can be solved. But you won’t get the cool VST GUI this way, and some plugins like advanced PEQ relies a lot of their GUI.

Full VST GUI can be handled for people that runs Roon on their desktop computer though.

Here is an example of how this looks for a VST plugin:

A removable UI is a necessary step, but you have to be sure the VST does not ever pop up any dialog box with status or error messages, because they will crash the plugin and possibly the Core.

1 Like

I would be happy if Room Shaper could be run.
It’s probably easier if that sw could be written in a language that Roon or HQPlayer could understand, but that’s also not an easy task. And Thierry don’t do Linux.

According to this post impossible since what Room Shaper does, can’t be implemented by using convolution. Not sure if that’s correct, as Audiolence is working also in time domaine and is implemented in Roon by convoluting. And so does HAF.

When it comes to Dirac, we shouldn’t have much hope. But luckily Audiolence solve RC. So we should hopefully be covered.

If there is an easy way to have a extra headless NUC just for VST might be a solution. But even that is not easy as I understand it.
Not straight forward for those who tried with the Room Shaper SW.

Not sure if Roon Extentions API can help us either.

One way Roon could improve this is to add a couple of audio endpoints into DSP, one out and one in. When enabled, Roon would then send digital data on the out, and read from in and use that. A VST host or similar could then be patched in to process the data, and the Roon user could position this in the DSP chain in Roon. Note that this would not be limited to VST host/plugins, but any software that reads from one audio endpoint and writes to another.

This would not solve the problem with VST and Roon/ROCK, but it would be an easy fix in Roon to make it easier to add external audio processing software in the chain.


Let’s hope for some god and insight full comments from Brian :grinning:

My understanding is we should forget VST support, but focus on what may be technical possible. Open up for more API support ?
Have VST to change or develop , or have the developer (Thierry) make changes, based on Roon requirements.

It seems to me both VST and Roon use C/C++

1 Like