Forums

Calibrating speakers

Started by Michel Rouzic December 27, 2005
I just got a new set of 2.1 speaker for my PC for christmas, my main
problem with it is that it outputs a very altered sound, mostly the
bass, they are way too loud. I firstly thought it would be easy fixing
that with some software equalizer but no, the sound is still very
weird.

I thought about playing a delta function through my speakers and record
it with a microphone to look at the frequency response, the problem
with it is I have no mic.

Does any of you out there know a good way to calibrate speakers so that
they play every frequency at the same amplitude other than changing the
equalizer until it sounds good (which I can't achieve)?


Michel Rouzic wrote:

> I just got a new set of 2.1 speaker for my PC for christmas, my main > problem with it is that it outputs a very altered sound, mostly the > bass, they are way too loud. I firstly thought it would be easy fixing > that with some software equalizer but no, the sound is still very > weird. > > I thought about playing a delta function through my speakers and record > it with a microphone to look at the frequency response, the problem > with it is I have no mic. > > Does any of you out there know a good way to calibrate speakers so that > they play every frequency at the same amplitude other than changing the > equalizer until it sounds good (which I can't achieve)? >
Tuning the equalizer by trial and error requires a lot of work and a good experience with the audio. A low cost mike will greatly simplify the task. First of all, any equalizer can't make the good speakers from the bad speakers. You can get a very noticeable improvement by attenuating the high resonant peaks in the frequency response. It is possible to achieve the perfect response in one particular location; however it is not going to make a uniform response in a sector of directions. Secondly, the delta function does not provide you enough energy for the measurement. Use a white noise or a frequency sweep instead. Third, the response is going to be affected by the reflections from the walls of your room. Find an acoustically dead room or use a tray of delta functions with the time gating at the input to cut off the reflections. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Vladimir Vassilevsky wrote:
> Michel Rouzic wrote: > > > I just got a new set of 2.1 speaker for my PC for christmas, my main > > problem with it is that it outputs a very altered sound, mostly the > > bass, they are way too loud. I firstly thought it would be easy fixing > > that with some software equalizer but no, the sound is still very > > weird. > > > > I thought about playing a delta function through my speakers and record > > it with a microphone to look at the frequency response, the problem > > with it is I have no mic. > > > > Does any of you out there know a good way to calibrate speakers so that > > they play every frequency at the same amplitude other than changing the > > equalizer until it sounds good (which I can't achieve)? > > > > Tuning the equalizer by trial and error requires a lot of work and a > good experience with the audio. A low cost mike will greatly simplify > the task.
Yeah, i tried by trial and error, and I can tell, it's nearly impossible for me to get to a satisfying result. When you say low cost price, what price range do you think about (or even, which precise mic do you think about?)
> First of all, any equalizer can't make the good speakers from the bad > speakers. You can get a very noticeable improvement by attenuating the > high resonant peaks in the frequency response. It is possible to achieve > the perfect response in one particular location; however it is not going > to make a uniform response in a sector of directions.
Yeah, I figured that out, but if I can get a good result at the place i'm always sitting, it will be a great improvement yet.
> Secondly, the delta function does not provide you enough energy for the > measurement. Use a white noise or a frequency sweep instead.
Funny, I thought about both, but for some reason I thought that a white noise wouldn't be reliable due to its random nature and that it would be too complicated to deal with a frequency sweep. But I also figured out that using a delta function would be bad because the background noise would corrupt it too much. i'll try with the white noise whenever I get a mic I guess.
> Third, the response is going to be affected by the reflections from the > walls of your room. Find an acoustically dead room or use a tray of > delta functions with the time gating at the input to cut off the > reflections.
For the acoustically dead room, it's not going to be possible. A tray of delta functions with time gating... i'm not sure to exactly know what it is, but I guess you're talking about cancelling the effects of the room's echo by emitting delta functions and looking for reflections of the delta function in the recorded output. By the way, do you know anything that would make you able to convolve your Windows sound output with a user-defined kernel (even if it has to be a pretty small kernel) because that may be very handy (imagine recording the output of a white noise, a turning it in a way so it can be directly used as a kernel in a convolution, not even talking about how you could turn your kernel so it can pretty much cancel echoes) Anyways, i didn't expect such a complete reply, so thanks for that
"Michel Rouzic" <Michel0528@yahoo.fr> wrote in message 
news:1135736442.333435.304670@o13g2000cwo.googlegroups.com...
>
Positioning the speakers can have a great effect on the perceived frequency response. For example, if you put the speakers in a corner or close to the floor, you will perceive an inordinate bass boost. Try using one speaker as a speaker and the other as a microphone. If the two speakers are nearly identical, the frequency response of either one will be approximately the square-root of the response of the pair. If you have more than two speakers, choose the two that are nearly identical, characterize their response, and then use one of them to characterize the response of the rest. If you throw a cheap microphone into the mix, how will you account for the frequency response and non-linearity of the microphone when you are trying to measure the response of your speakers?
John E. Hadstate wrote:
> "Michel Rouzic" <Michel0528@yahoo.fr> wrote in message > news:1135736442.333435.304670@o13g2000cwo.googlegroups.com... > > > > Positioning the speakers can have a great effect on the > perceived frequency response. For example, if you put the > speakers in a corner or close to the floor, you will > perceive an inordinate bass boost.
yeah I noticed that, my bass speaker was to the floor, now that I surrounded it the bass level is more OK.
> Try using one speaker as a speaker and the other as a > microphone. If the two speakers are nearly identical, the > frequency response of either one will be approximately the > square-root of the response of the pair. If you have more > than two speakers, choose the two that are nearly identical, > characterize their response, and then use one of them to > characterize the response of the rest.
good idea! i'll try that, although it may get a lil bit hard since it's a 2.1 system. What I probably should do would be to do that with the two satellite speakers, then once i would have deduced the frequency response for one satellite, I could record the output of the bass speaker, but the problem again is that the input for the whole system is a stereo jack plug, and that I can't think of any way to prevent one speaker from outputing sound while another does it on that system. Plus, the stop band attenuation of one satellite speaker *may* be too strong for find out correctly the frequency response of the bass speaker.
> If you throw a cheap microphone into the mix, how will you > account for the frequency response and non-linearity of the > microphone when you are trying to measure the response of > your speakers?
that's right... i'd need a way to output a "perfect" white noise to calibrate the microphone. one way to do it would be to deduce the frequency response of one satellite speaker as mentionned above, and, provided that the stopband attenuation of the satellite speaker or the microphone is nowhere too strong, deconvolve a white noise with the frequency response of a satellite speaker, and record the output with the microphone to find out its frequency response. I'd first need to play a frequency sweep with only a satellite speaker to find out if its stopband attenuation in the lowest frequencies i OK, and then i'd need to make sure to get a microphone that can get a decently low stopband attenuation in all the frequencies that my 2.1 speaker system is able to output. That's mainly on that last thing (the choice of a micrphone) that i'd need a good advice I guess
Michel Rouzic wrote:
> I just got a new set of 2.1 speaker for my PC for christmas, my main > problem with it is that it outputs a very altered sound, mostly the > bass, they are way too loud. I firstly thought it would be easy fixing > that with some software equalizer but no, the sound is still very > weird. > > I thought about playing a delta function through my speakers and record > it with a microphone to look at the frequency response, the problem > with it is I have no mic. > > Does any of you out there know a good way to calibrate speakers so that > they play every frequency at the same amplitude other than changing the > equalizer until it sounds good (which I can't achieve)?
Several clarifications/corrections to some of the comments so far: 1) It's *pink* noise, rather than white noise what makes the measurements easier (pink noise has equal amount of energy per octave -- actually, per equal-geometric-size bands) 2) Freq. response of the microphone is almost irrelevant -- as long as it does not change over time and it is *known*, then you're fine. I remember a while ago, owning an equalizer that came with a calibrated microphone (a cheap microphone, but with known -- by the equalizer -- frequency response) and pink noise generator and a "spectrum analyzer" screen that showed the frequency contents -- you could play with the Eq. controls until you observe a reasonably flat spectral contents. The quality of the result was remarkable (provided good quality/low-distortion speakers and a reasonably low-reflection room, as has been already pointed out) Maybe you could try some local pro-audio store and see if they have this sort of equipment for rental -- you could rent it for one day and adjust your speakers. Another solution (one I very often use): go buy yourself an AKG K-501 headphones -- you should find one of those for around 100 US$, and the sound is amazingly good, I find. They do have good frequency response; then, find a pink noise source (worst case, generate it by software and burn/record it to a CD), and use your Eq. to pass one band at a time, and compare (by ear) how much louder does it sound in the speakers with respect to the headphones. Write down all the results, and then adjust at the end. Another solution could be to generate filtered pink noise (each individual band), and then, as you play each band, you can attempt adjustment to make the speakers sound exactly as loud as the headphones. The advantage of this is that you end up owning a headphone set that sounds quite amazing -- and you want that anyway, so no-one loses :-) HTH, Carlos --
Carlos Moreno wrote:
> Michel Rouzic wrote: > > I just got a new set of 2.1 speaker for my PC for christmas, my main > > problem with it is that it outputs a very altered sound, mostly the > > bass, they are way too loud. I firstly thought it would be easy fixing > > that with some software equalizer but no, the sound is still very > > weird. > > > > I thought about playing a delta function through my speakers and record > > it with a microphone to look at the frequency response, the problem > > with it is I have no mic. > > > > Does any of you out there know a good way to calibrate speakers so that > > they play every frequency at the same amplitude other than changing the > > equalizer until it sounds good (which I can't achieve)? > > Several clarifications/corrections to some of the comments so far: > > 1) It's *pink* noise, rather than white noise what makes the > measurements easier (pink noise has equal amount of energy > per octave -- actually, per equal-geometric-size bands)
Thanks for your input. I dropped the idea of using a noise, anyways, a pink noise is a good idea, but as for the speakers I tested, their peak is around 300 Hz and lower. Using a pink noise would make it harder to mesure anything in the highest frequencies.
> 2) Freq. response of the microphone is almost irrelevant -- as long > as it does not change over time and it is *known*, then you're > fine.
The problem is, how are you gonna know it?
> I remember a while ago, owning an equalizer that came with a > calibrated microphone (a cheap microphone, but with known -- by > the equalizer -- frequency response) and pink noise generator > and a "spectrum analyzer" screen that showed the frequency > contents -- you could play with the Eq. controls until you > observe a reasonably flat spectral contents. The quality of > the result was remarkable (provided good quality/low-distortion > speakers and a reasonably low-reflection room, as has been > already pointed out) > > Maybe you could try some local pro-audio store and see if they > have this sort of equipment for rental -- you could rent it for > one day and adjust your speakers.
Thanks, but I found another solution. I had another set of 2.0 speakers, as I just tested them they're doing OK between 35 Hz and 22,050 Hz, so I played a frequency sweep through one and recorded with the other, and now with a good enveloppe detection of mine and by performing a square root and a 1/x on it I'll have the frequency response of the kernel to perform a deconvolution. I only wish I could filter it in order to get rid of most of the noise, by having a bandpass filter that would follow the frequency sweep, but I can't think of a way to perform a bandpass filter that changes over time (unless i cut the frequency sweep in little bits and filter it to keep what i want to keep) By the way, when i'll record the output of my 2.1 speakers with the other speaker which I know the frequency response, should I firstly convolve the frequency sweep with my deconvolution kernel, or should i just play it as it is and then deconvolve the result? I thought that deconvolving in the first place may be better because i'll have more power on the frequencies that the speaker will record the weaker, but I also thought it may not give a result as reliable as if i do the deconvolution afterward, I mean, if I play the unchanged frequency sweep through one of the 2.0 speakers, and record it with the other, and perform the deconvolution afterwards, then i'll get something pretty much flat. As if I deconvolve before playing it through the speaker, i'll have to assume that the frequencies at which the speakers are the weaker are outputted and recorded at the planned amplitude. Anyways, I think what I really need right now is to filter the recorded output to get rid of as much noise as I can, because if I don't, I'll get bogus results due to the important amplitude of the noise compared to the weakest parts of the signal, and for that i need to find a way to have some kind of bandpass filter that varies over time
> Another solution (one I very often use): go buy yourself an > AKG K-501 headphones -- you should find one of those for around > 100 US$, and the sound is amazingly good, I find. They do have > good frequency response; then, find a pink noise source (worst > case, generate it by software and burn/record it to a CD), and > use your Eq. to pass one band at a time, and compare (by ear) > how much louder does it sound in the speakers with respect to > the headphones. Write down all the results, and then adjust > at the end. > > Another solution could be to generate filtered pink noise (each > individual band), and then, as you play each band, you can attempt > adjustment to make the speakers sound exactly as loud as the > headphones. > > The advantage of this is that you end up owning a headphone > set that sounds quite amazing -- and you want that anyway, so > no-one loses :-) > > HTH, > > Carlos
hehe, yeah but i'd prefer to calibrate it the way i'm trying, not only i'll have a way to calibrate it an almost-automated way, but it's also a good occasion to use my knowledge in DSP and my tools in a usefull way.
John E. Hadstate wrote:
> "Michel Rouzic" <Michel0528@yahoo.fr> wrote in message > news:1135736442.333435.304670@o13g2000cwo.googlegroups.com... > > > > Positioning the speakers can have a great effect on the > perceived frequency response. For example, if you put the > speakers in a corner or close to the floor, you will > perceive an inordinate bass boost. > > Try using one speaker as a speaker and the other as a > microphone. If the two speakers are nearly identical, the > frequency response of either one will be approximately the > square-root of the response of the pair. If you have more > than two speakers, choose the two that are nearly identical, > characterize their response, and then use one of them to > characterize the response of the rest. > > If you throw a cheap microphone into the mix, how will you > account for the frequency response and non-linearity of the > microphone when you are trying to measure the response of > your speakers?
never mind for the microphone thing. i found a 2.0 set of speakers laying there, and I played a frequency sweep through one and recorded it with the other to find out their frequency response. they have a decent response between 35 Hz and 22,050 Hz, so it will be fine
Michel Rouzic wrote:
> I just got a new set of 2.1 speaker [snip]
and elsewhere in thread reference made to "2.0 speaker". What is 2.0|2.1 speaker? PS. Only dumb question is the the one you don't ask.
Richard Owlett wrote:
> Michel Rouzic wrote: > > I just got a new set of 2.1 speaker [snip] > > and elsewhere in thread reference made to "2.0 speaker". > > What is 2.0|2.1 speaker? > > PS. Only dumb question is the the one you don't ask.
It's not a dumb question :-). 2.0/2.1/4.1/5.1 means the number of satelitte speakers and of bass speakers. Thus, a 2.1 system has two satellite speakers, mostly dedicated to medium and high frequency and a bass speaker, as a 2.0 system has two speakers which are usually able of inputting any sound in the audible range.