Measuring speakers using music (Michael Tsiroulnikov's FSAF)

One of these 3 traces was measured with music. Which one is it?

  • Red - nothing goes fast as red!

    Votes: 3 18.8%
  • Blue - yawn...

    Votes: 1 6.3%
  • Black! You know what they say about black...

    Votes: 1 6.3%
  • What? Is there more than one trace?

    Votes: 4 25.0%
  • I need more hints... can I at least listen to the test file?

    Votes: 7 43.8%

  • Total voters
    16
Some years back, I came up with a Farina-like test for some IM orders using two simultaneous sweeps (frequency separated by a fixed percentage, and sweeping backwards high to low). That brought out IM "impulse responses" in negative time (but also in positive time, so not as clean for frequency responses).
Sounds interesting, but nonetheless there is no "truncated bit" of the IR resulting from a deconvolution that I can think of that would satisfy kgrlee's question:
Could we just convolve the truncated bit with our stimulus to get our residual?
 
I would argue that the collection of harmonics is a welcome side effect of the particular group delay profile of a log sweep and not a filtering process.
Fig 4 on p8 "Loudspeakers for AEC.pdf" is a spectrogram of a 15s Farina sweep. Looks like a swept narrow band filter to me 😊

This is the Matched Filter you convolve with your measured signal. If you now truncate to get your 'model IR' (which is presumed LTI), convolve that with your measured signal and then subtract, you can see where the deep blue trench comes from.

This acts on the Harmonics as well but at different 'times'. You get this with a Linear (TDS / Heyser) sweep as well but the Farina sweep just puts the results into nice separate IRs.
It doesn't make sense to me. If the LTI response came from a log sweep, for example, harmonic distortions are shifted to negative time but intermodulation and noise have effects that are distributed throughout the IR and are not separable from the LTI component.
If the "noise & intermod is distributed throughout the IR", that's 0.4/15s = 0.027 of the total 'noise & intermod' ie reduce the 'noise & intermod' by 0.23dB [20*log(1.0270] OK. I should be using 10*log... bla bla cos it's power but I think you get the picture.

The practical 'proof' would be to repeat DcibeL's measurements (or a similar speaker) in #109, #110 and check with REW Residual obtained with
  • FSAF and subtraction as presently programmed to compare with
  • the much simpler method I've proposed.
OK That's a cheat cos I already know the answer to that.

So we should compare the Residuals using both methods with 15s music. That should satisfy those who want to use REW Residual to listen to yuckiness of speakers.
"truncated bit" of the IR resulting from a deconvolution that I can think of that would satisfy kgrlee's question:
I should be clearer.

The "truncated bit" is what you cut out of the full raw IR (from the first deconvolution) to get the 'model IR'.

It's the stuff after the 'model IR' ... which for a Farina sweep, includes the second half of the FFT record with the Harmonic IRs
 
Last edited:
View attachment 1373622View attachment 1373623View attachment 1373624



I am truly terrible at names. But a gentleman posted a FLAC file of what he measured. This is the spectral content of it. Looks to be power line harmonics as the main contributors. This is Musical Spectrum Analyzer plugin in Foobar2000. This is kind of what happens. Trying to extract all the noise that is generally masked.

The situation is much popular music is that distortion of the harmonics is the basis for the sound. This is even true in Classical music, adding beat frequencies and harmonics is a tried, tested and useful method to make sound more impressive. Reeds on pipe organs, over blown brass instruments.
This measurement was just a loopback of my amplifier output, with no load. Of course, the residual is just transformer hum, typical of most low-mid range amplifiers with a linear power supply. Since the hum is a constant unwanted noise, it is captured very clearly in FSAF.
 
  • Like
Reactions: Kravchenko_Audio
The "truncated bit" is what you cut out of the full raw IR (from the first deconvolution) to get the 'model IR'.

It's the stuff after the 'model IR' ... which for a Farina sweep, includes the second half of the FFT record with the Harmonic IRs
I understood what you meant, but even if it worked (which I'm doubtful of) it would still only provide a residual which was valid for that sweep stimulus. It would not and could not extract the non-linear behaviour of the system in a way that could be applied to any other signal.
 
It would be nice to be able to use a different 'model IR' to get the residual in REW, rather than just the one derived from the stimulus.
but even if it worked (which I'm doubtful of) it would still only provide a residual which was valid for that sweep stimulus. It would not and could not extract the non-linear behaviour of the system in a way that could be applied to any other signal.
I see that now. The prime example is the Harmonic IRs in the 'truncated bit' from Angelo's method only generates the correct harmonics cos the original stimulus has the right frequencies at the right time. They can't possibly extract yucky stuff from another stimulus.

Mea culpa, mea culpa, mea maxima culpa .. for pontificating from the wrong orifice. :stop:
Could we just convolve the truncated bit with our stimulus to get our residual?
But I still think we can do this ... from a long IR derived from the same stimulus of course 😊
 
The "gray noise" file from wikipedia https://en.wikipedia.org/wiki/Grey_noise was used as excitation file with REW FSAF. As REW does not play .ogg it was converted to .wav with audacity. The (dynamic omnidirectional) microphone was very close to the loudspeaker cone (sealed box). The only difference between the files was the excitation high pass filter set in REW FSAF, 10Hz/60Hz. The level was much lower than x-max, same setting for both, far away from clipping anything. The residual files were then grabbed from the temp folder and upped 36dB with audacity. The background noise is my cheeky heater.

Questions left?

Best regards
Bernd
 
@bwaslo Was this incorporated into a release of Praxis or some other?
I'd like to test ESS, FSAF and your implementation empirically, and compare and contrast.

I've somewhat revived Praxis into a free version over the past few months, called PraxisFREE (clever, huh?). Runs in Windows. Because of some lost files, though, I had to take Praxis' scripting ability out.
(Download from ; https://www.libinst.com/FreeAppDownloads/).

This thread coincidentally brought up the old "Distortion Isolation" Praxis script, so I spent much of yesterday afternoon doctoring it into a guided measurement function in PraxisFREE. When I get more play time, I'll see about doing an isolation of a loudspeaker current distortion and posting that.

(I don't know how well this compares to the FSAF isolation process, I haven't had time to try that out. I don't often get to go down to the lab and play these days.)

If you want to play:
  • The Distortion Isolation thing in Praxis depends on sample matching between "Record" and "Play" (a.k.a. "capture" and "render", in Windows-speak) streams. So it only works with audio interface devices ("sound cards") that have ADC and DAC in the same unit and using the same clock source.
    -- I was running the process yesterday with a Presonus Studio 24C, which did great.

    You'd think that would be universal, but isn't. For instance, devices using the old TI PCM2900 chip , like the Behringer UCA202, for some reason use entirely different clocks for recording and playing, they don't even track each other over time.

  • The sample matching thing (called "Synchronous" type measurements in Praxis) needs a cable patched from the DAC L channel to the ADC R channel, so the software can track samples. Then, the DAC R channel drives whatever you are testing, and the ADC R picks up the response.

  • After installing PraxisFREE, run the program, it will initially ask what ADCs go with which DACs. You don't need to do the calibration processes for Distortion Isolation.

  • Then go to the Help menu on the Main Form, find the item "Distortion Isolation Guided Measurement". It should be pretty much self-explanatory from there.

    A good length of a WAV file, at 48ksps, would be about 20 seconds, you can use something like Audacity to prepare them (or you can do it in PraxisFREE, but probably Audacity is simpler for that). Longer or higher rate files takes longer to process, shorter is quicker, of course. Best to use the same sample rate in PraxisFREE as the WAV file uses (there's a little form for selecting that).
    setup form.png
In the result plot, the L channel (in TraceA, blue) will be both LTI and non-LTI parts, and the R channel (in TraceB, red) only the non-LTI noise and distortion parts. The result can be saved as a WAV file (or a Praxis ".px2" file) -- look in the "File" menu of the plot with the waveforms.
The program has a little applet to playback the waveforms if you want.

Have Fun.
 
"cable patched from the DAC L channel to the ADC R channel, so the software can track samples"...
That should be from DAC R channel to ADC R channel. Sorry bout that.

I think I got the details right in the in-program instructions though.
Ok, Management has given you the what for..... talk ☺️

If I had a buck for every time I did similar I'd have me a burger once a month!
 
  • Like
Reactions: bwaslo
Just a reminder that the real instruments sound like this

1738066028127.png

Those are viola, violin, bassoon and horn. Grand piano plays 30 harmonics from each key, and 4 keys at once will be over 100. An orchestra has 50 of those instruments playing together. Nothing before FSAF could throw anything remotely of this complexity into measurement, bravo!
I have no good microphone. If you want to try, I would recommend 2 pieces - Verdi Requiem and Saint-Saence Organ symphony. They mix orchestra, organ and choir, completely covering the most complex music case possible.
 
https://www.roomeqwizard.com/betahelp/help_en-GB/html/fsafmeasurement.html

USB microphones which rely on the USB clock are not suitable for FSAF measurement as the USB clock is not stable. That means, for example, UMIK-1, UMM-6 and Omnimic are unsuitable for FSAF measurements. It is possible to use a USB mic which has an internal clock source, such as UMIK-2.

I have only UMIK-1 mk2
I have a garbage mic, cannot do any of this.
But a reminder - there are some dedicated USB cards with separate power supply and high precision clock, much better than the USB from the computer motherboard. I use one of those and the effect is noticeable. They are like $25 but I don't have a link to give you, should be easy to find.