• 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

Music1969

Major Contributor
Joined
Feb 19, 2018
Messages
4,674
Likes
2,848
Does https://github.com/HEnquist/camilladsp#loudness count? Some more background in https://github.com/HEnquist/camilladsp/issues/73

Any reason not to include PulseEffects / EasyEffects as mentioned earlier, or did it just get lost in between the full Pi OS options and the CamillaDSP bits? Seems broadly comparable to EqualizerAPO and the like, and is more or less plug and play with most desktop linux.
Yeh i use EasyEffects on Ubuntu for video like YouTube, Netflix - zero latency PEQ, no lip sync issues
 

Hexspa

Senior Member
Joined
Sep 6, 2022
Messages
317
Likes
211
I use two convolvers regularly. One for Windows audio:

And another for ASIO audio when doing studio work with my DAW, Reaper. It's called ReaVerb, a 'stock' (provided with Reaper) plugin intended for reverb impulse response files.

I use both with the same IR file, which I created using REW to generate a stereo EQ IR to compensate for speaker and room time and freq response effects. I used a procedure similar to what is shown here:

MConvolutionMB loads impulses and has zero latency.
 

DWPress

Major Contributor
Forum Donor
Joined
May 30, 2018
Messages
1,016
Likes
1,465
Location
MI
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

It would probably be helpful to a lot of people to further explain and give use examples of constructing config files which hasn't been updated since 2006 and a lot of new tools have been developed since then. I create mine in a text editor and still refer to the sourceforge page nearly every time I do.

Not saying you should do this Mitch, as you mention you use apps that automatically generate the config but it could be a good group effort to try to flesh out and explain the possibilities.
 
OP
Keith_W

Keith_W

Major Contributor
Joined
Jun 26, 2016
Messages
2,657
Likes
6,059
Location
Melbourne, Australia
BTW, those config files only allow you to specify delays in millisecond integers. The time difference between my midrange and tweeter is 0.167ms. Since the config files don't have enough resolution to properly time align my drivers, I used Acourate to do it.
 
OP
Keith_W

Keith_W

Major Contributor
Joined
Jun 26, 2016
Messages
2,657
Likes
6,059
Location
Melbourne, Australia
I received an email from Uli, author of Acourate Convolver requesting some corrections to the spreadsheet. I have received permission to post his email:

Uli Brueggemann said:
Hi Keith,

I have just come across the convolver survey as the ASR which you have initiated..
IMO it should be updated regarding the AcourateConvolver.

The screenshot is

1684159612515.png


So the actual version 2.0.6
As you see it plays to more than 8 output channels and it has never been restricted to 8 channels.
At the end the max. number depends on memory and CPU, especially when you like to use longer filters. In the given example we now have 12 channels with filters of 262144 taps length. The convolution realtime index is here 12% with a CPU load up to 1%
Of course there is some inherent latency, AcourateConvolver is not designed as zero-latency convolver. The playback quality is most important.
I know about other installations playing 18 channels without problem.

As you may notice beside the options Flow, Clean and EQ there are other functions as well. In this case there is a function to add some additional "airy" reverberation (high frequency reverberation). It is simulating backsided tweeters firing to the front wall with some delay.
Furthermore you see the keyword "trinaural" in the listed input channels. AcourateConvolver allows to compute a center channel according to the known Gerzon matrices but also by a time-frequency analysis. This is done in realtime during the playback.

A feature not listed in your comparison is the switch between real sources connected to the input channels of a soundcard and to virtual input channels connected to internal sources like music players or streaming software.

AcourateConvolver can be controlled by its own browser based remote control but also by keystrokes (or keystrokes e.g. sent by FLIRC) and by network commands. This allows different solutions to switch between configs and filterbanks or to handle the volume control.

For best quality AC is using Asio. Windows sound is not implemented due to known problems (see the neverending audio debate about Windows sound at ASR). Of course solutions like bridge software are also possible.

A media player is simply not implemented as AC should be open to many media players as possible. There are tons of web discussions about players, their quality and their GUI handling. So everyone can select his own preferred solution. Thus it is not a bad property which needs to be marked by red. It is intended by design.

A final feature to be listed is the possibility to record e.g. a logsweep by Acourate thru the AcourateConvolver (full flexible routing matrix). Therefore a microphone is routed backwards thru the convolver to Acourate.


Best wishes
Uli

The spreadsheet has been updated.
 

dualazmak

Major Contributor
Forum Donor
Joined
Feb 29, 2020
Messages
2,850
Likes
3,047
Location
Ichihara City, Chiba Prefecture, Japan
Uli Brueggemann kindly wrote;

For best quality AC is using Asio. Windows sound is not implemented due to known problems (see the neverending audio debate about Windows sound at ASR). Of course solutions like bridge software are also possible.

And, I essentially agree with him on this regard, as I too wrote here. (Now my PC's OS is Windows 11 Pro, as shared here.)

I use EKIO as system-wide DSP (XO/EQ/delay/gain) center, and only EKIO feeds DSP-ed multichannel (8-Ch) into DAC8PRO through the dedicated 8-Ch DIYINHK ASIO driver.
 

DWPress

Major Contributor
Forum Donor
Joined
May 30, 2018
Messages
1,016
Likes
1,465
Location
MI
Yes, there are many roads to get to full system XO and EQ but the most flexible ways to get there is Acourate, Audiolense, REW, rePhase and others where you generate your convolution files independently from the player software. Roon, Jriver and even stand alone boxes like miniDSP can get you there too but with various limitations. Wonderful to have so many tools available!
 

dualazmak

Major Contributor
Forum Donor
Joined
Feb 29, 2020
Messages
2,850
Likes
3,047
Location
Ichihara City, Chiba Prefecture, Japan
This post is a follow-up after my post #23 regarding "EKIO".

During the past two weeks, I could have nice communication with Guillaume BADAUT of LUPISOFT, and he kindly gave me consent and permission sharing our e-mail chats here on this thread.
Hello Guillaume,

EKIO is running perfectly, as usual, in my DSP-based multichannel multi-SP-driver multi-amplifier fully active time-align stereo audio setup.
You would please find my latest system setup here and here on my project thread in Audio Science Research (ASR) Forum.
I really like and love EKIO, and I have been always very happy being a kind of enthusiastic evangelist of EKIO in ASR.

By the way, very recently one active member Keith_W launched a thread entitled "A comparison of convolution engines", where I just help him in filling and correcting EKIO column of his comparative spreadsheet.

Today, we discussed about the limitation of free trial version of EKIO; please refer to our posts #23, #24 and #25 on that thread.

I (we) would highly appreciate if you could provide us some kind of full-functioning trial version, for limited period, of course. I believe this will invite much more people to try EKIO in multichannel (more than 4 CH) audio setup.

One another point from myself would be your possible development of "EKIO ASIO I/O driver" for elimination/bypass of ASIO4ALL, VB-Audio Virtual Cable, and VB-Audio Hi-Fi CABLE & ASIO Bridge.

I have been still inquired rather frequently regarding the "All in ASIO I/O Routings" in/out of EKIO using ASIO4ALL, VB-Audio Virtual Cable, and VB-Audio Hi-Fi CABLE & ASIO Bridge; for some (many?) people, however, the ASIO routings could be first high hurdle or barrier, and several people gave-up using EKIO because of this, even though I could give them very detailed instructions and easy-to-understand schematic presentations.

If you and or your reliable collaborator(s) could develop "EKIO ASIO I/O driver" which can be assigned as an audio device "EKIO v1.01 [ASIO]" by JRiver and Roon, that should be very nice and straightforward.

Also we would highly appreciate if EKIO can direct the output channels into any of the available ASIO driver(s) of specific DAC(s) without the help of ASIO4ALL.

Your kind attention and consideration will be highly appreciated.

with my best regards, as always,

Dear ****** *****,

Thank you for reaching out and expressing your enthusiasm for EKIO. I'm glad to hear that it is running smoothly in your audio setup.

Regarding your inquiry about an "EKIO ASIO I/O driver," I agree that it is an excellent idea and would be a significant improvement to the software. However, I regret to inform you that developing a dedicated driver is not currently on my roadmap due to time constraints. Nonetheless, your suggestion has been duly noted, and I will continue to evaluate the feasibility of such a feature in the future.

I am pleased to inform you that a new tutorial has recently been published on the EKIO website. This tutorial provides a comprehensive guide on integrating EKIO with Voicemeeter, offering users an intermediate workaround that simplifies the audio routing process. Compared to using ASIO4ALL and VB Audio Cable, this solution not only provides greater ease of use but also offers enhanced flexibility in managing audio streams.

http://www.lupisoft.com/ekio/articles/using-voicemeeter.htm

After reviewing your recent posts on the ASR Forum, I fully understand your request for a complete trial experience of EKIO, especially for multichannel audio setups. For someone who makes such a request, I can provide an evaluation license that grants access to all the software's features for a limited time period. Please feel free to direct interested individuals to me.

I would also like to take this opportunity to congratulate you on your personal audio installation. It is evident that you have put a great deal of thought and effort into optimizing your system for exceptional audio performance. Sharing your experience and setup details on the ASR Forum is valuable to the community, as it allows others to learn from your expertise and replicate your success.

Best regards,

Guillaume Badaut
Lupisoft
Important messages:
  1. New suggestion on ASIO I/O routing with EKIO using Voicemeeter Banana's ASIO driver without using ASIO4ALL and VB Audio Cable:
    http://www.lupisoft.com/ekio/articles/using-voicemeeter.htm
    It looks attractive and promising, even though I have not yet tested in my own multichannel audio setup since ASIO4ALL and VB Audio Cables are perfectly working.

  2. If you would be interested in getting free "evaluation license code" for full-functioning EKIO (no limitation at all, except for the time-limit of evaluation period), you would please contact with Guillaume of LUPISOFT by e-mail at [email protected].
Dear Guillaume,

Thank you indeed for your quick and comprehensive response to my recent inquiry.
I always much appreciate your efforts in developing/improving EKIO, and your intensive communication with EKIO users including myself.

I fully understand all of your information, and I would like to look forward to the possible development of "EKIO ASIO I/O driver" in the (near?) future; of course, I understand well about your time constrains, so please take your enough time for feasibility and technical assessments.

I quickly read through your new tutorial information on EKIO with Voicementer eliminating ASIO4ALL and VB Audio Cable;
http://www.lupisoft.com/ekio/articles/using-voicemeeter.htm
Yes, it looks very attractive, I will try full evaluation for it soon on my office desktop audio setup soon, and I may possibly implement in my main audio setup in downstairs listening room after fully validated.

Just let me have my generous request, please. I would highly appreciate, on the specific ASR thread, if I could refer/cite our communication here, if you have no problem.

I believe your intact wordings/descriptions should serve very nicely understanding present and future of EKIO for many audio enthu friends in ASR who would possibly contact you for "(time-limited?) evaluation license" of fully-functioning (no limitation) EKIO especially in multichannel setups.

I am looking forward to hearing your kind permission (or not) very soon.

With my very best personal regards to you, as always,

Hello ********,
Yes, of course, you can quote our conversation as you wish.
Best regards,
Guillaume Badaut
Lupisoft

Dear Guillaume,
I thank you so much for your kind permission!
I will share my new post(s) on the specific ASR thread hopefully tomorrow, and let you know the link(s) when I would finish it.
with my very best regards,
 
Last edited:
OP
Keith_W

Keith_W

Major Contributor
Joined
Jun 26, 2016
Messages
2,657
Likes
6,059
Location
Melbourne, Australia
Got it, thank you! At the moment I am very happy with Acourate Convolver. It does what I need, so I don't need to consider purchasing any other convolution software. However, Acourate is Windows only and if I decide to change platform i'll be back on the convolver market.

BTW on another note ... has anybody had any issues with VB-Cable? When I was using it, I had severe transmission problems. Latency was horrible, and there was a lot of packet loss which resulted in many dropouts. I have a video of my speakers stuttering because of transmission issues. This happened even when I was transmitting 44.1kHz audio with the maximum buffer size. If I tried 192kHz the client program wouldn't receive anything at all. I was testing Mitch's Hang Loose Convolver at the time, but I found that the problem persisted no matter what I was sending the stream to. A quick google shows that I am not the only one with this experience, but the solution is to lower the transmission rate and increase the buffer size, which I have already done, yet the problem persists. This experience made me wary of any convolver that requires VB-Cable for routing.
 

dualazmak

Major Contributor
Forum Donor
Joined
Feb 29, 2020
Messages
2,850
Likes
3,047
Location
Ichihara City, Chiba Prefecture, Japan
I feel sorry hearing your issue with VB-Cable.

At least in my Windows-based ASIO audio routing in my 10 PCs, fortunately I never experienced such problems with VB-Cable and VB-HiFi ASIO Bridge....
Have you tried complete uninstall-reinstall?
 
OP
Keith_W

Keith_W

Major Contributor
Joined
Jun 26, 2016
Messages
2,657
Likes
6,059
Location
Melbourne, Australia
I haven't, but I downloaded 2 of their products and both exhibited the same issue. I think I might need to experiment a bit more, make sure it's not a JRiver (sender) problem before I blame the cable. If I output directly from JRiver to Acourate Convolver, there is no issue. I haven't tried JRiver - VB-Cable - Acourate Convolver.
 

gnarly

Major Contributor
Joined
Jun 15, 2021
Messages
1,029
Likes
1,462
Hi all,
hope this is a good thread to ask about straight FIR file generators, without regard to convolution capability.
If not, pls direct me to start a new thread.

I don't need convolution software, as I have a hardware platform (qsys) that allows easy insertion of FIR files.
What I'm looking for are straight FIR files makers, ala rePhase, but automated.
I need software that lets a user define a target curve that includes xovers, and auto generate a FIR file that takes measurement to target.
It needs to work on a driver basis (which automatically gives global if ever desired).

RePhase is great, albeit entirely manual.

FirDesigner, https://eclipseaudio.com/fir-designer/
is my current go-to and is exactly what I want. Except that their business model is getting expensive, as they push people towards annual subscriptions.
Less-featured versions are hobbled to encourage upgrades, and the full-featured perpetual version has only one year of support, with no guarantee of ongoing compatibility with programs it is designed to interface with. Top of line is subscription only.
Hence my search......

I've looked at Acourate and Audiolense fairly deeply. Have Mitch's book, browse the their forums, etc.
Frankly, both seem over complicated and awkward compared to the direct ease of FirDesigner.
Which makes Open_DRC look to me like it's even more like it's down the overly complicated rabbit hole.

I've started looking again at REW as a FIR maker, given its Auto min-phase EQ capability, and its trace arithmetic capability.
It works, but the target specify and matching are pretty crude. Not to mention no linear phase capability. I think I'm gonna reach out to John M and see if linear phase targets and matching are a possibility.

I know rePhase can import REW's Auto-EQs. Works fine, other than the manual work involved to get phase flat throughout xover summations.

Anyway, looking for a straightforward FIR generator without excessive hair-slitting optimizations.
Thank in advance, Mark
 

mitchco

Addicted to Fun and Learning
Audio Company
Joined
May 24, 2016
Messages
643
Likes
2,408
@Keith_W I have not had any reports with VB-Virtual Audio Cable in the way you had. Sometimes there is an "exclusive" mode access error on Windows depending on the signal chain. But there are several other options, some mentioned in my earlier post.

Since your interface supports digital loopback, that is the "best" option to get working as that allows you to use ASIO. Here is an example with HLC.
 

mitchco

Addicted to Fun and Learning
Audio Company
Joined
May 24, 2016
Messages
643
Likes
2,408
BTW, those config files only allow you to specify delays in millisecond integers. The time difference between my midrange and tweeter is 0.167ms. Since the config files don't have enough resolution to properly time align my drivers, I used Acourate to do it.
Keith, that's Pavel's implementation in his VSTConvolver plugin. One can choose to implement float or double values to support decimal place delays like I have in HLC.

Most folks don't use that particular feature anyway as Acourate, Audiolense, etc., already support time aligning drivers via their FIR designer software, either automated or through methods as I have described in articles/book and Uli's sine wave convolution approach.
 

3ll3d00d

Active Member
Joined
Aug 31, 2019
Messages
212
Likes
176
looking for a straightforward FIR generator without excessive hair-slitting optimizations.
Looks like you covered all the options so just have to pick one even though none of them are ideal for you. As for acourate, you can certainly establish a repeatable/mechanical workflow which is easy to operate. UI can be fiddly but you get used to it.
 

mitchco

Addicted to Fun and Learning
Audio Company
Joined
May 24, 2016
Messages
643
Likes
2,408
It would probably be helpful to a lot of people to further explain and give use examples of constructing config files which hasn't been updated since 2006 and a lot of new tools have been developed since then. I create mine in a text editor and still refer to the sourceforge page nearly every time I do.

Not saying you should do this Mitch, as you mention you use apps that automatically generate the config but it could be a good group effort to try to flesh out and explain the possibilities.
Just pointing out that the reason the spec has not been updated since 2006 is because Pavel did a great job of defining a complete spec. I have been in touch with him over some design issues and he has patiently walked me through how to do it using the spec.

I have several examples in my operations guide, but there are so many permutations as to what is possible it is hard to give examples. Let me illustrate:

5p1w2subsBassManagement.png


This is a 5.1 surround system with an extra sub. So 6 inputs and 7 outputs. In addition, bass management using digital crossovers are also being used so that the bass below certain frequencies from each speaker (left, right, centre, left surround and right surround) are being offloaded to the 2 subs.

While there are 6 inputs and 7 outputs, there are 17 impulses responses (i.e. paths) to be convolved with the outputs from channel 7 to 16 to be summed (with a scale factor of 1) into the two subwoofer channels (3 and 6) as determined by the filter paths in the .cfg file.

The diagram visualizes the 17 paths in the .cfg file. Basically the left, right, center, left and right surround have digital XO's that offload to 2 sub woofers. The LFE channel feeds the two subs. So a direct path to each channel is 6 paths. The extra sub is the 7th path. and then each speaker has two feeds to the two subs. So 5 speakers to 2 subs is 10 paths, for a total of 17 paths (i.e. 17 convolvers).

As a software developer, I appreciate standards. Hand developing a .cfg file like this difficult, but easy for the FIR designer s/w to automatically output and one simply loads the .cfg file and volia! In my s/w dev training a long time ago, it was hammered into us that "make it easy for the user" otherwise, what is the point?

Since the convolution config standard can handle virtually any scenario, FIR filter designers should be automatically outputting the .cfg file and convolvers should be able to read the .cfg file. Some do, but the ones that don't make it painful on both ends of the equation. Folks should be asking the software vendor to comply with the standard.
 

DWPress

Major Contributor
Forum Donor
Joined
May 30, 2018
Messages
1,016
Likes
1,465
Location
MI
@mitchco - I'd love to see the .cfg file associated with the above example.

What Mitch didn't mention is you can also control individual channel volume and time delay within the .cfg file as well.
A good standard but rather convoluted to the uninitiated. ;)
 

HenrikEnquist

Member
Joined
Jul 1, 2021
Messages
82
Likes
110
OP
Keith_W

Keith_W

Major Contributor
Joined
Jun 26, 2016
Messages
2,657
Likes
6,059
Location
Melbourne, Australia
Keith, that's Pavel's implementation in his VSTConvolver plugin. One can choose to implement float or double values to support decimal place delays like I have in HLC.

If you mentioned that in your manual, I must have missed it. I will go back and take a look.

As you know, I had to write my own config file because the old version of Acourate I was using was not able to output config files. I have since upgraded to the new version and now I can see what you were talking about in your manual. I could write my own AUTOEXEC.BAT back in the day but that is about the limit of my config file writing skills.

That sourceforge manual is written in programmer's English, not normal English. Specifying a setting in hexadecimal "but without any 0x prefix" and talking about "least significant bits" and figuring out what an "output channel mask" might be trivial for you, but for laypeople this is quite a hurdle. To even put that in the manual makes inexperienced users like me wonder if this is something I have to deal with or something I can ignore. I had to Google "what is an output channel mask?" to find out that it has to do with channel mapping. I stared at those few paragraphs for hours and stressing about frying my tweeters in case I misunderstood "Output Channel Mask" and drawing diagrams on paper how I am going to route the signal. In the end, I did not have to assign a setting at all in the config file but by then I had already spent way too long worrying about it. With Acourate Convolver and HQP (and maybe in EKIO?) you can see the filter, see how it is routed, and see that the delay and channel gain is set to "0" in plain English. It makes a big difference to useability.

I hope you can see why I view this as a negative.
 
Top Bottom