Compute correction filters
From DRC
How to generate correction filters to compensate for your room
This is non trivial stuff... Please feel free to expand on this very basic summary...
The simple method is to:
- measure the freq response of your room
- Take a target freq response of your choice
- Subtract the actual desired response from the actual measured response to work out the error
- Generate a filter which you can apply to the source signal which after application will make it come out looking like the target response.
- Job done
Steps one to three are easily done, if necessary using an SPL level and a piece of paper... However, most people are probably wondering how you do step 4? Well, at it's simplest you can use something like Matlab and feed in your desired "error" to the "fir2" function and it generates you an appropriate set of filter coefficients. I will knock up a page describing this in more detail because it is useful for generating crossovers amongst other things.
Unfortunately if it was all this easy we would all be using room correction by now. I'm not going to go into the problems in too much detail, have a read of the DRC readme, and also read some books on DSP if you are keen to know more (unless someone wants to write more here?)
Problems are:
- When you change the amplitude of the freq response you also change it's "phase". In slightly plainer english this means that you introduce a delay in the sound at a specific frequency. Sometimes this delay is sufficiently large that it is audible.
- It is possible to use zero phase filters which don't create any phase distortion.... However, these create a little "garble" before each sound which is referred to as "pre-echo". At certain frequencies (high frequencies basically) this pre-echo is quite audible.
- Correcting only amplitude is great, but there are extra benefits to be had by correcting the phase distortion of the system. This is quite difficult because correcting phase either creates amplitude distortion (peaks and bumps in the freq response) or it creates pre-echo...
So the real trick is to model what the ear hears and then correct as much as possible of both phase (ie timing) and amplitude of the signal without introducing audible artifacts. To the best of my knowledge there is only one system available right now which tries to do all of this: DRC - All other systems only correct amplitude (which to be clear is a huge improvement over nothing at all, but the point is that the state of the art has now moved on!)
