• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

A comparison of convolution engines

Just one another point, please.

In EKIO I can configure all the XO/EQ/Gain/Delay/Routing parameters/settings on the GUI screen; I have never "write"/"prepare" text config file.

Does this means "GUI for configuration" is "Yes" for EKIO?
 
Also, I think I should change the "GUI for configuration" to "text editor required?" because it was my intention to show if the convolver required you to manually edit a text file for configuration.

As I just posted above, in EKIO, "no" for "text editor required?", thank you!;)
 
* I think the EKIO trial only allows you to output four channels. This prevents me from using it in my system, so I can't trial it at all. HLC's trial is also limiting, you only get 14 days. HQP and Acourate Convolver have better trials - HQP stops the music and requires a restart after 30 minutes, but you can keep doing this indefinitely. Acourate Convolver stops the music and bugs you with a pop-up to register, but you can dismiss the pop-up and use it indefinitely.

I essentially agree with you regarding the "trial version" and its limitations!

In case of EKIO, as you pointed and experienced, we do need to purchase a license to fully try, test, utilize it in multichannel setup.

I will soon request Guillaume of LUPISOFT for full-functioning free trial version for at least one month; possible "free trial license key" effective only for one month would be acceptable, I assume.
 
Last edited:
I essentially agree with you regarding the "trial version" and its limitations!

In case of EKIO, as you pointed and experienced, we do need to purchase a license to fully try, test, utilize it in multichannel setup.

I will soon request Guillaume of LUPISOFT for full-functioning free trial version for at least one month; possible " free trial license key" effective only for one month would be acceptable, I assume.

Yeah that works, but it is not as good as a license key that does not expire but has other limitations - e.g. stopping your music after 30 minutes, or bugging you every 5 minutes with a pop-up once the 30 days has expired, and so on. As I said in my earlier post, I like keeping software on my PC just to have a play even if I don't use it. I had Acourate Convolver installed on my PC for quite a long time before I decided it was the best convolver for my needs and buying a license. If you want to have a play with multiple convolvers, 30 days isn't enough for you to try all of them before having to make a purchase decision. Right now, I am still curious about convolvers and all the ones which are time limited have been uninstalled - which is a pity.
 
Fully understood!

I will contact with Guillaume of LUPISOFT soon where I will refer our communication for his attention.

I also would like to request him for possible development of "EKIO I/O ASIO driver" with which we will be able to eliminate/skip ASIO4ALL, VB-Audio Virtual Cable, and VB-Audio Hi-Fi CABLE & ASIO Bridge.
 
You can also do most all of this in Roon - XO, time delay, paraEQ, and convolution.

I do it with REW and rePhase piped into Hang Loose Convolver and have played with various routing schemes and virtual devices to include Dirac, Sonarworks, Roomshaper, etc to experiment with. I'm on the Mac end of this and recently shared the current routing here for my 3 way XO + 2 subs implementation with Dirac Bass Control.

You can also use a plugin host like HLC app or Element to use multiple instances of any convolver/delay/EQ HP or LP in any channel assignment you want limited only by your available number of output channels in hardware.
 
Please delate HQ Player remark about PCM to DSD conversion CPU overheads.
Only one implementation of convertor is written ever, it's most CPU demanding thing regarding DSP audio processing there is. Partly thanks to old and not optimal implementation. Hardware requirements are dual core out of order CPU for DSD 64 or quad core one for DSD 128 or more (ARM A72 - A73 @ 2 GHz min or AMD - Intel at less than 2 GHz). As stated already it's the same and only one implementation in all players that it's implemented in (Neutron, JRiver, HQ Player, Onkyo HF Player...).
 
Last edited:
"Filter Bank" means that a set of filters can be loaded into a bank - so that switching filters is as easy as choosing a different filter bank.
You can create different configurations using different filter files and switch between them with a single button in the gui. I'd say that's equivalent to the filter banks of the others, and the number is unlimited.
Can you please list some of the special features included in CamillaDSP? When I was compiling this spreadsheet, I had to look at multiple websites to glean information. If the website is difficult to navigate (as Camilla's is) it is easy to miss things.
Don't know where you have been reading, but the main readme is the on where everything related to the dsp engine is explained: https://github.com/HEnquist/camilladsp/blob/master/README.md
The gui is a separate project with its own documentation. But the gui is mainly a frontend to the features provided by the engine, so the documentation for it mentions only how to get it running.

BTW what does "WDM to ASIO converter" mean? That ASIO and/or Wasapi are supported?
 
BTW, with Hang Loose Convolver you have only 6 available filter banks but those filter banks can consist of a theoretically unlimited number of channels if I understand @mitchco correctly.
 
BTW what does "WDM to ASIO converter" mean? That ASIO and/or Wasapi are supported?
That it has a WDM driver that can be set as default output on system level while software internally uses driver you tell him to including ASIO (for reasons such as; lower latency, DSD playback, bit perfect reproduction...) I guess. It's Windows only for both WDM and ASIO.
 
I'm not clear where you're drawing the line between a convolver engine and something that happens to include or use one. This probably affects the linux side more as there is a tendency to split functionality down into smaller units rather than bundle everything into a monolithic application.

https://github.com/wwmm/easyeffects pulls in an number of things including a convolver, It used to use jconvolver/zita-convolver when it was pulseeffects but that may have changed with the move to pipewire. Other things like PEQ, crossfeed and loudness are provided by different engines.
Moode now has CamillaDSP built in, hidden behind a GUI. Volumio has a plugin that uses it, again with a different GUI, from a developer who previously had a plugin using BruteFIR. https://github.com/Wang-Yue/CamillaDSP-Monitor is a GUI loosely based on RME's EQ interface while @IAtaman has started on one similar to the PEACE interface. Each has a different emphasis and different capabilities like being able to load headphone corrections from AutoEQ.

I guess Roon should be in the table too.
 
Hi @Keith_W Just some updates about Hang Loose Convolver (HLC).

Max output channels is 16 on Windows as it is a VST3 limitation soon to be fixed by Steinberg. On the Mac I have folks using 32 output channels with a max of 36 currently. Note I say output channels as there may be many more convolution channels. For example, while a 7.1.4 Dolby Atmos is 12 channels, it does not account for that there may be bass offloading for each of the speakers to the sub(s), which doubles the number of convolution channels required. Note this can only be accomplished by using the industry standard "config" file specification discussed later below.

VB-Virtual Audio Cable, VB-HiFiCable ASIO Bridge, ASIO4ALL, ASIO Link Pro, etc., covers any WDM and/or ASIO lopback configuration on Windows, BlackHole on Mac and ALSA loopback on Linux. All are free virtual loopback drivers and takes a minute to install and work reliably. However, if one has a "Pro" interface, then h/w loopback is the best approach.

HLConvolver comes with HLConvolverHost which can host any VST3 or AU plugin on Windows, Mac and Linux and can be used as a standalone application.

While the number of Filterbanks is 6, one can save that as a preset. Each preset has 6 Filterbanks x as many presets as one wants. With a few mouse clicks one can have access to dozens of filters.

While it is sort of mentioned, HLC automatically calculates the gain of the loaded filter so that all filters, regardless of their individual gains, are all at the same level and the same level as the bypassed signal. So when switching filters they are all level matched. A key consideration when comparing filters.

As you mentioned, switching filters on the fly is instantaneous and glitch free. This also includes switching between minimum phase filters whose filter peak starts at sample 1 and linear phase filters whose filter peak starts anywhere but sample 1 (e.g. may start at sample position 32,768 in a 65,536 tap filter). So when switching between a minimum phase filter with no delay versus a linear phase filter with hundreds of milliseconds of delay, the switching is instantaneous with no audible delay gap.

You may want to break out which convolvers support what is recognised as the industry standard convolver "config" file: https://convolver.sourceforge.net/config.html This specification allows one to do, amongst other features, input and output scaling and summing, which are important configuration parameters for sophisticated convolution projects in which without the power of the configuration file, there would be no solution. As a side note, DRC/DSP packages like Audiolense, Acourate, and Focus Fidelity Designer automatically generate this industry standard config file that one can simply load in HLC in 2 seconds and have working.

You may want to identify if the convolution engine is a 0 millisecond latency engine. Some convolvers have their own inherent delay to account for. With a 0ms latency convolver and minimum phase FIR filters (and minimum phase digital XO's) one can watch Dolby Atmos movies with convolution and no lip sync issues.

Perhaps listing convolver capabilities of being able to automatically load the matching sample rate filter on the fly when the source (i.e. host) sample rate changes.

You may want to identify which convolvers are offered as a "plugin" like as VST3 or AU plugin. This is usually a requirement on the music production side with folks using DAW's.

PS. If may be useful testing convolution engines as some have issues like Roon.

As an aside, I am surprised you have not listed Bernt's Audiolense Convolver...?

Keith, if you need more than 14 days to eval, please let me know :cool:
 
That it has a WDM driver that can be set as default output on system level while software internally uses driver you tell him to including ASIO (for reasons such as; lower latency, DSD playback, bit perfect reproduction...) I guess. It's Windows only for both WDM and ASIO.
Then I would split in to two rows, one true/false for if it supports system-wide processing, and one listing what audio apis are supported (asio, wasapi, alsa, coreaudio etc)
 
Then I would split in to two rows, one true/false for if it supports system-wide processing, and one listing what audio apis are supported (asio, wasapi, alsa, coreaudio etc)
It's a bit more complicated then that... actually much more complicated when you include and DRM. Let's keep it simple (as possible) WDM driver on ASIO API on Windows.
 
You can also do most all of this in Roon - XO, time delay, paraEQ, and convolution.

Yes, but nobody buys Roon to work as a convolver. I mean, it's >$800. OTOH, you could buy JRiver and use it as a convolver, in fact I did use it like that for some time. Because it works as a DLNA endpoint, I can cast anything I want to it as long as the service I am trying to cast supports DLNA. But OK, i'll include Roon in the spreadsheet.

Please delate HQ Player remark about PCM to DSD conversion CPU overheads.
Only one implementation of convertor is written ever, it's most CPU demanding thing regarding DSP audio processing there is. Partly thanks to old and not optimal implementation. Hardware requirements are dual core out of order CPU for DSD 64 or quad core one for DSD 128 or more (ARM A72 - A73 @ 2 GHz min or AMD - Intel at less than 2 GHz). As stated already it's the same and only one implementation in all players that it's implemented in (Neutron, JRiver, HQ Player, Onkyo HF Player...).

I don't think I understand you. When converting PCM to DSD in HQP, my CPU usage jumps through the roof. On my older PC, it was enough to bring the PC to a standstill and cause audio to stutter. All the other convolution engines don't do this, in fact the computing requirements of CamillaDSP is so low that it can run on a Raspberry Pi. The remark on HQP specifically says DSD only, but when it is convolving in PCM, CPU usage seems to be on par with all the other engines I have tested.

You can create different configurations using different filter files and switch between them with a single button in the gui. I'd say that's equivalent to the filter banks of the others, and the number is unlimited.

Thank you, I have updated the spreadsheet. I can't edit the original post any more, ASR won't let me :(

Don't know where you have been reading, but the main readme is the on where everything related to the dsp engine is explained: https://github.com/HEnquist/camilladsp/blob/master/README.md
The gui is a separate project with its own documentation. But the gui is mainly a frontend to the features provided by the engine, so the documentation for it mentions only how to get it running.

BTW what does "WDM to ASIO converter" mean? That ASIO and/or Wasapi are supported?

I have read that page, and it is quite difficult for a non-programmer to understand. I saw that I would have to type lines of code to get it to work. I was willing to give it a try, but I failed. A friend who had successfully installed Camilla came over to help me, but even then it took him hours to even get it to work. I realized that I would not be able to maintain it myself given the complexity, so I have uninstalled Camilla and I am unable to explore it's features directly.

Others have explained what WDM to ASIO means. If I open a browser and go to Youtube, it automatically plays in JRiver if I enable JRiver's WDM driver.
 
I'm not clear where you're drawing the line between a convolver engine and something that happens to include or use one. This probably affects the linux side more as there is a tendency to split functionality down into smaller units rather than bundle everything into a monolithic application.

I use Windows, so I think in terms of an application that you would buy and use for its convolution ability. Moode and Volumio were not considered because I did not realize that they could be used in this application - after looking at them I still don't think they can be used as standalone convolution engines?

You may want to break out which convolvers support what is recognised as the industry standard convolver "config" file: https://convolver.sourceforge.net/config.html This specification allows one to do, amongst other features, input and output scaling and summing, which are important configuration parameters for sophisticated convolution projects in which without the power of the configuration file, there would be no solution. As a side note, DRC/DSP packages like Audiolense, Acourate, and Focus Fidelity Designer automatically generate this industry standard config file that one can simply load in HLC in 2 seconds and have working.

Hi Mitch, thanks for replying. That industry standard config file is a recipe for confusion for people who don't know much about computers. It took me hours to figure out how to write my own config file for JRiver, having never written one before. If you are a novice user, it is far easier to use the GUI to click on the filters to assign them. I hate having to break out the text editor to make any changes to the config and have to refer to that webpage for reference every time I want to make a change to the configuration. I still don't know what "0 0 0 0 0 0 0 0" means or why it is required, and whether it's the first line or the second line that is important without having to look at that webpage. And then, if you are a klutz like me and you mis-type something, you have to pore over the entire config file to look for a single mis-typed character. All of this might seem like child's play for a programmer, but for the rest of us it's unintuitive and an inconvenience.

BTW, I finally figured out why MY version of Acourate would not output a config file ... it was because I was on v1.10. Now that paid Uli some money and I am on v2.0, I can output config files. All of them still need to be manually edited to point at the correct directory though, but that's Acourate's fault and not yours.

You may want to identify if the convolution engine is a 0 millisecond latency engine. Some convolvers have their own inherent delay to account for. With a 0ms latency convolver and minimum phase FIR filters (and minimum phase digital XO's) one can watch Dolby Atmos movies with convolution and no lip sync issues.

Perhaps listing convolver capabilities of being able to automatically load the matching sample rate filter on the fly when the source (i.e. host) sample rate changes.

You may want to identify which convolvers are offered as a "plugin" like as VST3 or AU plugin. This is usually a requirement on the music production side with folks using DAW's.

When I was doing this survey, I had only tried a handful of the convolvers listed. With the rest of them, I had to look to see what information was available on their webpages. The list when I compiled it was as exhaustive as I could make it with freely available information, and I am continuing to update the spreadsheet as I receive replies on this thread. Trying to find out which convolvers have a 0 latency engine might be next to impossible if they don't advertise it - and it's not safe to assume that just because they don't boast about it, they don't have this feature.

In any case, I have updated the spreadsheet here with your feedback (and others).

As an aside, I am surprised you have not listed Bernt's Audiolense Convolver...?

Never heard of it. I will look at it and update the sheet.

Keith, if you need more than 14 days to eval, please let me know :cool:

As I mentioned earlier, any time limited trial is not as good as a time unlimited trial which bugs you to register. I am mindful that you are busy and I don't want to keep bugging you, especially since I am not a paying customer (yet). As you are aware from our correspondence, I had issues with VB-Cable which meant that any software which required the use of it was a dead end for me.

Yes, I could use the HW loopback feature on my RME but Totalmix is a complete nightmare for a moron like me. I can't figure out how to get it to loopback, and I now have a maxim - if I see any weird behaviour with Acourate, check Totalmix settings first. I recently had an issue where Totalmix was sending all my woofer signal to the sub and it took me hours to find out why and fix it. I am only a hobbyist and not a programmer or mixing engineer.
 
If you are a novice user, it is far easier to use the GUI to click on the filters to assign them. I hate having to break out the text editor to make any changes to the config and have to refer to that webpage for reference every time I want to make a change to the configuration.

Yes, I am also!;), like you are.

This is one of the many reasons I use/love EKIO working as system-wide DSP center for my multichannel multi-SP-driver multi-amplifier fully-active audio setup. Through ASIO routing, EKIO can receive digital audio signal from any of the audio-playing applications/software (in my case on Widnows 11) including JRiver, Roon, Adobe Audition, MS Edge, Goolge Chrome, etc. for GUI-friendly DSP processing, to feed all the channels into multichannel DAC through one USB 2.0 cable, into OKTO DAC8PRO in my setup.
 
Others have explained what WDM to ASIO means. If I open a browser and go to Youtube, it automatically plays in JRiver if I enable JRiver's WDM driver.
This is system-wide processing, that it is able to process the sound produced by any app.That in itself doesn't have anything to do with asio. But the processed audio may be fed to an asio device if the convolver app supports that.
 
@Keith_W simple PCM to DSD conversation cost so much CPU cycles as stated no matter which peace of software/player supporting such you use as implementation is the same. I don't know how to say it more simple. It's old SMP x4 implementation but only one writen for such. Played a lot with it on mobile (Android) and desktop (Windows) in the past with ESS 32 DAC's where such is beneficial to certain extent (complex ESS DAC DSD line with better autended separate input path for it). Gave upon it year's ago.
 
This is system-wide processing, that it is able to process the sound produced by any app.That in itself doesn't have anything to do with asio. But the processed audio may be fed to an asio device if the convolver app supports that.
I even explained why ASIO API for lower latency and still not quite enough in case of JRiver for let's say full lips sync on YouTube video (after re sync which takes 10~15 sec and it's hear able it's OK but only OK).
 
Back
Top Bottom