Rational Acoustics

April 17th, 2012, 06:38 AM
Hi everybody,

Yesterday, having some time off, I decided to do some experimentation with microphone correction curves. About one and half years ago I bought 4 Audix TM1 microphones for roughly € 240,- euro’s a piece, together with a copy of SMAART 7. Mind you, these microphones didn’t come with microphone correction curves, like they do now when you order the “plus” edition and this functionality didn’t exist in SMAART back then. In an attempt to minimize differences in level and tonality I asked for consecutive serial numbers. The best I could get were 3 microphones from the same batch numbered 10, 23 and 143 and a fourth mike from 86 batches later. I use a RME Fireface 800 audio interface for my multi-microphone SMAART setup and was hoping that I would get identical readings, using these microphones, at maximum gain. This way, there would be no reason for microphone calibration before each measurement session. No such luck. When I received the microphones and connected them to their respective channels and started measuring at maximum gain, I was both surprised and disappointed. They sounded near identical, but for some minor broadband inconsistencies at 8k, but were not equally loud. For the past one and a half year I manually calibrated the microphones by trimming the gains. I would take one measurement of a single speaker with the least sensitive microphone at maximum gain and store the trace. Next I would swap the microphone out of the clamp for the next one at the next interface channel, manually set it to the same delay and physically change it’s position in the clamp until the phase traces would overlay. Being assured that the microphone was physically in the same position, I would adjust the gain for this respective channel until the magnitude traces would overlay and repeat the process two more times. Most of the time the gain pot’s would stay at the same position but every now and then they would get thrown off, either by transport or by accidentally bumping into them . It was something I would have to check every time. Overall this worked pretty good but I figured there must be a better and more consistent way. For a while a considered the Roland OCTA-CAPTURE audio interface which allows you to set the gains digitally. But then I started thinking about using the microphone correction curves in the meantime. I reasoned that any differences would be the result of both audio interface and/or microphones. This is what I ended up doing.

To rule out the first, I measured the 4 microphone channels of my audio interface at maximum gain directly, after turning off the phantom power, with the reference signal using a y-cable. I was relieved to see no tonal differences and overall level differences less than 0.2 dB, which left the microphones. I set up my SMAART system in my living room, using a wide angle full range loudspeaker, in order to minimize inconsistencies, due to microphone placement, in relation to the loudspeaker opening angle regarding on- and off-axis. At approximately one meter I placed my microphone stand and taped it to the ground. After tightly securing all grips, handles and the microphone clamp, I had to decide which microphone would become the “target” curve. So using the same steps like the calibration process, I took 4 measurements. Each time swapping the microphones in the clamp and physically move the microphone in the clamp to match the phase traces. Using the offset feature in SMAART I would visually overlay the traces. After close examination of these 4 traces with no smoothing, I saw little or no differences below 2k other than level variance, most likely due to differences in microphone sensitivity which is IMHO to be expected in this price range. Also, I didn’t want to rely too much on the data in this range regarding the confinements of my living room when it comes to reflections and comb filtering. From 2k and up there where some minor broadband variations of 3 dB at most. I picked one microphone which would be the most likely candidate for the “target” curve and exported it’s trace as a weighting curve. Next, using this weighting curve inversely I would re-measure the other 3 microphones inversed. Yes, that’s 2 times inversed. The first time to see the difference between the microphones using the exported “target” curve as a weighting curve with the INV-suffix. And the second time, checking the inverted box in your measurement configuration, to see what you need to add/subtract in order to make them similar. Now you have, in my case, 3 new traces showing you the inverse difference between the microphones.

The next step is to select one of these traces and use the option “Copy to ASCII” under the more button below your window with stored traces. Paste these values in Excel and you should see all 806 raw data points in 4 columns, respectively frequency, magnitude, phase and coherence, with numbers. You can delete columns C and D (phase and coherence), according to the manual SMAART only uses frequency and magnitude. Having great confidence in the quality off my measurements between 45 Hz and 2000 Hz but not so much in the content, due to reasons I mentioned before, I used a separate cell to average these magnitude values. The average turned out to have a maximum deviation of 0.2 dB. So I replaced all magnitude values below 2k with this value including the frequencies below 45 Hz where I had no reliable data to start with, basically compensating for the difference in microphone sensitivity for that range of frequencies. I left the data from 2k and up unchanged, to compensate for the broadband irregularities in the high frequency part of the spectrum. Finally I would “save as” the spreadsheet, after deleting the cells I’d used for calculating the average and average deviation, to a tab delimited text file (.txt file) and repeat the process twice for the other two traces. Regarding microphone sensitivity I came up with 3 average values of -2.7 dB, +1.25 dB and +0.41 dB. Assuming my “target” curve microphone is a flawless edition with a sensitivity of exactly of 6 mV/Pa in accordance with the specifications. These values would translate to 8.2, 5.2 and 5.7 mV/Pa respectively. Which seems a bit off, it’s more likely my “target” curve mic has a sensitivity less than 6 mV/Pa. Again IMHO, these variations are to be expected in this price range. Next, I needed to import these edited microphone correction curves, one at a time, into SMAART under “Audio Device Options -> Settings -> Mic Correction Curves” and assign them to their respective input channels. In order to see if this worked, I re-measured the 3 “corrected” microphones, after I took out the weighting curve and unchecked the inverted box, and was pleased to see 4, including the original “target” curve, identical traces. So now I have a SMAART system that I hopefully no longer have to calibrate, provided I have the gains set at maximum, that is more equal than before. In short:

1. Use a wide angle full range speaker
2. Physically lock in place the positional relation between microphone and speaker
3. Make 2 or more measurements at maximum gain, depending on the amount of mics/channels, using the delay of the first one, adjusting time and matching phase manually by moving the mic in the clamp, for each microphone and its respective channel
4. Pick a target curve and export it as weighting curve
5. Make new inverted measurements using the inverse weighting curve, of the other microphones except for the “target” microphone
6. Export these traces one at a time and paste them into Excel
7. Delete the colums for phase and coherence
8. Be cautious and make an informed decision about averaging the values that represent global differences due to microphone sensitivity and be sure not to use values below or above the operating range of the speaker
9. Check the average deviation, this shouldn’t be to large
10. Replace these values with the average value
11. Leave the values that represent local differences in place, but be mindful of anomalies that might indicate other causes
12. Save the spreadsheet as a tab delimited text file
13. Import them one at a time into SMAART and assign them to their input channels
14. Measure again to check, without weighting curves and inversion

For those who are reluctant to alter the response of their microphones but suffer from level differences, a simpler and less invasive alternative might be.

1. Repeat steps 1 to 3
2. Offset the traces in SMAART visually to make magnitude match as best possible and make note of the level
3. Copy a random trace to ASCII
4. Paste it into Excel
5. Delete the columns for phase and coherence
6. Replace all magnitude values with the inverse value you used to offset the trace in SMAART
7. Save the spreadsheet as a tab delimited text file
8. Import them one at a time into SMAART and assign them to their input channels
9. Measure again to check, without offset’s

In the last process you globally compensated for differences in microphone sensitivity without altering the response. This should also leave you with a calibrated SMAART system at maximum gain.

I for one, feel confident enough to test this in the field and rest assured that with one mouse click I can un-assign the correction curves.

Last but not least, a word of caution, don’t make arbitrary decisions regarding correction curves. Scan for anomalies and think/reason about the values you intend on using. This is stuff that optimally should be done in laboratories. I’m very happy with this functionality and have great expectations , but like with all-pass filters, you might end up doing more harm!



April 17th, 2012, 11:14 AM
Excellent approach and write up. Mic calibration curves are one of my favorite features. It's rather simple yet provides extremely useful functionality. The only thing I'd like to add are some comments regarding improving the quick and dirty approach. There is a quicker method that does not require hand tuning.

Before I delve in to the process, I'll comment on how weighting works. As we are weighting in the frequency domain, weighting is just addition. Smaart will interpolate the incoming weighting file to create a weighting table that has a value for each output bin of the measurement. Read as one value per output frequency point. If weighting in dB, the weighting values are added to each output bin of the measurement. To apply an inverted curve we simply subtract the weighting values from each output bin of the measurement. Sometimes we weight in power, which means instead of addition & subtraction we instead use multiplication & division. Because an inverted curve is achieved purely by using a different mathematical operation, there is no need to store inverted weighting curves to file. Nor create inverted files for import.

Mic calibration curves are no different than weighting curves. The only exception being that mic calibration curves are automatically applied as inverse curves. Which means you can use the same file to import both a weighting curve and a mic calibration curve. The weighting curve will be applied as is, whereas the mic calibration curve will be applied as inverted. With this knowledge in hand you should be able to see how easy it is to use a captured trace to create a mic calibration curve. Below are the steps required.

* All steps assume you've configured and taken an appropriate TF measurement for the task at hand. See the OP's comments above.

1. Capture a trace of the measurement you wish to use as a mic calibration curve. I'll name it "Foo".

2. Export the Foo trace as a weighting curve. More -> Export As Weighting Curve. I'll also use Foo as the curve name. Which creates a file named Foo.crv

3. Go to the Mic Correction Curves screen. File -> Import Mic Correction Curve

4. Import the weighting curve created in step #2, foo.crv (Weighting curve location varies by operating system)

5. Go to Audio Device options. Options -> Audio Device Options

6. Double click the input device you wish to apply the mic correction curve to.

7. Assign the Foo mic correction curve to the appropriate input channel.

That's all there is to it. Below are a few comments that will hopefully answer some of the looming questions.

- There is no need to manually cull the phase and coherence columns of the exported data, as the import function will ignore extraneous data.

- There is no need to manually invert the exported values, as all mic correction curves are automatically applied as inverted, see comments above regarding inverted curves.

- You can of course hand tune the curve prior to import to achieve various results. The approach I detailed above is just the quick and dirty method.


Arthur Skudra
April 17th, 2012, 03:02 PM
“I pity the foo who pity's the foo”
~ Mr. T on Foos :D

Been doing quite a bit of research the past few days on this very topic, more on the actual conditions for measurement and trying to get some decent accuracy with the results, here's some great reading material:

April 17th, 2012, 03:15 PM
Hey Arthur,
you might find this interesting....

Arthur Skudra
April 17th, 2012, 03:27 PM
Hey Arthur,
you might find this interesting....

Ah yes, the (expensive as heck) B&K reciprocity calibration system! I think I need to win a lottery to afford all the gadgets I want!!! :D

Good information in those publications, or for that matter, in any B&K publication!

Been gleaning some really good info from this book:
If only I can trick the book preview to show a few pages that were purposely blanked out so I spend the $180 on the book!! :p

April 17th, 2012, 04:32 PM
ahh yes I too have various screen captures of that one :)

I've built versions of the arta pressure cham ber AP5 and a two port version of this one:

Matlab simulations agree very well with actual measurements
I need to get out more :p

April 18th, 2012, 09:57 AM
“I pity the foo who pity's the foo”
~ Mr. T on Foos :D

Foo is programmer nomenclature, used primarily as a method/member/object name in example code.

July 11th, 2014, 07:59 AM

Having worked for over two years now with this approach I can personally vouch for it's validity. In the meantime I even calibrated all my Audix mics to my DPA 4090 which I personally witnessed being within 0,25 dB from a SIM3 B&K 4007. In other words I now work with 4 Audix mics behaving like DPA 4090's for a fraction of the price. Every now and then I recheck the mics to the real thing but no reason so far to make new mic calibration curves.

January 14th, 2015, 03:14 PM
Do you use any weighting when you make the capture, and is the correction curve afterwards useful for every weighting measurement?

March 16th, 2015, 07:03 PM
Do you use any weighting when you make the capture, and is the correction curve afterwards useful for every weighting measurement?

Hi Laurens,

No I didn't use any weighting and yes weighting curves can be applied additionally.