prescient
Head-Fier
- Joined
- Oct 31, 2006
- Posts
- 73
- Likes
- 41
I thought it would be interesting to get some feedback on my thought process for creating REW convolution filters for headphones. Feel free to tell me the whole idea is nonsense as I'm no audio expert!
Anyway, as many folks have noticed headphones have terrible FR response, and I've been thinking about how to create convolution filters to EQ my headphones. The problem obviously is that it is expensive to acquire the data, and I'm not willing to spend $8k on a measurement head. I've tried creating my own measurement setup for IEMs (http://www.head-fi.org/t/829104/drc-dsp-for-iems), and I think the results were an improvement. Unfortunately my measurement technique does not translate well to full size headphones.
So what is a poor guy with no test measurement gear to do? My thought is that I can use the graphs on InnerFidelity and image processing to extract the data I need. Then I can then load the data into REW to create convolution filters.
Step 1: Get the graph from InnerFidelity.
Below is the InnerFidelity frequency response graph of my beloved and now 10 year old HD580s. These headphones are amazing. They cost $120 when I bought them new, still sound great, and look brand new with updated velour pads. However, as seen in the graph the headphones lack bass and have a high frequency roll-off with a spike around 9K. The information is great, but without a data file to load into REW there isn't much I can do to correct the issues (besides playing with a parametric EQ). So we need to get the data!
Step 2: Extract the data from the graph
The data we want to extract from the graph are the red or blue frequency response lines. The red and blue lines represent the Harman target curve compensated and averaged frequency responses for the headphone. If the headphones were to measure perfectly the frequency response would be a flat line. To extract the data we can use the WebPlotDigitizer (http://arohatgi.info/WebPlotDigitizer/). The WebPlotDigitizer is a great tool made by Ankit Rohatgi, that allows you to load an image and extract data from that image using image processing techniques. The tool even supports extracting a log x-axis. After we use the tool we end up with a graph like the one shown below where each point is a data point identified from the graph.
Once we have identified the data points to extract we can export a CSV file that can be loaded into Room EQ Wizard.
Step 3: Check the Data
The data that comes out of the WebPlotDigitizer while great needs a little cleanup before processing in REW. REW expects a file where each frequency is larger than the next so the first step is to remove any frequency values that aren't greater than the preceding values. Once the import is done we should have a graph that looks a bit like the below, and matches the InnerFidelity graph.
Step 4: Create Convolution Filters
This step is pretty easy. All we need to do is go into REW's EQ view:
- Set rise slope to 0
- Set fall slope to 0
- Set target level DB (For the HD 580's I set it to -8 as there is such a huge amount of variance across the FR)
For the HD 580s I'm not sure there is much we can do for frequencies over 11K. They just drop off too quickly for them to be reasonably fixed. After that we can export as a WAV file and load into our convolver of choice.
Overall this might be a bit of a fools errand given the erratic behavior of headphones above 10k, but I've found the process to be interesting and I've learned about some new tools. I'd love to hear what others think or whether there is a better way to go about this.
Anyway, as many folks have noticed headphones have terrible FR response, and I've been thinking about how to create convolution filters to EQ my headphones. The problem obviously is that it is expensive to acquire the data, and I'm not willing to spend $8k on a measurement head. I've tried creating my own measurement setup for IEMs (http://www.head-fi.org/t/829104/drc-dsp-for-iems), and I think the results were an improvement. Unfortunately my measurement technique does not translate well to full size headphones.
So what is a poor guy with no test measurement gear to do? My thought is that I can use the graphs on InnerFidelity and image processing to extract the data I need. Then I can then load the data into REW to create convolution filters.
Step 1: Get the graph from InnerFidelity.
Below is the InnerFidelity frequency response graph of my beloved and now 10 year old HD580s. These headphones are amazing. They cost $120 when I bought them new, still sound great, and look brand new with updated velour pads. However, as seen in the graph the headphones lack bass and have a high frequency roll-off with a spike around 9K. The information is great, but without a data file to load into REW there isn't much I can do to correct the issues (besides playing with a parametric EQ). So we need to get the data!
Step 2: Extract the data from the graph
The data we want to extract from the graph are the red or blue frequency response lines. The red and blue lines represent the Harman target curve compensated and averaged frequency responses for the headphone. If the headphones were to measure perfectly the frequency response would be a flat line. To extract the data we can use the WebPlotDigitizer (http://arohatgi.info/WebPlotDigitizer/). The WebPlotDigitizer is a great tool made by Ankit Rohatgi, that allows you to load an image and extract data from that image using image processing techniques. The tool even supports extracting a log x-axis. After we use the tool we end up with a graph like the one shown below where each point is a data point identified from the graph.
Once we have identified the data points to extract we can export a CSV file that can be loaded into Room EQ Wizard.
Step 3: Check the Data
The data that comes out of the WebPlotDigitizer while great needs a little cleanup before processing in REW. REW expects a file where each frequency is larger than the next so the first step is to remove any frequency values that aren't greater than the preceding values. Once the import is done we should have a graph that looks a bit like the below, and matches the InnerFidelity graph.
Step 4: Create Convolution Filters
This step is pretty easy. All we need to do is go into REW's EQ view:
- Set rise slope to 0
- Set fall slope to 0
- Set target level DB (For the HD 580's I set it to -8 as there is such a huge amount of variance across the FR)
For the HD 580s I'm not sure there is much we can do for frequencies over 11K. They just drop off too quickly for them to be reasonably fixed. After that we can export as a WAV file and load into our convolver of choice.
Overall this might be a bit of a fools errand given the erratic behavior of headphones above 10k, but I've found the process to be interesting and I've learned about some new tools. I'd love to hear what others think or whether there is a better way to go about this.