Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: MathAudio Room EQ for Foobar2000 (Read 74404 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: MathAudio Room EQ for Foobar2000

Reply #225
When you will finish creating  EQ curve, you can create impulse for convolver and use convolver instead of equalizer on playback. It will be much easier for CPU.
- Convolvers use much more CPU than Room EQ.
- Convolvers usually use a rectangular windows that add a specific distortion on low frequencies. The best convolver-based solutions use advanced window functions (Hann, Hamming, Kaiser, etc) that partially reduce the distortion of the rectangular window. In any case a convolver cannot accurately reproduce the frequency response of Room EQ.
- Convolvers add a substantial delay to the sound. Less delay = less accuracy.
- Convolvers operate at a single sampling rate. Theoretically, you need to record impulses for all sampling rates and switch them when necessary to be able to play audio files with different sampling rates. Practically, the convolver-based solutions often use resamplers to solve this problem. Resamplers distort the sound.
- Some convolvers add aduible pre-echo to the sound. Pre-echo came to our life with lossy codecs (MP3, Vorbis, etc) and it doesn't make our life better :D
We would be happy to use a convolver in Room EQ if it could be any better than our current algorithm :D

Re: MathAudio Room EQ for Foobar2000

Reply #226
On the 2nd pair (Ls50s), I was thinking of how much attentuation to apply across the rest of the resonse.
You may want to try -20,  -22 and -24 dB. Most probably -24 dB is the best solution is this case because the original frequency response of your speakers is good enough and "ideal" correction looks possible. In any case, it is better to try all options to be sure that my guess is correct.

Re: MathAudio Room EQ for Foobar2000

Reply #227
- Convolvers use much more CPU than Room EQ.
- Convolvers usually use a rectangular windows that add a specific distortion on low frequencies. The best convolver-based solutions use advanced window functions (Hann, Hamming, Kaiser, etc) that partially reduce the distortion of the rectangular window. In any case a convolver cannot accurately reproduce the frequency response of Room EQ.
- Convolvers add a substantial delay to the sound. Less delay = less accuracy.
- Convolvers operate at a single sampling rate. Theoretically, you need to record impulses for all sampling rates and switch them when necessary to be able to play audio files with different sampling rates. Practically, the convolver-based solutions often use resamplers to solve this problem. Resamplers distort the sound.
- Some convolvers add aduible pre-echo to the sound. Pre-echo came to our life with lossy codecs (MP3, Vorbis, etc) and it doesn't make our life better
What convolver are you talking about? Aren't you confusing convolver with FIR filter? I use https://hydrogenaud.io/index.php?topic=85107.0 You can test it yourself.
It uses significantly less CPU, than MathAudio Room EQ. It doesn't add distortion by itself, it doesn't add pre-echo (it is accurate down to ~-150 dB). And it will accurately reproduce frequency response of Room EQ. It operates at single sample rate,yes. So resampler should be used in DSP chain before it. But resamples do not "distort the sound" unless these are really shitty resamplers. And what do you mean by "Less delay = less accuracy"? Absolute delay doesn't matter when just listening to music.

Re: MathAudio Room EQ for Foobar2000

Reply #228
What convolver are you talking about? Aren't you confusing convolver with FIR filter? I use https://hydrogenaud.io/index.php?topic=85107.0 You can test it yourself.
It uses significantly less CPU, than MathAudio Room EQ. It doesn't add distortion by itself, it doesn't add pre-echo (it is accurate down to ~-150 dB). And it will accurately reproduce frequency response of Room EQ. It operates at single sample rate,yes. So resampler should be used in DSP chain before it. But resamples do not "distort the sound" unless these are really shitty resamplers. And what do you mean by "Less delay = less accuracy"? Absolute delay doesn't matter when just listening to music.
I am not confusing convolver with FIR filter because there is no difference between convolver and FIR filter  :)  Simply compare the mathematical description of convolver with the mathematical description of FIR filter — they are the same: http://musicweb.ucsd.edu/~trsmyth/filters/FIR_Convolution.html
We call it as a convolver when we think in time domain, and we call it as a FIR filter when we think in frequency domain.

The DSP theory states that FIR filters cannot be as fast and accurate (simultaneously) as IIR filters. That is what I meant. Sorry, I don’t discuss any specific products of other developers.

IMO, all real-time resamplers substantially reduce the quality of the sound. Just look at their distortion: https://src.infinitewave.ca/ Best resampling algorithms cannot process the sound "on the fly" because they use too much CPU. That is why Room EQ supports all sampling rates without resampling.

You may not agree with me because I am a mad audiophile :)

You are right that the absolute delay of the audio signal doesn’t matter when we don’t watch video or play musical instuments.

Re: MathAudio Room EQ for Foobar2000

Reply #229
IMO, all real-time resamplers substantially reduce the quality of the sound
Opinions are useless in this case. Results of ABX test are needed.
https://hydrogenaud.io/index.php?topic=3974
Quote
TOS 8. All members that put forth a statement concerning subjective sound quality, must -- to the best of their ability -- provide objective support for their claims.  Acceptable means of support are double blind listening tests (ABX or ABC/HR) demonstrating that the member can discern a difference perceptually, together with a test sample to allow others to reproduce their findings.  Graphs, non-blind listening tests, waveform difference comparisons, and so on, are not acceptable means of providing support.

The DSP theory states that FIR filters cannot be as fast and accurate (simultaneously) as IIR filters.
Now, let's go to practice... Here is archive containing 5 files (original; processed by MAREQ; processed by convolver; preset for MAREQ; impulse for convolver) -  https://www.dropbox.com/s/utx3ub1fjgm0pop/mareq%20vs%20convolver.zip?dl=1
Can you find any significant differences between two processed files at least in pictures? Can you hear these differences in ABX test?
Difference in processing speed: ~60x for MAREQ vs ~1000x for convolver (as reported by fb2k's decoding speed test).

P.S. I am not trying to doubt usefulness of Mathaudio Room EQ.

Re: MathAudio Room EQ for Foobar2000

Reply #230
Quote
Convolvers use much more CPU than Room EQ.
Do you have numbers that can prove this statement?
Are you aware of fact that there is various ways to implement convolver?
(Uniform or non-uniform partitioned convolutions are one of them)
They all use FFT in one way or another.
I really hope you do not use direct convolution approach.

Re: MathAudio Room EQ for Foobar2000

Reply #231
IMO, all real-time resamplers substantially reduce the quality of the sound
Opinions are useless in this case. Results of ABX test are needed.
https://hydrogenaud.io/index.php?topic=3974
We don“t use resamplers in our products because all of them add a measurable distortion to the sound. If your resampler satisfies you, it is fine. I don't see any reasons to argue further.

Re: MathAudio Room EQ for Foobar2000

Reply #232
Quote
Convolvers use much more CPU than Room EQ.
Do you have numbers that can prove this statement?
Are you aware of fact that there is various ways to implement convolver?
(Uniform or non-uniform partitioned convolutions are one of them)
They all use FFT in one way or another.
I really hope you do not use direct convolution approach.
If we try to replicate an IIR by means of an FIR (convolver) without sacrificing such important characteristics as frequency response, phase response and digital noise, FIR filters use more CPU than IIR filters.

For example, a standard second-order IIR filter uses 5 multiplications. If we replicate it by means of a FIR filter, we cannot implement it with 5 multiplications even if we use a FFT. The problem lies in accuracy and digital noise. FIR filter is always less accurate if we use the same number of double-precision multiplications in FIR and IIR.

Re: MathAudio Room EQ for Foobar2000

Reply #233
So you are saying that your software uses IIR? What order of IIR? and are you using second order sections? How to get linear phase out of it?

Re: MathAudio Room EQ for Foobar2000

Reply #234
archive containing 5 files (original; processed by MAREQ; processed by convolver; preset for MAREQ; impulse for convolver) -  https://www.dropbox.com/s/utx3ub1fjgm0pop/mareq%20vs%20convolver.zip?dl=1
Actually, binary comparison reported differences between processed files at ~ -52 dB.
With longer impulse differences are at ~ -108 dB -  https://www.dropbox.com/s/fnmxkwpgqy6qh89/mareq%20vs%20convolver%20new.zip?dl=1 And processing speed for convolver with long impulse is ~140x, still noticeably faster than MAREQ.

 

Re: MathAudio Room EQ for Foobar2000

Reply #235
So you are saying that your software uses IIR? What order of IIR? and are you using second order sections? How to get linear phase out of it?
Yes, it uses high-order IIR filters. The order is variable.
A resonating room can be considered as a sort of an IIR filter with its poles and zeros. Consequently, the audio system can be considered as two serially connected IIR filters: (1) Room EQ and (2) room. We linearize the phase of the system, not Room EQ only. Room EQ is a sort of an "inverse" IIR filter which tries to correct both amplitude and phase problems of another IIR filter (room). A linear-phase filter is much worse in this sense because it corrects the amplitude response only and unavodably adds some pre-echo to the sound.

Re: MathAudio Room EQ for Foobar2000

Reply #236
You can make as many sets of measurements as you wish and store them as SNR files. After that you can use the "Load preset" button to load them one by one and compare the sound.
Mmh, I can not make measurements and store them individually nand afterwards combine them as multi-measurements. That would be great to test out different multi-measurement configurations.

So what I think would be great is to make any number of measurements. For example a set of L/R measurements for a specific spot. Save that (manually named or just automatically numbered) on the hard disk. _Then_ after the measurement process is complete one would choose (multi-selection) the wanted measurements and Mathaudio would generate the filter accordingly. So one could make 9 measurements for example and then try if the result will improve when placing additional measurements inside the grid, or alternativly outside the grid (so enlarging the grid).

Because Mathaudio Room EQ is a black box solution this would give the users (who want that) a bit of extra parameters to test. Of course one can also do this manually and make different sets of measurements, but a large number of measurements would need to be repeated.

One question: When Mathaudio uses IIR filters it can't create a linear phase. So how das Mathaudio "take care of the phase"?

Re: MathAudio Room EQ for Foobar2000

Reply #237
One question: When Mathaudio uses IIR filters it can't create a linear phase. So how das Mathaudio "take care of the phase"?
Non-causal IIR filters can create a linear phase if necessary. The problem lies in the fact that a standard room never has a linear phase response. MathAudio Room EQ tries to correct the phase response of the room. The term "linear phase filter" looks very attractive, however, linear-phase filters don't reduce the phase distortion of the room. More important, they add some audible pre-echo to the sound. The pre-echo is a very serious problem of linear-phase filters. It is possible that some people like the pre-echo. I'd compare it with the "echo" button on some cheap PC speakers. Some people like it. But it is important to understand that such sound is not honest. Never ever use linear-phase filters if you need a honest sound.

Re: MathAudio Room EQ for Foobar2000

Reply #238
Thanks for the explanation about phase.

What do you think about the idea of allowing to make and save a bunch of single measurements which then can be combined to create a new filter. That would be a huge time-saver and allow much better to fine-tune the correction.

Could be like that:
GUI Option (tick box) → save single measurements (I would just auto-number those or present a field which would allow to override the auto-number)
Then when opening an SNR file one would not choose a single SNR, but use multi-select to choose all wanted measurements to be combined for a new filter. Possibly the single measurements could be named .SNR1 to show that they are meant to be combined for the final filter.

Another additional wish / idea I have would be to show in the GUI which .SNR file is active and to be able to switch to a second one with one click. This has two use-cases:
1) finding the best filter for a given setup
2) quick option to allow to change between two filter setups (e.g. for single-place listening and one for multi-seat correction).

Idea how to implement that: Implement two buttons in the GUI  which show the SNR name in / above those buttons). A click on the button switches to the relevant SNR file. To load the SNR files one could add a button "Load 2nd SNR file" or something like that.

What do you think?

Re: MathAudio Room EQ for Foobar2000

Reply #239
What do you think about the idea of allowing to make and save a bunch of single measurements which then can be combined to create a new filter.
Another additional wish / idea I have would be to show in the GUI which .SNR file is active and to be able to switch to a second one with one click.
You ideas are correct and we already thought about these features. The problem lies in the fact that we wish to keep the Room EQ's interface as simple and understandable as possible. We tried to draw a new interface and it looks too complicated. Besides that professional DAW's already include preset switches for VST plug-ins. It is possible that the Foobar2000 developer is going to include a preset switch too. Such a preset switch could work with all Foobar components including Room EQ.

Re: MathAudio Room EQ for Foobar2000

Reply #240
2) quick option to allow to change between two filter setups (e.g. for single-place listening and one for multi-seat correction).
It is possible that the Foobar2000 developer is going to include a preset switch too.
foobar2000 already supports saving and switching DSP chain presets. For fast switching DSP Switcher can be added to Toolbar, or DSP chain(s) can be assigned to button(s) in Toolbar or to keyboard shrortcut(s).

Re: MathAudio Room EQ for Foobar2000

Reply #241
foobar2000 already supports saving and switching DSP chain presets.
Great, I was not aware of it.
Another additional wish / idea I have would be to show in the GUI which .SNR file is active and to be able to switch to a second one with one click. This has two use-cases:
1) finding the best filter for a given setup
2) quick option to allow to change between two filter setups (e.g. for single-place listening and one for multi-seat correction).
I've just tested the Foobar's "DSP chain presets" feature and it perfectly works with Room EQ, so you can use it to switch between two or more Room EQ presets.

Re: MathAudio Room EQ for Foobar2000

Reply #242
I do use the 'DSP chain presets' and have the drop down to pick the correct setting on my main Foobar2000 window. However, I believe that doesn't carry to the specific MathAudio Headphone or Room EQ preset. Those presets I change for various headphones, room. and speaker settings. Small effort given that the two Foobar2000 versions of MathAudio are provided at no cost.

Re: MathAudio Room EQ for Foobar2000

Reply #243
I do use the 'DSP chain presets' and have the drop down to pick the correct setting on my main Foobar2000 window. However, I believe that doesn't carry to the specific MathAudio Headphone or Room EQ preset.
Foobar2000 is able to memorize the specific Room EQ and Headphone EQ presets by means of the "DSP chain presets" feature. I've tested this feature and it is very convenient. Foobar2000 already works like a professional digital audio workstation (DAW): professional DAWs are able to memorize all specific settings of audio plug-ins. It is important to "apply" the current preset by means of the "Apply" button before saving it as a "DSP chain preset".

Re: MathAudio Room EQ for Foobar2000

Reply #244
Then you've corrected my post and appreciate the update. I will start to save specific DSP chains with varying MathAudio settings. Thank you for that.

Quick question: is there a way to create a windows startup command or shortcut that calls the a specific saved DSP chain? Just curious.

Re: MathAudio Room EQ for Foobar2000

Reply #245
Quick question: is there a way to create a windows startup command or shortcut that calls the a specific saved DSP chain? Just curious.
I never tried the foobar's command-line options, so I don't know whether it is possible or not.

Re: MathAudio Room EQ for Foobar2000

Reply #246
Ok, so...does MathAudio support kernel streaming in Foobar? I use kernel streaming with the M2Tech Young driver with Hiface. When I check the In-Out/Output Device, it shows "SPDIF Interface-Young 1.0", but not the kernel streaming option.

Re: MathAudio Room EQ for Foobar2000

Reply #247
Ok, so...does MathAudio support kernel streaming in Foobar? I use kernel streaming with the M2Tech Young driver with Hiface. When I check the In-Out/Output Device, it shows "SPDIF Interface-Young 1.0", but not the kernel streaming option.
Yes, kernel streaming is supported because Foobar2000 supports KS: https://www.foobar2000.org/components/view/foo_out_ks  
Please note that the "In/Out" menu lists the devices that can be used for measurement only. This menu doesn't list all the devices that can be used for the playback.

 
SimplePortal 1.0.0 RC1 © 2008-2021