V5.20.10 Early Access

Breeman

Member
Joined
Jan 9, 2019
Posts
186
The plan is to create a FIR inverse filter to compensate for both the magnitude and phase response followed by matching of the left and right channels such that both the magnitude and phase looks similar. The spatial measurements (per channel) are constrained to a smal listening zone to derive an average response representative of the zone to be optimised. Because the responses change significantly with a small change in the spatial locations, the equalisation of an average response is required to minimise overfitting and overcompensating by the inverse filter. Granted, the dispersion of the impulse response is an issue in these types of environments and it helps if option exist to minimise it. I think it will be a great idea to also have an averaging function based on an RMS averaged magnitude and a vector averaged phase to see which works better in this case. I will appreciate it if you can consider it.
Forgot to mention that the phase equalisation and matching will be constrained mostly below 1 kHz because it seems to have more perceptual ramifications there.
 

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Posts
8,033
The plan is to create a FIR inverse filter to compensate for both the magnitude and phase response
That would be really, really problematic. None of those measurements, individually or collectively, are useful for inverse filtering, they are just too heavily contaminated by reflections, some much larger than the direct sound. I think your best options might be to take the rms average, generate a minimum phase response from it and EQ that or use the vector average to generate EQ for the region below a few hundred Hz.

Here is how the Hybrid average looks in any case, noise and acausal content in the impulse response are only 25 dB or so below the peak, which is a big issue for filter generation:

53558



53556
 

Breeman

Member
Joined
Jan 9, 2019
Posts
186
That would be really, really problematic. None of those measurements, individually or collectively, are useful for inverse filtering, they are just too heavily contaminated by reflections, some much larger than the direct sound. I think your best options might be to take the rms average, generate a minimum phase response from it and EQ that or use the vector average to generate EQ for the region below a few hundred Hz.

Here is how the Hybrid average looks in any case, noise and acausal content in the impulse response are only 25 dB or so below the peak, which is a big issue for filter generation:

View attachment 53558


View attachment 53556
 

Breeman

Member
Joined
Jan 9, 2019
Posts
186
That would be really, really problematic. None of those measurements, individually or collectively, are useful for inverse filtering, they are just too heavily contaminated by reflections, some much larger than the direct sound. I think your best options might be to take the rms average, generate a minimum phase response from it and EQ that or use the vector average to generate EQ for the region below a few hundred Hz.

Here is how the Hybrid average looks in any case, noise and acausal content in the impulse response are only 25 dB or so below the peak, which is a big issue for filter generation:

View attachment 53558


View attachment 53556
Is the Hybrid average a combination of RMS average for magnitude and Vector average for phase? It sure looks that way to me from the screenshots:). The car environment is a very diificult environment to work with, your observations are correct, there are reflections which are larger than the direct signal, that is the nature of the car environment unfortunately. Frequency variable smoothing can be used to help deal the adverse effects of reflections and minimise overcompensation by the filter; it will be used before the inverse filter. Using a minimum phase for EQ in a car seems non ideal to me because of heavy reflections hence I wanted to try other options like the Magn phase Average or the new Hybrid average. The complex phase average seems like a sensible option to try out and there are several aritcles in the literature which explore this route, but I guess the proof is in the pudding:). Is the Hybrid average option available foe testing yet? Sorry to push and thanks for looking into this issue.
 

Breeman

Member
Joined
Jan 9, 2019
Posts
186
That would be really, really problematic. None of those measurements, individually or collectively, are useful for inverse filtering, they are just too heavily contaminated by reflections, some much larger than the direct sound. I think your best options might be to take the rms average, generate a minimum phase response from it and EQ that or use the vector average to generate EQ for the region below a few hundred Hz.

Here is how the Hybrid average looks in any case, noise and acausal content in the impulse response are only 25 dB or so below the peak, which is a big issue for filter generation:

View attachment 53558


View attachment 53556
Quick question. How did you generate the magnitude and phase response in one screen like that?
 

Breeman

Member
Joined
Jan 9, 2019
Posts
186
Here is how the Hybrid average looks in any case, noise and acausal content in the impulse response are only 25 dB or so below the peak, which is a big issue for filter generation:
I see the application of frequency smoothing in REW has no effect on the impulse response. Not that it will help much in this case but the application of smoothing could be one of the ways to minimise the noise in the impulse response. Is this a design decision not to do it this way?
 

natebow

Registered
Joined
Jul 19, 2022
Posts
13
5.20.10_AMD64 shows UMC1820 [plughw[1,0] for both input and output - it plays audio on outputs 1+2, but no visible input on Input1 even though alsamixer shows the gain is up to 0db, and the level is set a few db below clipping.
 

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Posts
8,033
Is the Hybrid average a combination of RMS average for magnitude and Vector average for phase?
Yes. I have implemented it, I'm still mulling over whether it makes sense to release a build with it. Or whether to retain the Magn phase smoothing for that matter.
Quick question. How did you generate the magnitude and phase response in one screen like that?
That's just a capture of the SPL & Phase graph.
I see the application of frequency smoothing in REW has no effect on the impulse response. Not that it will help much in this case but the application of smoothing could be one of the ways to minimise the noise in the impulse response. Is this a design decision not to do it this way?
The time and frequency domains don't correspond in that way, there is no time domain equivalent to fractional octave smoothing. A constant bandwidth (in Hz rather than octaves) smoothing of frequency domain values is windowing in the time domain, the broader (more smoothed) the frequency domain window, the narrower the equivalent time domain window - the familiar effect of applying a narrow window to the impulse response. Low pass filtering (i.e. smoothing) in the time domain is low pass filtering in the frequency domain, it just cuts the bandwidth - consider the appearance of a sub impulse response, for example.

Much of what looks like noise in the hybrid averaged impulse response is just the time domain view of the combination of the hybrid average's magnitude and phase. It isn't noise, it's what an impulse response looks like to produce that combination of magnitude and phase. The operation to produce the magnitude and phase values is not physically realisable and the resulting impulse response is not causal. Contrast that with vector averaging, for example, which is the equivalent of averaging the impulse responses themselves.
 

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Posts
8,033
5.20.10_AMD64 shows UMC1820 [plughw[1,0] for both input and output - it plays audio on outputs 1+2, but no visible input on Input1 even though alsamixer shows the gain is up to 0db, and the level is set a few db below clipping.
Any devices offered by the new provider would show PCM in their names.
 

natebow

Registered
Joined
Jul 19, 2022
Posts
13
Yes, pcm: pulse and pcm: default. I normally don't allow pulse audio to play with the multitrack interface because pulseaudio is kinda brain dead. That interface is normally reserved for ALSA. If I allow it in pulseaudio mixer, using either pcm interface in REW causing it to crash with no output
 

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Posts
8,033
Could you use the Generate debug file option on the REW soundcard preferences and attach the file to see what is enumerated? The idea of the new provider is to directly access the ALSA PCM devices. It would also be helpful to see the REW log files, their location is shown in the About REW dialog. Ideally just zip and attach that REW log folder.
 

Breeman

Member
Joined
Jan 9, 2019
Posts
186
Yes. I have implemented it, I'm still mulling over whether it makes sense to release a build with it. Or whether to retain the Magn phase smoothing for that matter.
I could test it if you have it implemented in a separate (test) build.
 

natebow

Registered
Joined
Jul 19, 2022
Posts
13
UMC1820 generates output but no input.
pcm-default just crashes the program
 

Attachments

  • pcm-default_soundcard_debug.txt
    278.3 KB · Views: 25
  • umc1820_soundcard_debug.txt
    278.4 KB · Views: 20
  • rew_output.txt
    12 KB · Views: 16
  • roomeq_wizard0.log.txt
    365 bytes · Views: 18
  • roomeq_wizard1.log.txt
    363 bytes · Views: 21

thothsong

Member
Joined
Jun 29, 2021
Posts
405
This screenshot is with V5.20.11 on Windows 10, when using file playback. I don't recall the Choose a ref output remaining on screen before?
53650
 

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Posts
8,033
This screenshot is with V5.20.11 on Windows 10, when using file playback. I don't recall the Choose a ref output remaining on screen before?
It shouldn't be there, before it was hidden by the sweep waveform preview. I'll fix it for the next build.
 

lorrain

New Member
Joined
Sep 28, 2020
Posts
45
Location
France
More  
Main Amp
SONY
I appreciate a lot this evolution :
Pro upgrade: RTA input level calibrate button allows calibration of the full scale input voltage for any or all of the current input channels

But, I notice a différence in behavior between RTA and Scope concerning this evolution.
Changing FS sine Preset in Scope updates FS sine Preset in RTA which is correct.
But changing FS sine Preset in RTA does not update FS sine Preset in Scope which seems to me not correct.
 

lorrain

New Member
Joined
Sep 28, 2020
Posts
45
Location
France
More  
Main Amp
SONY
I notice a slight pb in signal generator square wave with the option « Band limits square wave samples ».
During Generator running, when « Band limits square wave samples » is not selectionned, we can change Duty Cycle in real time with immediat effect on the output signal (scope observation). All is OK.
(signal drawing in generator Window is not update but it is not the subject of this post)
During Generator running, when « Band limits square wave samples » is selectionned, changing Duty Cycle has no effect on the output signal (scope observation). It is not normal. Sometimes, there is a changement but with an old value. It depends on the manipulations before.
 

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Posts
8,033
Thanks, I have fixed that. There will be a small delay though, since the whole sequence must be regenerated for the new duty cycle.
 

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Posts
8,033
The files linked in the first post have been updated with bug fixes and some minor feature additions (listed in italics in the post).
 

serko70

Member
Joined
Oct 13, 2017
Posts
293
Location
Germany
More  
Preamp, Processor or Receiver
Marantz SR6015
Main Amp
Rotel Michi X3
DAC
Oppo 205
Computer Audio
Intel NUC
Universal / Blu-ray / CD Player
Oppo 205
Streaming Subscriptions
TIDAL, ROON
Front Speakers
Focal Kanta 2
Center Channel Speaker
Linn Trikan
Surround Speakers
Focal Dome Flax
Surround Back Speakers
Focal Dome Flax
Front Height Speakers
Focal Dome Flax
Rear Height Speakers
Focal Dome Flax
Subwoofers
Focal Sub Air
Video Display Device
LG 65 3D OLED
Dear John,

I am inverting the windowed response over a target curve (Harman) with the new regulated vector division (I use 5 dB max regularisation, tried unticked/increased upper limit as well) and using the minimum phase version of that as the correction impulse. It results in near perfect correction but I cannot avoid an SPL drop in the very high frequency region (above 10 kHz) as seen in the orange line below. I tried to merge the inverted graph with a 0 dB flat target line at 5000 kHz and cut the correction there but even this results in a fixed drop of -3 dB in the HF region:

53711


I attached the zipped .mdat. Is there any way to avoid this drop?
 

Attachments

  • Inversion.zip
    12.8 MB · Views: 42

John Mulcahy

REW Author
Thread Starter
Joined
Apr 3, 2017
Posts
8,033
Are you using the latest build, updated last night? Here is what I get from using:

- Left default divided by target (no regularisation) to make A/B
- 1/A on that response with 8% regularisation and target level 3.6 dB
- A * B on Left default and 1/A

53713
 

serko70

Member
Joined
Oct 13, 2017
Posts
293
Location
Germany
More  
Preamp, Processor or Receiver
Marantz SR6015
Main Amp
Rotel Michi X3
DAC
Oppo 205
Computer Audio
Intel NUC
Universal / Blu-ray / CD Player
Oppo 205
Streaming Subscriptions
TIDAL, ROON
Front Speakers
Focal Kanta 2
Center Channel Speaker
Linn Trikan
Surround Speakers
Focal Dome Flax
Surround Back Speakers
Focal Dome Flax
Front Height Speakers
Focal Dome Flax
Rear Height Speakers
Focal Dome Flax
Subwoofers
Focal Sub Air
Video Display Device
LG 65 3D OLED
I didn't have the latest version, updated now and with your suggested "inverse of inverse" trick, it all works beautifully now.

53714


Many thanks.
 
Top Bottom