SPL measurements in Speaker Workshop: need help

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Hi everyone. I've been trying to measure SPL using Speaker Workshop, and I'm stuck at one place for more than two nights, can't see any way out.

Here's the background:
  • I'm getting guidance from one or two experienced users of SW, online and offline. Even they are finding things confusing.
  • I've used SW and this hardware setup with a Claudio Negro jig for a month or more, for impedance measurements. I've even done sealed-box Vas measurements. All that's working fine.
  • My sound card supports upto 44.1KHz, I'm certain. I'm not certain of higher frequencies, though SW says it supports upto 48KHz.
  • I'm using a Panasonic mic capsule and the mic input of my card, without any loopback reference input, for SPL measurements. I know how to use "Loop record" and test signals to set the levels correctly to get clean signals recorded. I also know how to avoid overloading or "furry" signal graphs.
  • My mic and the mic input of my card can handle high frequencies comfortably. I did a "Loop record" in SW with sinewave test signals at 1KHz, 4KHz, 8KHz, and 10KHz, and all of them showed up cleanly at the same amplitude with no clipping or sawtooth shape.

Now, even after all this, I am stuck. Here are my problems:
  • If I set sampling rate to 24KHz, I'm getting a pulse when I do "Measure->pulse response":
    An externally hosted image should be here but it was not working when we last tested it.

    At 44.1KHz, I get no pulse. I only get low-amplitude static on the graph. This is in spite of the fact that the SW VU meter shows me signals being recorded at respectable amplitudes. Where do those signals go? I've tried extending the X-axis of my graph from -100msec to +200msec, but couldn't find the high-amplitude signals.
  • At 24Khz, I'm able to get a fairly clean gated SPL graph at about 1 metre distance:
    An externally hosted image should be here but it was not working when we last tested it.

    The trouble with this is that the curve is rolled off at the top end, even though I'm measuring SPL for a commercially made full-range speaker, which certainly can produce even 20KHz signals. This is the same speaker which I used to generate sine waves upto 10KHz when calibrating my mic and SW using test signals.

What do I have to do to (i) get clean MLS pulses at 44.1KHz, and (ii) measure SPL correctly? Please can you help?
 
RMAA for in-room freq response

Incidentally, I just used RMAA to measure the frequency response of my entire chain, including speaker, mic, sound card, and audio driver software. This is in-room response, with speakers in a non-ideal position for clean MLS (but then I was not doing MLS anyway).
An externally hosted image should be here but it was not working when we last tested it.

What's clear from this is that there is no high-freq rolloff in the mic, mic preamp, sound-card, or audio device driver... I'm able to get very reasonable SPLs right up to the 17-18K region.
 
phase_accurate said:
Have you ever measured the response if you connect your soundcard-output to its input ? This way you should be able to get a correction curve for your card at least. But be careful about the input level.
I haven't done this before for SPL measurement, so I'll do it tonight. However, I've done loopback impedance when I calibrated the sound card for impedance measurements, through the jig. And I also dragged my feet about doing a loopback SPL because I know others have used this sound card with SW. This card is listed in the list of sound cards in the SW hardware spreadsheet. It's listed as "Creative MP3+ USB", the name by which it is known in the North American market.
 
tcpip:

I don't have any experience with Speaker Workshop or the Creative MP3+ USB soundcard, but I had a couple thoughts when reading your problem description...

tcpip said:
If I set sampling rate to 24KHz, I'm getting a pulse when I do "Measure->pulse response"

At 44.1KHz, I get no pulse. I only get low-amplitude static on the graph.

Some soundcards internally only work at 48kHz and perform sample rate conversion when working at other rates.

24kHz to 48kHz is a straight forward integer conversion, which is less likely to screw up the impulse response.

44.1kHz to 48kHz is a non-integer conversion. It seems likely to me that this is the cause of bad impulse readings at 44.1kHz.

I'd suggest trying the test at 48kHz. If my guess is correct, it should work better.

At 24Khz, I'm able to get a fairly clean gated SPL graph at about 1 metre distance:
The trouble with this is that the curve is rolled off at the top end, even though I'm measuring SPL for a commercially made full-range speaker, which certainly can produce even 20KHz signals.

In digital audio, the theoretical highest frequency that can be represented is half the sampling rate.
For a 24kHz sampling rate, the maximum frequency is 12kHz, which is consistent with the graph you showed.
For a 48kHz sampling rate, the maximum frequency is 24kHz, which should be high enough for what you want to do.

Hopefully things will work better for you at 48kHz.

Regards,
Brian. :cubist:
 
Also, with my sound card (SB Audigy 2), it is very important to do a channel difference calibration before starting measurements, whether you're measuring impedance or amplitude response. To do this, you connect the outputs to the inputs on the card and select 'options', 'calibrate', and under channel difference, 'test'. As best I can figure out, SW stores this calibration file with the measurement file - it is not carried over between different files, so you need to do it every time you start a new file. However, I've noticed that the difference between channels seems to vary over time with my card, so I redo this measurement every time I start a new measurement session, even if it's in the same file which already contains a calibration.

John
 
I'm back. It works now, and I don't know why

I've been away for a long time, just trying to get my observations straight.

I've been able to make SPL measurements work at 48KHz, and I don't know why it works now, but didn't work earlier. However, I'll record full details of my experience here, hoping that some poor idiot like me who treads this path later can benefit.

First of all, based on inputs from you guys and others over here and here, I decided to do a pure loopback test, ie. without a mic. I connected the left lineout of the soundcard to the left line-in, and configured SW to look at left channel for mic input. I also configured the WinXP sound devices to use line-in for input, instead of mic.

Then, instead of trying SW, I tried RMAA to see what the sound card's response was like. The frequency response was straight till almost 20K. I tried this at sampling rates of 44.1KHz and 48KHz, and both gave sort-of similar results. This clearly indicated that at least for sine waves, the card worked well at both sampling rates. (I'd been suspicious of 48KHz earlier.) Here is a summary of the results:
An externally hosted image should be here but it was not working when we last tested it.


I then kept the RMAA FR curve in mind, hoping I could replicate it using SW in loopback mode. With this hope, I switched to SW.

SW gave me lovely spikes with the loopback cable at 24KHz sampling rate:
An externally hosted image should be here but it was not working when we last tested it.

But the amplitude was really, really low. I tried changing both input and output volume levels in Windows, but I couldn't get the spike to be any taller. I despaired, because I was pretty sure that if I got such a short spike with a mic, it would simply be lost in the noise.

At 44.1KHz sampling rate, I got proper noise:
An externally hosted image should be here but it was not working when we last tested it.

And ditto at 48K.

It was late, I was very sleepy, and I was on the phone with Angshu while I did all this. He was visiting Bombay, but in his hotel at the other end of town. He had returned to his room after a bad day at work. He was guiding me, asking me to reduce one level, try increasing another level, change sample size, sample, rate and so on. (This phone call lasted till about midnight, when both of us were dropping from sleep.)

I tried changing only the following things (yes, I'm 100 percent certain it was only these):
  • line in volume level in Windows
  • output volume level in Windows
  • sample size (8K, 16K, 32K, and longer)
I kept the sampling rate fixed at 48KHz, and all this was in loopback mode, without any mic. I kept repeating "Measure->Pulse response".
And suddenly, I got a spike after about a dozen attempts:
An externally hosted image should be here but it was not working when we last tested it.

My first reaction was that I was seeing things. I tried again, and got it again. I told Angshu to shut up for 30 seconds while I re-checked, and I got it a third time. I changed sample rate to 44KHz, and I got noise. I changed it to 24KHz, and I got a sharp spike as always (24K has always worked very well for my setup.) I changed the setting back to 48K, and I got the spike again.

It was clear that I was on to something. The next thing that I noticed was that the spike was too short... I would need a much taller spike in reality. I then thought that it was obvious why I wasn't getting any spike with the mic... a spike as short as this would not be visible above the noise floor when I used the mic. As all of you know, full scale deflection on a 16-bit sample size is from +32K to -32K, and here I was getting spikes from +3 to -6, not +3K to -6K.

I tried changing various levels to get the spike as tall as I could. And this image I have attached above is the tallest spike I got. This was very strange, because with a mic, I have got much taller spikes at 24K when I've got them. And at certain level settings, I failed to get the spike completely.... I got noise, like I see at 44KHz.

At this point, Angshu told me to just proceed with things as they were, and do a frequency response measurement of the soundcard in loopback mode. So I did a "Measure->Freq response->Nearfield" at 48K sample rate, keeping all other settings as they were. I got the following response graph:
An externally hosted image should be here but it was not working when we last tested it.

This was with a sample size of 16Ksamples.

This FR curve was almost identical to what I'd got with RMAA. This gave me additional confirmation that SW was working correctly, at least in loopback mode. I went to sleep for the night.

Next morning, I tried taking measurements of the tweeter and midbass sections of a commercial speaker I have. This speaker is bi-ampable, so I removed the shorting strips and put the speaker in bi-amping mode. Then I connected just the tweeter to the amp and soundcard first, hooked up the mic, and did a test. At this point, I got a good pulse at 48KHz.

I was relieved to see that this pulse was much taller than the one in loopback mode. It had a peak-to-peak amplitude of about 300.

I then proceeded to take some measurements, "Measure->Freq response->gated", first of the tweeter, then of the midbass section, from about a metre away, with the mic in line with the tweeter. Here are the results (combined into one chart):
An externally hosted image should be here but it was not working when we last tested it.


It appears I am in business. I refrained from posting my results on this thread, wanting to double-check and see if it actually worked. I took some more measurements of some other speakers, and I'm getting believable graphs.

Lessons I've learned:
  • If acoustic measurements don't work with the mic first, it's mandatory to try with the card in loopback mode, using a simple audio interconnect cable connected in a loop.
  • MLS measurements are very sensitive to level settings. Pay attentions to all the warnings your seniors give you about checking for levels being too low or too high.
  • Levels may need to be adjusted if you change anything while taking measurements. For instance, the level settings which work well for the tweeter may not be right for the midbass units, for the same speaker, all else being kept the same. Be prepared to change levels when you so much as bat eyelids a few times extra.
  • Some sound cards will work only at certain sampling rates. In particular, the very popular SoundBlaster family of cards may not work at 44.1KHz.... they will work only in multiples of 12KHz. (My card is a USB module from the SoundBlaster family.) My card works beautifully at 44.1KHz with sine waves and music, but not with MLS pulses. Another forum member reports the same with his SB Audigy.
  • I'm not sure about this, but MLS measurements will probably work better with a high-frequency sound card. For instance, a sound card which can handle 96KHz will probably be better for MLS measurements than my kind of El Cheapo card which can only reach up to 48KHz.
  • A card working well with sine waves or music at a certain sampling rate is no guarantee that it'll work well with MLS at that frequency. (RMAA uses sine waves, not MLS spikes, to perform its measurements. All speaker measurement software by default use MLS spikes.)
  • When all else fails, lower the sampling rate and try MLS pulse measurements. If it works well at lower sampling rates, try pushing it up to higher rates. It is always easier to get the setup working at lower sampling rates, eg. 24KHz.
  • Use RMAA and a loopback cable to get your card tested at all relevant sampling rates, and ensure that RMAA reports acceptably flat frequency responses, low noise floor, low distortion specs, etc. Try at all sampling frequencies upto the highest that the card will go to. This will not guarantee that it'll work well with MLS at those frequencies, but at least if it doesn't work even with RMAA, you know SW won't be able to do MLS at those rates. Basically, RMAA testing is necessary but not sufficient for successful MLS measurements with SW.

Thanks for your patience and help. I'd be nowhere without it.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.