INTERACT FORUM

Devices => Sound Cards, DAC's, Receivers, Speakers, and Headphones => Topic started by: mwillems on February 17, 2014, 12:03:21 pm

Title: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 17, 2014, 12:03:21 pm
This is a step by step guide on how to do some basic speaker and room correction using JRiver and free software.  This guide was inspired by MitchCo's guide to using Acourate for speaker and room correction http://www.computeraudiophile.com/content/529-acourate-digital-room-and-loudspeaker-correction-software-walkthrough/.  My goal with the guide was to produce, using only free software and JRiver, a process that is “semi-automated,” but still produces good results.  

I'll be using a home-made 2-way pair of bookshelf speakers as my example throughout.  I built them ten years ago with speaker elements I bought at radio shack, and they were the first pair of speakers I ever built.  So needless to say, knowing what I know now, they could benefit from some optimization.

This guide should work fine for any bookshelf or full-range speaker with a built-in passive crossover (I plan to address subwoofers and active crossovers for bi-amping in a later guide).  Different rooms and different speakers have different needs, so this is by no means the only way to do it, or even necessarily the best way to do it for your system.  But it's intended to be a good place to start that will probably yield some improvements in an untuned system.  My plan is to try and keep the guide relatively non-technical, but to provide enough background so folks can understand why I'm suggesting the steps I'm suggesting.  

What you'll need:

1) JRiver Media Center version 18 or above, with the loopback feature configured and working correctly.  If you need help getting loopback up and running, check out the following thread: http://yabb.jriver.com/interact/index.php?topic=70242.msg486195#msg486195.  EDIT: If you have JRiver 20 or above you should be able to use the new WDM driver in place of loopback, just make sure it's set as the system default.
2) A calibrated Microphone (with a calibration file) and a way to connect it to your computer (either a USB or phantom powered mic is fine)
3) Holm Impulse (free measurement software): http://www.holmacoustics.com/holmimpulse.php
4) Room EQ Wizard (free measurement and automated room correction software): http://www.hometheatershack.com/roomeq/
5) RePhase (optional, free convolution filter designer): http://sourceforge.net/projects/rephase/
6) Basic technical information about your speakers, usually found on their specification sheet or operator's manual (e.g. what frequency the drivers' crossover points are, where the port is tuned in a vented speaker, etc.)
7) An afternoon.

Measurement Technique: Separating the Speaker from the Room.

What we're measuring:

Frequency response: If you fed a theoretically ideal loudspeaker a flat sine sweep it would have a frequency response that looked like the solid bar grey line at 0dB in the graph below:

(http://i.imgur.com/0PJDq4O.png)

An ideal speaker would reproduce exactly what was fed to it without any non-linearities.

Phase: If you tracked the phase of that same theoretically ideal loudspeaker, it would look the dotted line in the top graph above.

Impulse Response: If you looked at a band-limited impulse response (an impulse shows how the loudspeaker reacts to a sudden loud signal) of that same theoretically ideal loudspeaker, it would look like the trace on the bottom graph

These three measurements are by no means the only ways to measure a speaker's performance, but they're the ones we'll be using in this guide.

All real speakers will exhibit non-linearities in their frequency response and time-domain response (phase and impulse): no speakers are perfect.  In addition, rooms will also introduce significant non-linearities, that will vary depending on the speaker position and the listening position in the room.  

Anytime you attempt to measure a speaker in a room, you're really measuring the interaction of (at least) two systems: the loudspeaker and the room.  It's very important, to the extent possible, to address the two systems separately.  Why is that separation important?  Because many loudspeaker non-linearities can be fruitfully corrected using EQ, but many room effects cannot effectively be corrected in EQ.  I'll provide a quick example illustrating what happens if you don't address them separately:

Here's my uncorrected speaker response at the primary listening position (room and speaker together):

(http://i.imgur.com/YLhZlbZ.png)

Now I feed that response into an automated room correction suite (REW), and here are the results from the same position:

(http://i.imgur.com/PfMCSj7.png)

Looks much better, right?  There are some things it didn't manage to fix (more on these “uncorrectables” in the EQ section below), but it looks much flatter across the band.  Here's a measurement about a foot away from that position (the corrected trace is in green, with the uncorrected measurement at that position in red for comparison):

(http://i.imgur.com/dm3pma8.png)

Some parts are improved by the automatic correction, but other parts are not; the correction is actually worse than the uncorrected trace in some positions.  Attempts to strongly EQ a room's response a) will not always work, and b) even when they “work” will usually produce unintended consequences even a short distance away from the measurement position.  With distances longer than a foot, expect even more unpredictable consequences.

By contrast, EQing the loudspeaker's response (as opposed to the room's response) can be done with much more consistent results, assuming you can first isolate it from the room.

Isolation Techniques:

Professionals  measure speakers in an Anechoic Chamber or simulate an anechoic response by using an elevated platform outside (Altec engineers reportedly used a thirty foot platform for measurement).  Most folks don't have access to an anechoic chamber (I certainly don't), and measurement outside isn't always an easy option (large speakers, apartment living, long cable runs, etc.).  If you can easily and safely measure your speakers outdoors and reasonably high off the ground, it's worth doing, but in the interest of keeping this guide relevant to the largest number of people possible, I'll be focusing on in-room measurement through close-micing.  

Close-micing is just what it sounds like: placing the mic very close to the speaker when measuring.  Because the speaker's response will tend to dominate the room response at short distances, you can get a quasi-isolated speaker response by taking measurements close to the speaker.  There's an art to this, and I'll go into it below.  
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 17, 2014, 12:03:32 pm
Setting up Holm:

I recommend starting loopback in JRiver before starting up Holm.  Holm will try to take take exclusive control of sound outputs, which can cause errors in JRiver, but Holm usually behaves well if loopback is already started before you load it up.  EDIT: JRiver's WDM driver greatly simplifies this issue, and I recommend using it in place of loopback if you have MC 20 or above.

There are quite a few settings in Holm, but I'll be focusing on a few important ones:

(http://i.imgur.com/X6h9L7I.png)

Under audio library you have a choice of whether Holm will be communicating with MME, direct sound, or ASIO.  Because we'll be using loopback or the WDM driver to feed Holm's output to JRiver, I'd recommend sticking with direct sound until you're more comfortable with the program.  Your output device should be the JRiver WDM driver or the windows default audio device that you're using for loopback (in my case the motherboard soundcard on my laptop).  Beneath the output you can see which channels Holm will output to; I recommend only measuring one channel at a time to start.  Your input should be your microphone.  

Under measurement signal, I recommend selecting “logarithmic sine sweep” and selecting a start frequency that is at least an octave lower than the lowest frequency you plan to test; by default it's set to 10 Hz, which will give you a more-than-full-range sine sweep.  Most speakers can't reproduce tones that low, but this should be harmless at most normal volume levels with professionally designed speakers. If you're testing homebrew vented speakers that don't have a highpass to protect the woofer, you should start the sweep higher, and ditto if you're measuring unprotected tweeters, etc.  If you have any doubts, make double sure to start measuring at a quiet volume and work up slowly.  

Under mic calibration, you should import your mic's calibration file.  If you're using a non-USB mic, you can also calibrate your DAC-ADC by connecting a cable from the output of your soundcard to the input you're using.  If you're using a USB mic, there's no practical way to do this calibration, but the ADC built into the USB mic should be (to some extent) captured by the mic calibration file.  The DAC-ADC calibration step is optional, in my opinion; the three DACs I've personally measured were all flat enough that there was no meaningful calibration necessary.

Now on to the Measurement Screen:

(http://i.imgur.com/yAR8wwR.png)

Here there are options to display frequency response, phase, harmonic distortion products, and impulses for up to three measurements at a time.  Although you can only display three measurements at a time, Holm can hold (in working memory) up to fifty measurements at a time (accessed by hitting the drop down menu next to each measurement).  I recommend giving each measurement you make a descriptive name as you go.  A few more settings:

(http://i.imgur.com/b1aYJWb.png)

There are a lot of settings in the menus across the top (as shown above), and most are a matter of taste and convenience, but I strongly recommend making sure that “logarithmic frequency axis” is checked.  I'd also recommend setting the min frequency to 20 Hz and the max frequency to 30,000 Hz

Measurement technique:

1) Mic positioning : Take note of what angle is specified for your mic's calibration file (0 degrees is common, so is 90 degrees).   If there is no angle specified, it's usually safe to assume 0 degrees.  A 0 degree calibration means that the mic should be pointed directly at the thing being measured in order for the calibration to be correct; likewise a 90 degree calibration means that the mic should be at a right angle to the thing being measured, etc.  

2) First measurement- Baseline : Your first measurement should be at your primary listening position.  This will not be a particularly useful measurement by itself, but will be the benchmark you'll be comparing with your final results to determine if you've made an improvement.  

Place the microphone at ear height where you listen, and then set the volume in JRiver pretty low.  Then hit the “measure” button in Holm.  After that measurement completes, you'll want to keep adjusting the volume up in JRiver and running the measurement again until you're getting a reasonably loud sweep (about as loud as you'd normally ever want to listen to music).  Once you get your volume set, do not change it during a measurement session (you want all the measurements to be measured at the same level for comparison purposes).  Occasionally, you will hear a pop or crackle during the sweep, which will mess up your measurement.  If you get one of those, just run the sweep again and make sure that it sounds smooth all the way through.  Once you've gotten a reasonably loud successful measurement, you'll probably see something disturbing like this:

(http://i.imgur.com/ahoGG1x.png)

This is the raw response and includes all of the echoes and reflections from the room in the measurement.  Open up the measurement “options” menu, and select “frequency response smoothing.” Then select “Complex smoothing (frequency dependent time window)” and set the “N” to 12, as shown:

(http://i.imgur.com/a9nGHvL.png)

Frequency dependent time-windowing filters the response in a way that removes some of the room echoes and approximates how we actually hear sound better than the raw response does (our ears “ignore” certain late echoes).  I recommend configuring all your measurements to use frequency dependent windowing during your first few measurement sessions, so that they're comparable (you may need to set these filter settings for each measurement, as you make it).  You can play around with gating and different smoothing settings later on.  One nice thing about Holm is that it stores the underlying raw measurement data, so you can change how it's displayed after the fact without making new measurements.  After applying the filters, it looks like this:

(http://i.imgur.com/efFQHUy.png)

Second, auto zoom the Impulse response (or manually zoom in so that you're just looking at the first five or six milliseconds) and look at where the peak is.  The largest peak should be a) on top and b) at the time zero as illustrated:

(http://i.imgur.com/jDEpZED.png)
   
If the largest peak is not on top at the time zero, go to the options menu shown above, and go under “time zero” and select “largest peak” and click “autodetect.”  This should center the impulse on the time zero.  If all the impulses  you measure are upside down, you may need to check the “invert” box; if only some measurements are upside down, leave them be.  It's important to get your time-zero lined up or your phase results will be wonky. You should check on this for every measurement (the “auto” usually gets it right, but it's worth confirming).

You should then repeat this first measurement with the other speaker, and then save your measurements (do this often).
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 17, 2014, 12:03:41 pm
Now you'll take a series of measurements, as follows:

I recommend making five measurements for a two-way speaker:  1) on axis with the woofer from three inches away, 2) on axis with the tweeter from three inches away, 3) on axis with the woofer from one foot away, 4) on axis with the tweeter from one foot away, and finally 5) on axis with the tweeter from one meter away.  When I say “on axis” I mean that the tip of the mic should be centered horizontally and vertically on the speaker at the recommended distance.  If you're using a three way or four way speaker, you should make additional measurements at three inches and one foot for each driver.  Here are my two three-inch measurements overlaid (woof in blue, tweet in red):

(http://i.imgur.com/TaHFlBn.png)

You'll need to “stitch” the two measurements together to get a composite of the whole speaker's response.  Make sure your “C” measurement slot is empty and then select manipulation-->stitching.  For the frequency parameter, choose the crossover frequency from your speaker's data sheet (it should be relatively obvious from the phase measurements, but in case it's not, the tech specs will tell you), and choose a width that is about an octave wide at that frequency. In my example, the crossover is at 2500 Hz, and my width is about 2000 Hz.  You should uncheck the box to "match phase before stitching." 

If the two measurements don't overlay closely, you should use Holm's Match function (a separate tool under the manipulation menu tree) before stitching.  Match will adjust the level of the A-slot measurement to match the level of the B-slot measurement based on a specified frequency and bandwidth.  As with the stitch, I'd recommend entering your speaker's crossover point as the frequency and entering a bandwidth that's about an octave wide at that frequency (i.e. about 750 Hz wide for a 1KHz crossover, etc.).

The result of the stitch looks like this:

(http://i.imgur.com/A2XaW4Z.png)

You should do the same “stitching” process to the one foot measurements as well.  You should now have three “final” measurements for your speaker: a composite three-inch measurement, a composite one-foot measurement, and a single one-meter measurement.  Next you'll want to conduct those five measurements for the other speaker.  You should now have three measurements for each speaker, which should look relatively similar.  

Here are the three measurements overlaid for my left speaker: blue is 3 inches, red is 12 inches and green is 1 meter.

(http://i.imgur.com/G7d8CkF.png)

The three inch measurement shows the direct output of the driver with very little else (which can be deceptive, because the effect of the edges of the speaker cabinet itself are not always captured with a measurement that close). The one foot measurement shows the output of the driver along with some baffle diffraction (sound reflecting off the sides of the speaker cabinet) and a little bit of the room. The one meter measurement shows more of the room's effect, as you can no doubt see, as well as the interaction between the two drivers at ear height.  The overlay of the measurements allows you to see where the areas most in need of correction are:

Frequency Response EQ

Now that you have your speaker measurements, what do you do with them?  Unless you have an unusually “good” room, you've probably noticed that your three measurements are not identical, which makes the “right” EQ hard to sort out.  I'm going to outline an automated method that should get you 90% of the way there.  Step one is to open up the “export” menu in Holm

(http://i.imgur.com/tAXaBcB.png)

You'll want to export the frequency response of each of your three measurements for each speaker (not the impulse).  Make sure you have frequency dependent windowing on and configured correctly for all of the measurements, as the frequency response will be exported as displayed, and you want the exported response to reflect frequency dependent windowing (this is important).  

Once you have exported all the measurements, open up Room EQ Wizard (REW). REW has a measurement suite, but it does not support frequency dependent windowing or certain other features that Holm supports, so we will not be doing any measurements in REW in this guide.  Instead, select “import frequency response” from the file menu and import the three measurements for your first speaker in REW.  Tell it not to do a C-weighting correction, unless your mic is C-weighted (most calibrated mics are not).  Once you have the three measurements for your first speaker imported, click the “All SPL” button along the top.  Make sure all three are displayed, and then click on the “average the responses” button.  

(http://i.imgur.com/QGh6bCC.png)

This gives you a hybrid of the three measurements that will produce a relatively “safe” EQ profile.  Now, make sure the averaged response is selected and click the “EQ” button in REW.  

(http://i.imgur.com/TJNAavg.png)

Open up the settings panels as shown below:

(http://i.imgur.com/PrBcKZI.png)

Choose “generic equalizer,” set speaker type to “bass-limited,” and set “low rise slope” to zero (if you have truly full range speakers, feel free to set the speaker type to full-range instead).  I recommend setting HF fall slope to 1.4dB and leaving the start frequency at 1KHz. This part is a question of taste, but some kind of HF roll off is generally desirable.  These settings will give you a 6 dB roll between 1KHz and 20KHz; if you prefer things to be flat all the way out, set the HF fall slope to 0.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 17, 2014, 12:03:53 pm
Next, click “set target level” to bring the target in line with your measurement (for some reason you may need to click it several times to get it to move all the way to the center of the measurement).  Next pick the “cutoff frequency” and “crossover” that makes the cleanest line through the low frequency part of your measurement.  You'll need to try a few settings, but when you're done it should look something like this:

(http://i.imgur.com/SbWpxgy.png)

Set both maximum boost settings to 6 dB and the flatness target to 2 dB (feel free to set it to 1dB if your three measurements showed very close agreement). 

For the “match range” I recommend setting the low end to the cutoff frequency from above and setting the top end to 10KHz 20KHz (the latest beta version of REW now allows EQ to 20KHz, see below).  If you set the match range lower and your low end target isn't a good fit, you could wind up trying to apply boost below the speakers terminal rolloff.  If you try to EQ a sealed speaker flat below the terminal roll off without doing some math first you risk damaging your speaker and/or increasing your distortion levels dramatically (using eq to extend low bass response of a sealed speaker is an advanced topic).  If you try to EQ below that point with vented speakers it not only might damage your speaker, it also won't work at all (the driver is unloaded below the port frequency and will just idly flap around).  REW has some built in safety features to avoid this issue, but better safe than sorry: for your first time out set the bottom of the match range to the cutoff.

Once you've set all that up, click the “match response to target” button and watch REW work it's magic.  Once it's done, click on “EQ Filters.”  You'll then see your filters in terms of frequency response, Q, and gain. 

(http://i.imgur.com/yzZXuv7.png)

My recommendation is that you write these down, and then copy them into JRiver's parametric EQ module, as shown below (it takes a minute, but has several serious advantages over the other method): 

(http://i.imgur.com/7dstpa3.png)

Alternatively, you can also export them as a WAV file which can be fed into JRiver's convolution engine, but this adds significant latency, which limits the usefulness of the filters (harder to use with applications that aren't audio only, e.g. streaming video or video games). It will also prevent you from using convolution filters for phase correction in the next step.  For those reasons, I don't recommended it, but if you do want to go this route, see the discussion of convolution filters below in the phase correction section of the guide for some instructions on how to use the exported WAV files in JRiver.

A few things about REW to be aware of:

1) EDIT: The latest beta version of REW now allows EQing all the way to 20KHz, so if you have the latest version, feel free to ignore this sub-paragraph REW won't EQ above 10KHz, so if you have irregularities above 10KHz, you'll need to fix those manually by feeding in filters in PEQ and remeasuring.  You may find it useful to run a Real Time Analyzer (RTA) while making the changes to speed things up. Here's a link to a guide mojave wrote about using REW as an RTA with JRiver: http://yabb.jriver.com/interact/index.php?topic=69725.0
2) REW won't EQ at the bottom of the range when the measurement dips below the target and doesn't rise above it again.  This is designed to avoid the issues with speaker protection I mentioned above, but if your speaker has dips immediately preceding that roll off REW may ignore them.  This can be worked around, but generally shouldn't be an issue if your cutoff settings are good.
3) REW will only generate up to 20 filters, but will generate fewer if it doesn't need all 20.  If REW generates 20 filters for your response it probably actually needs more than 20, and you might want to consider generating the filters in two batches (bottom of the range to 600Hz, 601Hz to 10KHz, etc.)

Once you've fed in the EQ filters into JRiver one way or another, go ahead and make any additional adjustments you may need to make.  Lastly, add an adjust volume filter with the gain set to -6dB.  This is to offset any gain added by the other filters you added above, which will prevent clipping.  Depending on how you have JRiver configured, you may not need this filter, but if in doubt include the -6dB adjustment.

Once that's done, measure the corrected speaker again at ear/tweeter height at 1 meter (and save the results).

Here are my results:

(http://i.imgur.com/VX5ySKE.png)

As you can see, much improved!   Whereas the uncorrected measurement at 1 meter had peaks and troughs that were +/- 10dB between 100Hz and 20KHz, the corrected response is +/- 5dB around the target across the same band.  Here they are overlaid so you can see the results more clearly (red is corrected, blue is uncorrected).

(http://i.imgur.com/Q3tCbFW.png)

But you can also see that some elements that REW tried to correct were not fully corrected.  Some things cannot be corrected by EQ; no amount of EQ will resolve them.  They can represent a variety of room or speaker features, for example: standing waves, rear wall bounce cancellation, or in this case, the dip at 2.5Khz, which is the result of a suboptimal passive crossover.  The first two can be potentially addressed through room treatment; the last can only truly be addressed by building a new crossover for the speaker or by bi-amping it (although it can be improved somewhat through phase manipulation, see below).  As far as EQ is concerned, the best thing to do about uncorrectables is to avoid trying to EQ them at all, as you won't improve the response in the affected locations, and will potentially ruin the response everywhere else.

Don't forget to repeat the process with the other speaker.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 17, 2014, 12:04:02 pm
Now that we've adjusted nonlinearities of the frequency response of the speakers, the next step would be to adjust the phase nonlinearities.  Unfortunately, this is where the "semi-automated" part of the guide kind of runs out of gas: I'm not aware of a good, free, automated phase linearization solution that allows one to effectively adjust phase independently of frequency response.  So for phase, we're stuck with manual tweaking, but I'll try to give you some general guideposts to navigate by. For these reasons, the next section is definitely optional.  Hopefully, you've already made significant gains by this point, phase linearization is just the icing on the cake.  

Speaker Phase Correction:

Now let's have a look at the phase of our measurements.  Bring back up the last measurement you took (the corrected measurement).  Here's the phase along with the frequency response.  

(http://i.imgur.com/fwRgS0t.png)

You can see on this measurement (circled in red) where the crossover is, and where the sealed box begins to affect the phase at the low end (circled in green).  A speaker with a passive crossover (unless it's a 1st order) will always have some kind of phase anomaly at the crossover point (usually more extreme looking than this one), and any speaker in an enclosure will exhibit some kind of phase anomalies at the low end (a vented speaker will have much greater phase rotation than a sealed speaker).  You can also see that once the speaker output gets quiet enough the phase just stops or goes berserk (circled in blue). This is just what happens to a measurement when the frequency response falls off drastically; this can't/shouldn't be corrected.

To correct the phase, first export the frequency response of your corrected measurement in Holm the same way you did above, but make sure you have the “export phase” button checked.  Then open up RePhase. Click on the measurements window tab, then click import:

(http://i.imgur.com/p8tYx9W.png)

Now we can use RePhase to flatten the phase manually.  Because phase distortion is much less audible than frequency response non-linearities, I'd generally advise taking it easy on phase correction and just work on correction of major phase wrap.  The two main sources of phase wrap that I'd recommend correcting are crossovers and port phase distortion.  

1) Crossover:

Under “filters linearization” RePhase has automatic pre-sets dialed in for linkwitz-riley crossovers.  Your speaker may not have an LR filter, but I'd recommend fiddling around with the different linearization options to see if one of the presets partially or mostly addresses the phase wrap for your specific crossover.  You can also use the paragraphic phase EQ to level it out (all the parameters on the bottom of the sliders are configurable).  Just remember, higher Q means a narrower region of adjustment, lower Q means a wider region of adjustment. You can see how I used the paragraphic phase EQ to flatten out the phase in the crossover region below:

(http://i.imgur.com/KxjHcJ9.png)

2) Port phase wrap:

Ports in vented speakers introduce phase wrap, distortion, and also ringing around the port frequency.  Removing some of the phase wrap resulting from the port can not only improve the linearity of your phase response it can also reduce port ringing.  Because my test speakers are sealed, I can't illustrate this on these speakers, but here's an illustration of un-wrapping the port phase rotation on a different speaker with a port tuned to 28Hz.

Before:
(http://i.imgur.com/GSC1Dr7.png)

After:
(http://i.imgur.com/PoiOnL2.png)

To achieve this, I just used one of the "box" presets for a vented speaker (in this case a low Q speaker, because the box in question is very large).  The illustrated speaker exhibited significantly improved time-decay response around the port frequency after being “linearized” in this way, and sounded much less "boomy." Time-decay measurements are a slightly more advanced topic, but I wanted to mention this potential advantage of linearizing some of the port phase wrap.

You don't necessarily want to flatten the low-end phase out completely, you just want the phase to look more like the wrap that a sealed box speaker would have.  If your speaker is sealed, I wouldn't recommend linearizing the phase wrap at the bottom of the frequency range at all. Our ear expects phase shift as volume decreases, so if you have decreasing volume on the low end and perfectly flat phase it sounds really weird.

3) Other phase correction:  

Next, I'd suggest looking through the graphs for any other places where there are changes in phase that don't correspond to changes in frequency, that is, any places where the phase appears to rise or fall, but the frequency response does not also rise or fall.  If you identify any of these other phase anomalies (sometimes called “excess phase”), you might try flattening those out as well using the paragraphic phase EQ, but if they're small you might want to leave them alone. Phase is very location dependent in the room so you can wind up chasing phase phantoms all day if you overdo it.  By contrast, if you have large phase non-linearities that do correspond with frequency response non-linearities, those are things that could potentially be addressed through additional regular EQ as described above (normal EQ is “minimum phase” and will adjust both frequency response and phase at the same time).  

Making the filters:

The default settings in RePhase should be fine for the limited amount of phase correction we're talking about doing. If the phase response of your two speakers is similar enough that the same correction would work for either, be sure to select 32-bit LPCM stereo as your output format.  If you want separate correction filters for each side, then make sure the output format is mono.  If you made separate filters for both sides you'll need to write a config file for use in JRiver's convolution engine that routes your channels through the correct filters.  An example config file for a 2-channel 44.1KHz filter would look like this:

   44100 2 2 0
   0 0
   0 0
   C:\[your filepath]\[your left channel filter filename].wav
   0
   0.0
   0.0
   C:\[your filepath]\[your right channel filter filename].wav
   1
   1.0
   1.0

After you've generated the filter(s), make sure that the generated filter actually resembles the target response in RePhase.  

(http://i.imgur.com/JmVf5Ze.png)

You can see here that my filter deviates from the target response to some extent.  If yours is imperfect, try increasing the number of taps and generating a new filter.  If yours is perfect, you may want to try lowering the number of “taps” and generating another filter.  The taps represent the length of the filter in time: the more taps there are, the more complex the filters can be, but also the more latency introduced by the resulting filter.  If you can accomplish the filtering you need with a very small number of taps, you can reduce the latency introduced by the resulting filter, which will make it more useful to you (i.e. potentially usable with movies, etc.).  If you need a larger number of taps, then you may want to set up zones so the convolution is only engaged when listening to audio (as the latency can make video or loopback applications unworkable).  

Once you've gotten your filters generated the way you want them, you'd want to select your stereo WAV file (or your config file if you did different WAV's for each side) in JRiver's convolution module as shown:

(http://i.imgur.com/8Q9dvmw.png)

Lastly, take a measurement at ear/tweeter height from 1 meter with all of the filters engaged to make sure that it worked as expected.

(http://i.imgur.com/9ImXC2a.png)

Note that the phase in the crossover region is flattened as expected, and that the frequency null at the crossover is improved somewhat by ironing out the phase response there.  Phase manipulation is the only way to even partially fix a goofed up passive crossover, but it can't resolve everything, obviously.

Results of speaker correction:

Now take a measurement at your listening position with the filters on and compare to your initial measurement.  Here's mine:

(http://i.imgur.com/HACDMBk.png)

It's still pretty wacky looking, especially around the crossover, but it's much better.  And these results are almost entirely from correcting the speakers with very limited attempts to correct the room response.   If you want to undertake additional correction targeted at the room's response, it's possible to make some additional gains, but there are a few pitfalls to avoid.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 17, 2014, 12:12:48 pm
Room correction:

If you want to go the next step of attempting to correct the room response (in addition to the speaker response), you can apply some of the same techniques covered above with a few modifications and caveats.  For example, you can (after doing your speaker correction), take measurements with frequency dependent windowing at each of the listening positions in the room, export them to REW, average them and then generate additional correction filters for the averaged response.  However, you may find that the measurements at the various listening positions are different enough that even the average may not be that helpful.  However they are likely to agree on at least some things, and those are things that may benefit from EQ.  A few things to keep in mind:

1) Room nulls or boundary cancellation effects (large dips in the response caused by the room) can't usually be corrected by EQ.  Attempted corrections are not likely to work, and will compromise the sound somewhere else in the room even if they do work.  By contrast, peaks or room resonances (large raised lumps in the response) often can be usefully EQed out.  If you want to account for this and “play it safe” in generating your correction, you can set the maximum boost in REW to 0dB, so that it only applies cuts and doesn't even attempt to boost.  You can also limit boost to one or two dB as a less risk-averse compromise solution.

2) Because the wavelengths of high frequency sound are very short, attempts to EQ room behavior at high frequencies are a moving target.  At very high frequencies, it's hard to even position the microphone consistently enough to get consistent measurements off axis. For this reason I'd recommend limiting attempts to EQ room behavior to frequencies below 1 Khz or so (this can be achieved by setting the top of the “match range” in REW to 1 KHz).    

3) Some of the non-linearities you see in some listening positions may not even result from the room, but rather from the directivity of your loudspeakers.  Loudspeakers are engineered to be as flat as possible on axis, but as you rotate off axis, the frequency response of the loudspeaker will begin to change, and will tend to change differently at different frequencies because the directivity of a loudspeaker tends to vary with frequency response.  If your listening positions are significantly off-axis (i.e. more than 30 degrees off axis) from either speaker you will get nonlinearities that cannot meaningfully be corrected without messing things up for other listening positions because they are a consequence of the polar pattern of your loudspeaker.  If all of your listening positions are significantly off-axis, you'd be better off rotating the speakers or otherwise repositioning them.

As you might've gathered, those caveats are pretty significant.  The best way to test whether your proposed room correction is a net plus or minus is to re-measure at each listening position, and on axis with the tweeter at 1 meter.  The listening positions should each look better (or at least not worse), and the on axis response shouldn't look completely crazy.  If the correction fails those tests, you know you've done too much and need to scale it back.

Conclusions:

This obviously just begins to scratch the surface on a lot of issues, but this is a method that has produced repeatable positive results for me.  There's always more to learn, and always more tweaking to be done, but hopefully this has been a useful beginning for some folks.  Here are a few additional links that might be helpful to folks trying to feel their way through more advanced measurement and correction topics:

Megathread on Holm over at Diyaudio (where the software author posts once in a while): http://www.diyaudio.com/forums/software-tools/144984-holmimpulse-measuring-frequency-impulse-response.html

Very detailed REW Manual: http://www.hometheatershack.com/roomeq/REWV5_help.pdf  (the hometheatershack forums are also a great resource on REW)

Mojave's guide to using REW as a real-time analyzer with JRiver (very useful when you're tweaking your settings by hand): http://yabb.jriver.com/interact/index.php?topic=69725.0

RePHase megathread over at DIYAudio (where the software author posts frequently):
http://www.diyaudio.com/forums/multi-way/221434-rephase-loudspeaker-phase-linearization-eq-fir-filtering-tool.html

Feel free to offer corrections, suggested improvements, or questions below  ;D
Title: Re: Guide to Speaker/Room Correction USing Freeware and JRiver
Post by: JimH on February 17, 2014, 12:32:16 pm
mwillems,
Thanks very much for your work on this.

Jim
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mojave on February 17, 2014, 01:58:29 pm
Thanks for writing this up.  8) I have a few questions, but want to reread your posts and think about them some more.

I noticed you mentioned using MME output in HOLM. MME is for legacy software prior to Windows XP. MME only supports 16 bit and 44.1 KHz output. Although HOLM shows other sample rates, the Wikipedia article (http://en.wikipedia.org/wiki/Windows_legacy_audio_components#Multimedia_Extensions_.28MME.29) says MME resamples everything to 44.1. I would recommend at least DirectSound. DirectSound will still use the loopback and has lower latency.

Where did you find examples for how to do a convolution config file? I've been wanting to do this for a while, but never got around to it. REW lets you export the filters' impulse response as a wav. If not using Rephase, one could export their REW filters and create a config file rather than manually entering in all the filters into JRiver. Since a lot of people just EQ the subwoofer channel, the config file needs either only reference channel 4 or show the other channels as blank.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 17, 2014, 02:11:38 pm
Thanks for writing this up.  8) I have a few questions, but want to reread your posts and think about them some more.

I noticed you mentioned using MME output in HOLM. MME is for legacy software prior to Windows XP. MME only supports 16 bit and 44.1 KHz output. Although HOLM shows other sample rates, the Wikipedia article (http://en.wikipedia.org/wiki/Windows_legacy_audio_components#Multimedia_Extensions_.28MME.29) says MME resamples everything to 44.1. I would recommend at least DirectSound. DirectSound will still use the loopback and has lower latency.

That's a very good point, I had been using MME, but direct sound is more flexible.  I'll edit it to recommend direct sound.  

Quote
Where did you find examples for how to do a convolution config file? I've been wanting to do this for a while, but never got around to it. REW lets you export the filters' impulse response as a wav. If not using Rephase, one could export their REW filters and create a config file rather than manually entering in all the filters into JRiver. Since a lot of people just EQ the subwoofer channel, the config file needs either only reference channel 4 or show the other channels as blank.

That's adapted from the config file that I personally use for two-channel convolution on my office stereo (which is the one I was using as the example in the guide).  This guide is pitched towards getting the most out of a pair of bookshelf speakers, so I figured the config file should match that goal.  I'm planning to do a later guide to deal with subs and active crossovers specifically, and your point about the subs is a good one.  I clarified that the config file is only for a 2-channel setup, and I'll make sure to provide less generic configs in the later guide.

I do briefly mention above that REW allows for WAV export, but I don't spend much time on it, because I don't personally recommend it (even if one isn't using RePhase).  By using PEQ for the correction (instead of convolution), one can use the bulk of one's speaker correction with loopback, DVD sources, video games, etc. with no trouble.  That's not possible if you export the filters as a WAV and use them in the convolution module.  So from my perspective, the preferred approach is to copy the filters into PEQ so that folks can get the most use out of the correction they've generated.  I'll beef up the export discussion a little, though, so the option is clearer.

Thanks very much for the feedback; keep it coming  ;D
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mojave on February 17, 2014, 02:45:04 pm
That's adapted from the config file that I personally use for two-channel convolution on my office stereo (which is the one I was using as the example in the guide).  This guide is pitched towards getting the most out of a pair of bookshelf speakers, so I figured the config file should match that goal.
I'm really asking, "Where on the internet does one find the proper format for a convolution configuration file?"

Edit:  I think I found it here:  Config file (http://convolver.sourceforge.net/config.html)
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on February 17, 2014, 02:47:54 pm
Where did you find examples for how to do a convolution config file? ....
Since a lot of people just EQ the subwoofer channel, the config file needs either only reference channel 4 or show the other channels as blank.
The reference page describes the format and there is a linked examples page that gives you a start on how to use it.

http://convolver.sourceforge.net/config.html

This mentions that unfiltered output channels get fed with silence by convolver. Does jriver work differently?

IIRC jriver uses this format but does not support certain features, this post has details

http://yabb.jriver.com/interact/index.php?topic=68828.msg465919#msg465919

Now you'll take a series of measurements, as follows:

I recommend making five measurements for a two-way speaker:  1) on axis with the woofer from three inches away, 2) on axis with the tweeter from three inches away, 3) on axis with the woofer from one foot away, 4) on axis with the tweeter from one foot away, and finally 5) on axis with the tweeter from one meter away.

You should do the same “stitching” process to the one foot measurements as well.  You should now have three “final” measurements for your speaker: a composite three-inch measurement, a composite one-foot measurement, and a single one-meter measurement.  

The three inch measurement shows the direct output of the driver with very little else (which can be deceptive, because the effect of the edges of the speaker cabinet itself are not always captured with a measurement that close). The one foot measurement shows the output of the driver along with some baffle diffraction (sound reflecting off the sides of the speaker cabinet) and a little bit of the room. The one meter measurement shows more of the room's effect, as you can no doubt see, as well as the interaction between the two drivers at ear height.  
Once you have exported all the measurements, open up Room EQ Wizard. REW has a measurement suite as well, but it does not support frequency dependent windowing or certain other features that Holm supports, so we will not be doing any measurements in REW in this guide.  Instead, select “import frequency response” from the file menu and import the three measurements for your first speaker in REW.  Tell it not to do a C-weighting correction, unless your mic is C-weighted (most calibrated mics are not).  Once you have the three measurements for your first speaker imported, click the “All SPL” button along the top.  Make sure all three are displayed, and then click on the “average the responses” button.  
Thanks for posting this, a couple of questions if I may. I snipped a few relevant bits from a post to avoid a mega quote.

1) why do you recommend averaging the response from different distances? If the aim is to correct/linearise the speaker then why not just correct the (very) near field  measurement? I think I find the inclusion of the 1m measurement particularly confusing in this regard
2) do you have any views on how to take these measurements if you have a >1 driver in each way?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 17, 2014, 03:11:37 pm
Quote
1) why do you recommend averaging the response from different distances? If the aim is to correct/linearise the speaker then why not just correct the (very) near field  measurement? I think I find the inclusion of the 1m measurement particularly confusing in this regard

It's a compromise.  The very close measurement shows the driver's response, but in a sense it doesn't completely show the speaker's response (i.e. the response of the driver in that specific baffle).  The one foot measurements are necessary because very close measurements effectively gate out baffle diffraction and room gain that might offset baffle-step type losses. I recognize that the one meter measurement has some potential problems, but I recommend including it because, empirically, I've gotten better results when I included it.  I theorize that to be the case for four reasons:  

1) If your speaker's baffle is large (i.e. larger than one foot on a side), the 1 foot measurement may not fully capture the baffle diffraction effects.
2) Depending on driver size or spacing, closer measurements may not fully show how the two drivers interact at the crossover
3) Rear firing ports (which are quite common) often don't measure correctly when closer measurements are taken, and
4) Baffle step compensation needs to be taken into account when correcting a speaker's response, but the amount of compensation needed will be dependent on the speaker's placement in the room (i.e. room gain from corner placement, or vice versa).  This is more clearly visible at 1 meter.

Taking a third measurement farther away also minimizes the chance that the other two measurements are affected by a localized room effect that isn't present farther out in the room.  But, to some extent, those are just my best guesses based on some differences I've seen in measurements at different distances.  I do know that my final correction tends to measure better when I include the 1 meter measurement in the average (and sounds better too).    

The disadvantage of measuring at 1 meter, obviously, is that you get some of the room in the measurement.  I think the "damage" is limited by the fact that frequency dependent windowing gates out some of the worst mischief, and that the measurement is averaged with two other more "reliable" measurements.  It may well be that I'm, in effect, doing some limited room correction by including the 1 meter measurement (room gain is certainly a type of room effect).  

Try it both ways and see where you land. I would guess that if you are measuring a fairly small (<1 cubic foot) sealed speaker, you could probably safely leave out the 1 meter measurement and still get good results.

[above edited for clarity]

Quote
2) do you have any views on how to take these measurements if you have a >1 driver in each way?

I went through this myself with my larger bi-amped speakers.  You want to target the "acoustic center" of the stage in question.  So for the mid-basses in the big speakers, which are a quad array, I aligned the microphone to the point on the baffle that marked the geometric "center" of the four elements:

(http://i.imgur.com/Tti5yPy.png)

Other driver arrangements might be tougher.  For example, I haven't personally measured an MTM, but I bet the 3 inch measurement would be tricky. If I were measuring one, I'd start by trying to measure from the acoustic center (i.e. half way between the woofers). If that didn't work, I'd just take the three inch measurement from the acoustic center of one of the two elements.  It might be the case for an MTM that you don't even need to go through the stitching process because the acoustic center of the low frequency stage is often co-located with the acoustic center of the high frequency stage.

I'm really asking, "Where on the internet does one find the proper format for a convolution configuration file?"

Edit:  I think I found it here:  Config file (http://convolver.sourceforge.net/config.html)

That's what I used to write my config file
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: jdubs on February 17, 2014, 08:26:25 pm
SWEET!!!  Thank you so much for this!!   ;D

-Jim
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: Mitchco on February 18, 2014, 12:47:24 am
A well written guide mwillems!  Cheers!

Mitch
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: newguy1 on March 22, 2014, 10:45:11 pm
Firstly, thanks for taking the time to write this!

I have a ported there way, so I'm guessing that I should measure the tweeter, mid, woofer and port at 3", 1' and listening position, then stitch them together?

Thanks for your help!

David
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on March 23, 2014, 07:54:47 am
Firstly, thanks for taking the time to write this!

I have a ported there way, so I'm guessing that I should measure the tweeter, mid, woofer and port at 3", 1' and listening position, then stitch them together?

Thanks for your help!

David

Depending on the positioning and tuning of your port, you may not need to measure the port separately at all. If you do need to measure it separately, I'd recommend doing separate measurements only at 3 inches or 1 foot, but not doing a separate measurement for the port at one meter or the listening positions.  

If your ports are front-firing, tuned low, and near the woofers, you may not need to measure them separately; low frequency wavelengths can be enormous.  For example, I have some cabinets with front firing ports tuned to 28 Hz that are just below the woofers.  I didn't need to measure those ports separately because they're tuned low enough and are close enough to the woofers that the port output was "showing up" in the woofer measurements even at 3 inches.  The wavelength at 28Hz is about 40 feet, so the six or eight inches between my drivers and my ports wasn't really relevant.  

If you have, instead, a rear-firing port tuned much higher, you may well need to measure it separately for the three inch measurement and maybe the 1 foot measurement. See if it "shows up" in the 1 foot woofer measurement before you measure it separately.  If you're not sure what I mean about the port "showing up," I just mean that when you take the 3 inch and 12 inch measurements of the woofer, does the woofer measure as low and as loud as the speaker is rated to go? If so you're getting the port output in your measurements.  

If it doesn't get quite as low or as loud, you're only getting partial pickup and you might want to measure the port separately.  Another test to see if you need to measure separately at 1 foot: do you get noticeably better bass extension on the 1 meter measurement than the 1 foot measurement?  If so, that suggests that you might not be getting all of your port output in the 1 foot close measurement (although that's not ironclad, there could be other reasons).  

If you do wind up needing to measure the port separately, just stitch it to the other measurements in the same way I recommended stitching the woofer and the tweeter above. It should be relatively obvious where the best stitch frequency is, but a good place to start looking is about 1 octave above the port tuning.  

I recommend only taking a single measurement at 1 meter or the listening position, because a measurement at those distances should catch basically all speaker and port output on most home speakers (a hypothetical 10 or 20-foot tall speaker might need special treatment, etc.). There's usually no reason to measure the port separately that far out because the speaker is designed to present integrated sound in the mid to far field.

You'll note that I don't even recommend measuring the woofer and the tweeter separately at 1 meter or the listening position; that's because I think it's important to take at least one measurement that shows how the elements actually interact with each other at the crossovers (or the changeover from direct to reflex sound in the case of the port), rather than relying solely on recreating the hypothetical interaction by stitching.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: shawns1234 on April 21, 2014, 01:13:24 pm
Let me ask a potentially stupid question. I currently bitstream my audio to  Marantz 8002 or 8200...cant remember atm.. in order to use this technique, do I have to let JRiver decode my bluray audio to implement these adjustments? I would assume so.  If so, can I get a consensus on if the audio will sound as good?  Ive never had good results with letting computer software decode hi def tracks and presenting as multichannel as I have letting my receiver do the work.
I do have a stand alone parametric eq for my subs.
Thanks
Any other wisdom on this matter is welcomed.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on April 21, 2014, 05:19:45 pm
Let me ask a potentially stupid question. I currently bitstream my audio to  Marantz 8002 or 8200...cant remember atm.. in order to use this technique, do I have to let JRiver decode my bluray audio to implement these adjustments? I would assume so.  If so, can I get a consensus on if the audio will sound as good?  Ive never had good results with letting computer software decode hi def tracks and presenting as multichannel as I have letting my receiver do the work.
I do have a stand alone parametric eq for my subs.
Thanks
Any other wisdom on this matter is welcomed.

Almost all JRiver DSP is disabled when you're bitstreaming, so the short answer is that you'd need to disable bitstreaming and do the decoding in JRiver to use this guide.  I've always done all my decoding in JRiver (I don' t have an AVR), so I don't have a frame of comparison, but my experience has been very, very good. My sense from talking to other folks here on the forum who've tried it both ways is that JRiver's decoding is top notch. 

If you've had bad luck getting JRiver's decoding specifically configured to your taste in the past, I'd suggest opening a topic about it on the forum.  The community is very active and there are lots of folks here who know much more about encoding and decoding than I do (including the developers).
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: bluescale on May 04, 2014, 02:47:27 pm
First of all, let me just say that this guide is so awesome, that it finally convinced me to come out of lurker mode and make my first post to this forum.  Thank you so much for puttin this together.  It's a lot of great information for a newb like me to absorb, and it's presented in a way I can actually absorb it.

Now my question.  I'm still unclear why it's necessary to use HOLMImpulse rather than REW for this process.  I'm trying to do this for my home theater, and I get the impression HOLM is limited to L/R channels.

Also, you recommend using Direct mode in HOLM.  However, doesn't direct mode pass all sounds through Window's processing?  Is there a reason not to use ASIO?  I'm assuming (and perhaps I should just download the software and find out for sure), that you could have it use JRiver as the ASIO driver and just pass sounds through that way - similar to what I can do with REW.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on May 04, 2014, 03:22:57 pm
First of all, let me just say that this guide is so awesome, that it finally convinced me to come out of lurker mode and make my first post to this forum.  Thank you so much for puttin this together.  It's a lot of great information for a newb like me to absorb, and it's presented in a way I can actually absorb it.

Thanks for the kind words!

Quote
Now my question.  I'm still unclear why it's necessary to use HOLMImpulse rather than REW for this process.  I'm trying to do this for my home theater, and I get the impression HOLM is limited to L/R channels.

The main reason I don't recommend using REW for measurement in this guide is that it doesn't offer frequency dependent windowing (FRD), which is very important to how the guide works.  FRD filtering filters out a lot of room echoes and boundary effects and produces much, much more consistent measurements (i.e. it's much easier to get repeatable and comparable measurements with FRD, especially when you're moving your mic around).  In addition to added measurement accuracy and consistency, there's some evidence that our ears process sound in a way that's analogous to FRD (i.e. our ears/brains ignore certain "late echoes"), so FRD also produces a measurement that looks a little more like what we hear than a conventional "Raw" measurement.  

I've also been unimpressed with REW's measurement accuracy overall, especially in the low frequency range.  I often get low frequency measurements in REW that don't agree with measurements taken from the same position from several other measurement suites.  Check out this recent thread for someone else running into the same problem: http://yabb.jriver.com/interact/index.php?topic=88942.msg610271#msg610271

Holm also offers some additional handy features not immediately relevant to this guide, like the ability to time-lock a measurement and measure the time offset between it and another measurement, which is great for setting your delays in a multichannel system (out of the scope of this guide, but still neat).  

As for the channel output, Holm can natively run sweeps on up to 4 channels, but it's very easy to use JRiver's Parametric EQ to temporarily re-route the sweeps to any channel you want by using the "copy" or "move" functions under "channel mixing."  If you run into trouble with that, let me know and I can provide a step by step.

Quote
Also, you recommend using Direct mode in HOLM.  However, doesn't direct mode pass all sounds through Window's processing?  Is there a reason not to use ASIO?  I'm assuming (and perhaps I should just download the software and find out for sure), that you could have it use JRiver as the ASIO driver and just pass sounds through that way - similar to what I can do with REW.

The only reason I didn't recommend ASIO is because it's a little more complicated to setup and not everyone has an ASIO compatible soundcard for the input (i.e. folks with a USB mic).  If you're comfortable with ASIO setup there's absolutely no reason not to use ASIO, and it definitely has some advantages (I've used it myself).  
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: bluescale on May 17, 2014, 03:58:20 pm
Unfortunately, I'm having a really hard time getting JRiver to behave in such a way that I can even get started with measurements.  When I try to use ASIO as my driver, JRiver mixes the audio to 2 channel.  In other words, I can't get it play the signal through a single channel at a time.  When I look in Audio Paths, it clearly shows that it's mixing from 1 channel to 2.  However, when I go into the DSP studio, it's set to source number of channels.  If I try to us the loopback functionality, I get a really weird, choppy sound that is somewhat like reverb.

Any thoughts on what I could be doing wrong?

Edit - I should also point out that I tried bitstreaming to see if that would output just 1 channel of sound at a time, but alas, no luck.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on May 17, 2014, 07:09:31 pm
Unfortunately, I'm having a really hard time getting JRiver to behave in such a way that I can even get started with measurements.  When I try to use ASIO as my driver, JRiver mixes the audio to 2 channel.  In other words, I can't get it play the signal through a single channel at a time.  When I look in Audio Paths, it clearly shows that it's mixing from 1 channel to 2.  However, when I go into the DSP studio, it's set to source number of channels.  If I try to us the loopback functionality, I get a really weird, choppy sound that is somewhat like reverb.

My first suggestion would be to try not using ASIO as the output (i.e. using direct sound)?  It usually works "out of the box" and might help identify what the issue is if that works.  

I haven't had the problems you're describing with ASIO, but did you try just muting one of the channels in DSP studio?  If all it's doing is cloning the channel, that should work fine.  You can do almost infinitely flexible channel routing in JRiver.

I've never had "reverb" with loopback, but make sure that you have loopback setup correctly (i.e. that your default windows output device is not the same output device that JRiver is trying to output to).  If you try to loopback from the same device JRiver is trying to use as an output, you'll get echo for sure (or it will throw errors).  If that's not the problem, try changing the loopback buffer sizes.  Here's a step by step on setting up loopback:

1.  To use the loopback you have to have another soundcard in the system. You can use the motherboard soundcard. Nothing is actually connected to it, but the drivers still need to be installed. You might need to turn autosense off in the motherboard drivers. Many people have the Realtek HD Audio on their motherboard. Disabling front jack detection in the Realtek HD Audio Manager is what actually enables the analog output from front and rear outputs.
2.  Set the above soundcard as 7.1 (with fullrange speakers) and as the default soundcard in the Windows Control Panel.
3.  Set JRiver's Audio output [to whatever your soundcard is]
4.  Before starting Holm, put JRiver in loopback mode by going to File > Open URL and enter live://loopback [or open live, WASAPI Loopback]

(adapted from an older post by mojave to make it applicable to the current JRiver)

Quote
Any thoughts on what I could be doing wrong?

Edit - I should also point out that I tried bitstreaming to see if that would output just 1 channel of sound at a time, but alas, no luck.

I would strongly suggest (as I alluded to above) either using direct sound or just using JRiver's DSP studio to handle channel routing.  Direct sound isn't ideal for normal audio output, but it doesn't seem to affect measurements (or at lest these kinds of measurements) much.  I can get identical measurements using either output mode. 

Barring that, you can use a combination of muting and channel copying to put the sweeps wherever they need to be.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: bluescale on May 18, 2014, 12:59:40 am
I would strongly suggest (as I alluded to above) either using direct sound or just using JRiver's DSP studio to handle channel routing.  Direct sound isn't ideal for normal audio output, but it doesn't seem to affect measurements (or at lest these kinds of measurements) much.  I can get identical measurements using either output mode. 

Barring that, you can use a combination of muting and channel copying to put the sweeps wherever they need to be.

Let me say again, just how much I appreciate your help.  It's been invaluable, and I've learned (and am learning) a quite a lot.  I'm still not sure why using JRiver's ASIO driver as the output from Holm didn't work, but I never got that function successfully.  In the end, the time I spent trying to get it to work was a fools errand anyway.  I went back and reread what you mentioned to me previously, and since I'm running a USB mic, it was a no go.

In case anyone else runs into this issue, I'll put forth what eventually worked for me.  It's basically in line with what you suggested, but I think I just had to bumble through it on my own to figure out how things worked:

1.  Windows default configured to output audio via the onboard HDMI port
2.  JRiver configured to output using ASIO4ALL
3.  ASIO4ALL configured to output to my Nvidia video card
4.  Loopback configured using Open Live, WASAPI Loopback (I could never get it to work using Open URL)
5.  DSP Studio configured to 5.1, but no upmixing or downmixing
6.  JRiver PEQ configured to map sound to the appropriate channels
7.  Holm configured to use the onboard HDMI port (i.e., same as the Windows default)

If in step 2 if I tried to configure JRiver to use WASAPI and output directly to my Nvidia card, I'd get the choppy, reverb sound every time.

As a test, I've gently EQd my sub using a simplified version of your steps.  The results were quite a bit better than what the auto EQ in my processor produced.  Now I'm going to start playing with the L/R/C channel speakers.

Thanks for your time and patience.  I'm finally getting to the fun part  :).
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on May 18, 2014, 08:30:33 am
As a test, I've gently EQd my sub using a simplified version of your steps.  The results were quite a bit better than what the auto EQ in my processor produced.  Now I'm going to start playing with the L/R/C channel speakers.

Thanks for your time and patience.  I'm finally getting to the fun part  :).

I'm happy to help and I'm glad you got it working! 

The ASIO4All piece is odd; direct WASAPI output in JRiver shouldn't produce strange choppy or echoing sound.  If I had to guess it might be a buffer issue (whether the loopback buffer, or the normal buffer settings).  If you have any interest in troubleshooting that WASAPI output further, you should open up a thread over on the main board.  Lots of folks on the forums will probably have additional good ideas, and we can probably get to the bottom of it.

Also, if you need any advice about setting your sub to mains crossover and delay, just holler.  I've been working (slowly) on a guide to bi-amping and sub integration; it's not ready yet but I can talk to specific "pain points" if you have any trouble.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: bluescale on May 18, 2014, 12:23:48 pm
I'm happy to help and I'm glad you got it working! 

The ASIO4All piece is odd; direct WASAPI output in JRiver shouldn't produce strange choppy or echoing sound.  If I had to guess it might be a buffer issue (whether the loopback buffer, or the normal buffer settings).  If you have any interest in troubleshooting that WASAPI output further, you should open up a thread over on the main board.  Lots of folks on the forums will probably have additional good ideas, and we can probably get to the bottom of it.

At this point, I think I'm happy to just use it now that it's working.

Also, if you need any advice about setting your sub to mains crossover and delay, just holler.  I've been working (slowly) on a guide to bi-amping and sub integration; it's not ready yet but I can talk to specific "pain points" if you have any trouble.

As I mentioned in the other thread, I think I've got some issues going on at the crossover point.  How do you feel about me posting a few graphs to get some input from you?  Would you rather I do that in another thread?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on May 18, 2014, 01:16:07 pm
At this point, I think I'm happy to just use it now that it's working.

As I mentioned in the other thread, I think I've got some issues going on at the crossover point.  How do you feel about me posting a few graphs to get some input from you?  Would you rather I do that in another thread?

I replied in the other thread; I'm happy to look at a couple graphs, but it's probably better to do it in that thread rather than this one if that's ok.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: bluescale on May 19, 2014, 01:15:48 pm
I need to play with things a bit more before I start posting graphs (in the other thread).  I'll just say that things got WAY better between 120hz and 70hz when I disabled everything in my processor, and started using JRiver.

I have a question about measuring output from a sub.  Since low frequency sound waves are considerably less directional, is it still necessary to go through the multi-distance setup you recommend in this thread?  My sub is down-firing.  With that in mind, if you still suggest using the procedure listed in this thread, how would you recommend I go about accomplishing that?  I'd really rather not flip it on its side if at all avoidable, since the room has a concrete floor, and the sub's finish is piano gloss.  It's not an insurmountable problem, but an annoyance.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on May 19, 2014, 02:42:02 pm
I need to play with things a bit more before I start posting graphs (in the other thread).  I'll just say that things got WAY better between 120hz and 70hz when I disabled everything in my processor, and started using JRiver.

I have a question about measuring output from a sub.  Since low frequency sound waves are considerably less directional, is it still necessary to go through the multi-distance setup you recommend in this thread?  My sub is down-firing.  With that in mind, if you still suggest using the procedure listed in this thread, how would you recommend I go about accomplishing that?  I'd really rather not flip it on its side if at all avoidable, since the room has a concrete floor, and the sub's finish is piano gloss.  It's not an insurmountable problem, but an annoyance.

It's not the directionality as much as the room effects that the methodology is trying to deal with.  I think for best results you'd want to at least get one close measurement with the sub not pointed at the ground.  If your sub is a large driver (12 or 15 inch) and is operating up at 120Hz, it's probably pretty directional up there.  If it's only operating below 60 Hz, it probably won't matter as much.  I also have a piano gloss sub, I usually put a thick towel on the floor to set it on when I flip it over. 

If flipping it on it's side even for the close measurement isn't an option, you should do the 3 inch measurement by positioning the mic directly under the sub (between the driver and the floor).  Ideally you'd want to put it at 90 degrees and use a 90 degree calibration (as most mics tend to need more calibration at the extremes). 

For the other more distant measurements, I'd suggest measuring it as it lies (downward firing), but just move 1 foot and 1 meter away in the direction of the listening position.  You want to get those measurements with the sub in it's normal position.  If you see really drastic variation between the measurements, let me know and I'll offer some alternative suggestions.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: bluescale on May 19, 2014, 03:17:22 pm
Final question (for now :) ) - Since the goal is to get an idea of the speaker's frequency response, is it fair to assume that I should disable all bass management and other room correction before taking the measurements?  I've been operating under that assumption, but it's not explicitly stated in the guide above.  Since I'm essentially planning to start over, I want to make sure before I do any measurements.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on May 19, 2014, 04:18:49 pm
Final question (for now :) ) - Since the goal is to get an idea of the speaker's frequency response, is it fair to assume that I should disable all bass management and other room correction before taking the measurements?  I've been operating under that assumption, but it's not explicitly stated in the guide above.  Since I'm essentially planning to start over, I want to make sure before I do any measurements.

Short answer: yes, turn off room correction to start.  You want to get an idea of what the speaker will do uncorrected, and then work out from there.

You should also initially measure and EQ each speaker separately, meaning that you'd want to disable bass management at first.

Once you've corrected the mains and the sub separately, then you'd need to re-enable bass management (but not necessarily room correction) to see how the mains and sub measure as a composite.  Integrating a sub is a lot like designing an active two way speaker meaning it's hard to do correctly without careful measurement.   

Once you've gotten each speaker EQed and you're trying to integrate them, we can work all that out in the other thread (as that's an advanced topic not covered in this guide).
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: tyler69 on June 15, 2014, 04:12:14 am

3) REW will only generate up to 20 filters, but will generate fewer if it doesn't need all 20.  If REW generates 20 filters for your response it probably actually needs more than 20, and you might want to consider generating the filters in two batches (bottom of the range to 600KHz, 601KHz to 10KHz, etc.)


Thank you for this great tutorial mwillems. I have some questions regarding the filter generation in REW and hope you can help me out:

1. Is it safe to assume, that one can generate filters in more than two batches (i.e. when two batches give me 40 filters)?
2. Is it important that the batches have the same size for both speakers (e.g. 15Hz-500Hz for the left, 15Hz-500Hz for the right?, etc..)?
3. Is it a problem if REW generates more filters for the left speaker, than for the right one?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on June 15, 2014, 09:25:46 am
Thank you for this great tutorial mwillems. I have some questions regarding the filter generation in REW and hope you can help me out:

1. Is it safe to assume, that one can generate filters in more than two batches (i.e. when two batches give me 40 filters)?

Yes that's fine to do, but you might want to confirm that you have your REW target set correctly (and that you've followed other steps above, like making sure FDW is on before export);  If you set the target too low you can wind up with many more filters than you otherwise might and will be throwing away quite a lot of gain.  There's nothing per se wrong with having a lot of filters, but it's rare (in my experience) to have more than 30 with a correctly set target.  Most of the speakers I've seen use that many filters were home-made speakers; I would be surprised to see commercial speakers that needed that much correction.

Quote
2. Is it important that the batches have the same size for both speakers (e.g. 15Hz-500Hz for the left, 15Hz-500Hz for the right?, etc..)?

No, that shouldn't matter as long as the final measurements look ok.

Quote
3. Is it a problem if REW generates more filters for the left speaker, than for the right one?

Not a problem in itself, but depending on how many more it may be a symptom of something. 

Every system I've measured had a different number of filters on the left and right, but it's usually a difference of a few filters.  Even though speaker manufacturers go to great lengths to "match" speakers, no two speakers will ever actually be identical.  So a little difference should be expected. 

If you're seeing a difference of more than five or six filters, that means one of two things: either the room is creeping into the measurement in a significant way (which may not necessarily be a bad thing, but is something to keep an eye on) or one of your speakers may be damaged.  I once had two titanium cone speakers that measured pretty differently, and then realized that one of them had a dent in the cone :-(
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: tyler69 on June 15, 2014, 03:59:15 pm
Thank you !
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: ra7 on July 05, 2014, 12:19:50 pm
I have a question regarding Holm and rePhase. I have a three-way system, the details of which can be found here:
http://www.diyaudio.com/forums/multi-way/258246-corner-expanding-line-array-kef-q100.html

I'm using miniDSP's USBStreamer for 6 channels of output using JRiver's convolution engine. Using rePhase to develop the filters. Details here:
http://www.diyaudio.com/forums/pc-based/256809-setting-up-pc-based-multichannel-dsp-system.html

My question is regarding the delay in piping it through JRiver. There is the delay due to the convolution filters. rePhase gives an indication of this delay for each filter that is generated. And then there is the relative phase due to the physical separation of the drivers. When the measurement is made, I get a different delay in Holm for every single measurement. Even when measuring the same driver consecutively, there is a different sample offset in Holm. Forget about using time lock to get the offset between drivers, there is not even the same offset for the same driver.

I'm using the ASIO loopback in JRiver. The WASAPI loopback doesn't work without stuttering. But I tried it with stutters and it still gave different delays. I've tried all sorts of combination for buffering through JRiver and through the USBStreamer's driver panel. Nothing seems to alleviate the problem of different delays for consecutive measurements.

As a sanity check, I connected the output of the EMU0204 directly to the amp and made consecutive measurements and every time I get the same exact number of sample offsets. So, the problem has to be the loopback through JRiver. Any idea about how this could be solved? I'm guessing the different delays are due to the live processing of the convolution filters in JRiver.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on July 05, 2014, 01:30:30 pm
My question is regarding the delay in piping it through JRiver. There is the delay due to the convolution filters. rePhase gives an indication of this delay for each filter that is generated. And then there is the relative phase due to the physical separation of the drivers. When the measurement is made, I get a different delay in Holm for every single measurement. Even when measuring the same driver consecutively, there is a different sample offset in Holm. Forget about using time lock to get the offset between drivers, there is not even the same offset for the same driver.

I experience the same variable delay from Holm when using loopback, except that when I use the time lock function I get a correct result (i.e. I get a correct inter-channel offset when measuring using the time lock).  I think time-lock "holds the stream open" which typically produces consistent results between the two measurements.

If the time lock doesn't work for you there are a number of alternative methods for measuring interchannel delay.  Probably the easiest is the "greatest null method."   To accomplish that you'll need: 1) pink noise (JRiver can generate it) and 2) software that can be used as an RTA (REW or TrueRTA, for example); here's how it works:

1) Begin playing pink noise from two channels.  For the sake of discussion, we'll assume you're starting with the left tweeter and the left mid-range.

2) Set up your mic at the acoustic center of the two stages and about four feet away.  Start your RTA software.

3) Open JRiver's parametric equalizer module, and create a filter to invert the second channel (i.e. the mid-range in this case), and create a second filter to delay the second channel.  I recommend initially setting the delay to whatever the physical offset between the drivers would suggest the delay should be, but you can start from zero if you prefer.

4)  Now gradually increase the delay on the delay filter and watch the RTA at the crossover point.  There will be some cancellation at the crossover point (a null), and you want to keep increasing the delay until you've made the null as deep as it can be: for a while it will keep getting deeper as delay increases, and then will start filling back in.  JRiver can adjust the delay in hundredths of a millisecond, so take some time to get the delay setting just as deep as possible (it should be at least 25 or 30dB deep and at least an octave across).  

5) That delay (the delay that produces the greatest null) is the correct delay.  When you de-invert the second channel the two should sum perfectly at the crossover (assuming you've chosen crossover slopes that sum flat).

You would then want to repeat the process to sync your mid-range and woofer, etc. (for it to work, the two stages being measured must share a crossover point, obviously).

The nice thing about the greatest null method is that it is completely immune to variable front-end latency because it only measures the actual offset between the channels as they are playing (including all sources of delay).  

If you're trying to use the time lock to do something other than set interchannel delay, let me know.

Hope this helps!
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: ra7 on July 05, 2014, 01:46:28 pm
Thanks for the prompt reply!

The greatest null method can be useful. I did something similar in Holm to arrive at the approximate delay. What you're banking on though, is that you have perfect phase overlap between the drivers after the crossover. When you're starting the design, you just don't know that. There are many things that affect the relative phase between drivers: physical separation, crossover slops, driver amplitude response. To this must be added the delay due to the convolution filter for each driver. Now, we're adding another variable, the delay in processing in JRiver, that cannot be precisely accounted for. To summarize, you can get close to the right delay, but there is no way to characterize the relative phase between the drivers.

Are you sure time lock works for you? I tried it and it gives different offsets for every measurement. For example, two separate measurements of tweeter+time lock+woofer give different offsets.

A sure shot way to do this is not use JRiver at all. Instead, import the convolution filters in Holm, make a direct measurement of the drivers and then convolve the measured response with the filter in Holm. But this would be very tedious to do during crossover design. It is much easier to do measurements and tweaking on the fly.

Is there no way to buffer the outputs or do something so that the delay through JRiver is fixed?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on July 05, 2014, 02:17:19 pm
The greatest null method can be useful. I did something similar in Holm to arrive at the approximate delay. What you're banking on though, is that you have perfect phase overlap between the drivers after the crossover. When you're starting the design, you just don't know that. There are many things that affect the relative phase between drivers: physical separation, crossover slops, driver amplitude response. To this must be added the delay due to the convolution filter for each driver. Now, we're adding another variable, the delay in processing in JRiver, that cannot be precisely accounted for. To summarize, you can get close to the right delay, but there is no way to characterize the relative phase between the drivers.

I think you may be working from a faulty assumption, or I may be misunderstanding you (in which case, sorry for being dense).

JRiver's loopback does not (in any measurement I've taken) introduce variable inter-channel delay.  The total delay of the system due to loopback may vary, but all channels have the same "processing" delay due to loopback in any given playback event.  It's just that Holm tends to drop the stream in between measurements unless timelock is engaged.  So the delay introduced by JRiver's loopback is irrelevant to normal playback because it is the same for all channels at any given point in time (if that makes sense).  

If your specific convolution filters introduce differing amounts of delay, that delay would obviously vary by channel, but would be a fixed delay, which would be captured by the greatest null method. JRiver's convolution engine does not introduce variable interchannel delay, otherwise the convolution engine would never work correctly at all.

I can confirm from my own repeated measurements of a convolved bi-amped system using loopback that JRiver does not (at any stage) introduce variable inter-channel delay, and that the greatest null method will produce correct results (subject to the caveats you note).

As for not knowing some things at the start of the design, in my own experience designing an infinitely customizable active crossover can be a pretty fluid process, that may never completely end ;D

I agree that if one has asymmetrical crossovers, or hasn't first corrected the response of one's drivers, one may not get optimal results from the greatest null method on the first try; but one can do those things in any order with an active crossover. I.e. my workflow is to flatten the FR/phase of the channels to half an octave past the crossover point, set the desired crossover slopes, and then set the delay.  Done in that order the greatest null usually gives me the correct result on the first try.

Quote
Are you sure time lock works for you? I tried it and it gives different offsets for every measurement. For example, two separate measurements of tweeter+time lock+woofer give different offsets.

Quite sure, I have gotten repeatable measurements that also happen to produce "correct" phase measurements once dialed in.  Time-lock also gave me the same delay (within a narrow margin) as the greatest null method.  I'm also fairly sure it's working for a few other folks here on the forum as well, maybe they can weigh in on anything special they had to do?  

It's been a little while since I used that functionality, and I was using WASAPI loopback at the time, so maybe that's the difference?

Is there no way to buffer the outputs or do something so that the delay through JRiver is fixed?

Unfortunately, the only way I know of is to use time-lock in Holm (and make sure that the "keep stream open" checkbox is checked in the Holm options).  Other than that, I'm not aware of a way to fix the latency.

If you have a spare I/O channel you may be able to use REW to get a robust real-time latency measurement using a literal loopback timing reference, but some folks around here have had a hard time with that.

Sorry I'm not more help on that front.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: ra7 on July 05, 2014, 04:30:32 pm
JRiver's loopback does not (in any measurement I've taken) introduce variable inter-channel delay.  The total delay of the system due to loopback may vary, but all channels have the same "processing" delay due to loopback in any given playback event.  It's just that Holm tends to drop the stream in between measurements unless timelock is engaged.  So the delay introduced by JRiver's loopback is irrelevant to normal playback because it is the same for all channels at any given point in time (if that makes sense).
I think we are talking about slightly different things. Obviously convolution wouldn't work if all channels didn't have the same delay. However, that delay changes from one moment to another. If you measure one driver at 2:00 pm, the total delay out of JRiver may be 500 ms. When you measure the same driver again at 2:01 pm, the total delay is not necessarily 500 ms. This is what trips up the measurement in Holm.   

Quote
Quite sure, I have gotten repeatable measurements that also happen to produce "correct" phase measurements once dialed in.  Time-lock also gave me the same delay (within a narrow margin) as the greatest null method.  I'm also fairly sure it's working for a few other folks here on the forum as well, maybe they can weigh in on anything special they had to do?  
Time lock is nothing but using the same offset for the second driver as the first (AFAIK). You can set that offset manually as well in the options box. Yes, the 'Keep in/out stream active' checkbox must be checked. But for the offset to work, the two measurements should have the same delay out of JRiver.

Quote
If you have a spare I/O channel you may be able to use REW to get a robust real-time latency measurement using a literal loopback timing reference, but some folks around here have had a hard time with that.
I may have to try that sometime.

Having said all that, I think the issue is solved by using WASAPI instead of ASIO for the USBStreamer output in JRiver. Now for consecutive measurements of the same driver, I get a delay of 5 samples (5/44.1 = 0.11 ms... not too bad). Each consecutive measurement adds 5 samples. Strange, but predictable. This is good enough for doing crossover work.

Thanks a lot for your insight and help! Greatly appreciated.


Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on July 05, 2014, 06:57:32 pm
Having said all that, I think the issue is solved by using WASAPI instead of ASIO for the USBStreamer output in JRiver. Now for consecutive measurements of the same driver, I get a delay of 5 samples (5/44.1 = 0.11 ms... not too bad). Each consecutive measurement adds 5 samples. Strange, but predictable. This is good enough for doing crossover work.

Thanks a lot for your insight and help! Greatly appreciated.

Great news! Glad you got it working ;D
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: Denti on July 08, 2014, 05:15:08 pm
I'd like to try this but need recommendations for a cheap but effective mic.
Title: Re: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: natehansen66 on July 09, 2014, 04:59:45 am
I use the dual channel method in REW with Wasapi loopback and don't have any issues. That said I've never tried it with convolution.

Denti - the cheapest mic would be a USB mic. Personally I don't think it's optimal because you can't do dual channel measurements like I was speaking of but it's cheaper than a mic + preamp. I would spend a bit more and get a professionally calibrated unit from Cross Spectrum Labs.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on July 09, 2014, 08:57:08 pm
I'd like to try this but need recommendations for a cheap but effective mic.

I'll second the recommendation for a calibrated phantom-powered mic from cross-spectrum if you have a mic pre-amp handy.  The calibrated USB mics that Parts Express sells are not bad either if you're looking for something cheaper. 

USB mics do have some disadvantages, but they're cheaper and easier if you don't have a mic pre-amp on hand.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: ra7 on July 16, 2014, 05:18:48 pm
Using the dual measurement system is a good idea. But it will be a little painful to keep changing the second channel measurement input, either out of the amplifier or the DAC, as you measure each of the different channels.

What would be ideal is if somehow JRiver can keep the same delay out of two consecutive measurements with convolution enabled.. call it measurement mode with convolution.

Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: natehansen66 on July 26, 2014, 11:20:55 am
Why would you have to change the second channel (if I understand you correctly you're talking about the loopback reference channel)? Once I have it setup I don't have to change any physical connections. I set MC to output an un-filtered signal to an unused channel on my DAC (granted I have 12 channels with 4 not used), and that goes to the second input on my mic preamp. I've never had any issues doing it this way. Looking back at your thread on DIYA it looks like you have 8 output channels on your DAC so you should be able to work with one speaker at a time, then switch to do the second speaker. Is that what you mean?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: ra7 on July 28, 2014, 05:51:03 pm
Yes, I do have some spare channels and I could use them for the measurement. But as we have seen, latency is variable in loopback mode. So, say, after measuring one driver, when I have to measure the second driver, I cannot get the convolved output on the same channel as before, right? I'd have to move the probe to a different channel.

For the latest iteration of the crossover, I did everything outside JRiver. Measured raw response (EMU -> amp -> speaker), then exported response to rePhase, exported filters from rePhase and convolved raw response with filters in Holm. Then, with everything put together and loopback in JRiver, I measured the total response and compared it to the summed response in Holm. Got pretty close.



Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: packux on December 27, 2014, 06:37:25 am
Hi all and Happy New Year,

I tried to follow this how-to and it seems I have some problems.

My current set-up is as following:

1. DAC/ADC: Metric Halo Lio-8
2. PC interface: Lynx AES16e
3. I am currently using Lynx inputs/outputs 0-8.
4. I have set-up input 3 from Lio to be directly routed to Digital In 3
5. I am using an ECM 8000 with a Rols PB23
6. JRiver is configured to use the ASIO Lynx driver.



Using either Holms (with DirectSound) or REW (with Java) and setting as input Lynx Recording 03+04 (WDM driver) and as output JRiver WDM has any of the following effects

1. No sound output from JRiver. It seems as if no audio goes through JRiver's engine as the spectrometer in JRiver is showing no audio activity. Holms (or REW) seem to be receiving audio from the digital in
2. No input either to REW or Holms. However, Audio ouput from JRiver, either Pink noise from JRiver itself (using Tools > Advanced Tools > Audio calibration in JRiver) or noise from measurement software seems to be working.

When using Holms or REW with ASIO, I can perform measurements, however it is not possible for me to measure the effect of corrections performed in JRiver DSP.

I remember reading multiple times that the Lynx ASIO driver does not play well with multi-use scenarios. As it currently stands, what I am trying to do is to use ASIO output (JRiver) and DirectAudio Input (WDM driver provided by Lynx) which I would guess is such a scenario.

One idea I had was to use JackRouter and JRiver but before going down that path, is there anything else that I could do which would not introduce so much latency/complexity?

Thanks already for your time everybody.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on December 27, 2014, 07:06:34 am
Hi all and Happy New Year,

I tried to follow this how-to and it seems I have some problems.

My current set-up is as following:

1. DAC/ADC: Metric Halo Lio-8
2. PC interface: Lynx AES16e
3. I am currently using Lynx inputs/outputs 0-8.
4. I have set-up input 3 from Lio to be directly routed to Digital In 3
5. I am using an ECM 8000 with a Rols PB23
6. JRiver is configured to use the ASIO Lynx driver.



Using either Holms (with DirectSound) or REW (with Java) and setting as input Lynx Recording 03+04 (WDM driver) and as output JRiver WDM has any of the following effects

1. No sound output from JRiver. It seems as if no audio goes through JRiver's engine as the spectrometer in JRiver is showing no audio activity. Holms (or REW) seem to be receiving audio from the digital in
2. No input either to REW or Holms. However, Audio ouput from JRiver, either Pink noise from JRiver itself (using Tools > Advanced Tools > Audio calibration in JRiver) or noise from measurement software seems to be working.

When using Holms or REW with ASIO, I can perform measurements, however it is not possible for me to measure the effect of corrections performed in JRiver DSP.

I remember reading multiple times that the Lynx ASIO driver does not play well with multi-use scenarios. As it currently stands, what I am trying to do is to use ASIO output (JRiver) and DirectAudio Input (WDM driver provided by Lynx) which I would guess is such a scenario.

One idea I had was to use JackRouter and JRiver but before going down that path, is there anything else that I could do which would not introduce so much latency/complexity?

Thanks already for your time everybody.

Forum user mojave has some Lynx hardware, and as I recall found a multi-client workaround using the a Steinberg multiclient ASIO patch/driver?  I'm on my phone so I can't find the exact posts where he discusses it, but there was definitely a thread about it a while back.  If he hasn't posted by the time I'm back in front of a keyboard I'll try and hunt it up.

EDIT: I found a link to the driver.  To be clear, folks on the forum have used this driver for a variety of ASIO interfaces to include RME and Lynx interfaces.  YMMV, but here it is: http://www.steinberg.net/forums/viewtopic.php?f=34&t=48
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mojave on December 27, 2014, 07:47:10 am
If he hasn't posted by the time I'm back in front of a keyboard I'll try and hunt it up.
You sure didn't give me much time.  ;D
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: packux on December 27, 2014, 12:40:14 pm
Thanks both for the update.

Yes I indeed found this workaround myself while trying to figure out a way to move forward but It didn't do much.

In practice, I have managed to measure (i.e. get input and output), however up until now it has not been possible to pass audio through JRiver audio engine.

I also have tried asio4all with the intention to create a layer on top of JRiver / lynx where one devices is used for input and another for output.

That's where I started thinking Jack could help out. A scenario I think of trying is the following.

1.open asio in via JRiver in a specific zone and output to Jack.

2.read from Jack in Holm

3.output from Holm to Jack

4.jack to JRiver ASIO

ideas?opinions?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: packux on December 28, 2014, 04:15:22 am
I just played a bit around the idea I was proposing, but it doesn't seem to work in any way.

1. Using 'Open Live... > ASIO Line In' in JRiver doesn't work for me. In ASIO Control panel, I configured it to open ASIO Lynx with 1 channel and channel offset 1 but I got the dreaded message 'Something went wrong with the playback'. FYI, the sampling rate available when configuring the ASIO Line in is also not what I would expect, as it provides sampling rate up to 96Khz (I have sampling rate configured to 192Khz in MH and Lynx)

2. It is not very clear how to connect REW and JRiver. I would use the ASIO Line in of Jack and use Jack as input/output in REW, but there I am stuck a bit from Jack configuration capabilities. I will most likely have to further check how things work there.

Any ideas on (1)?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on December 28, 2014, 08:10:35 pm
I'll confess I'm at a bit of a loss as I don't ordinarily use ASIO to measure (although I use it for playback). ASIO has obvious advantages for playback, but I've never found an advantage to using ASIO for measurements, and there are some significant downsides (As you're discovering).  

Have you tried not using ASIO in any stage of the recording or playback path, just for measurements?  If you configured JRiver to output via WASAPI temporaily you could completely skirt the multiclient ASIO issue, and it should have no real effect on most types of measurement (WASAPI is bitperfect just like ASIO, so there should be no risk that frequency response measurements would differ).  
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: packux on December 29, 2014, 04:13:38 am
Hi again,

yes indeed using ASIO (or even DirectSound) with Lynx for recording when JRiver is using it with ASIO is next to impossible (or at least i didn't find any meaningfull way of doing it).

So, I indeed proceeded as you also propose, i.e. set-up a  new zone that I use especially for measurements. This zone is using WASAPI to access Lynx and thus I am able to also record using Holms.

There are two lessons learned regarding JRiver through this proccess as well

1. The ASIO Line-In could be better. In its current state, I personally cannot use it even for simpler use cases, such as playing vinyl captured from Lio-8 via JRiver's engine

2. Holms does something funny with JRiver WDM. It seems that after using the WDM with Holms, I either need to completely restart windows, change the speaker configuration in Windows control panel or restart the driver itself to have any audio coming out again from WDM (and JRiver)

Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on February 07, 2015, 11:16:56 am
Close-micing is just what it sounds like: placing the mic very close to the speaker when measuring.  Because the speaker's response will tend to dominate the room response at short distances, you can get a quasi-isolated speaker response by taking measurements close to the speaker.  There's an art to this, and I'll go into it below.  
I wasn't sure whether to post this in this thread or start a new one, it's really about the measurement technique though so I thought I'd post it here as it might be relevant to others trying this.

Context is that I'm starting down the road of some DIY speakers, drivers are on order so I thought I'd try and get my measurement technique sorted using my existing speakers as a test bed. I've struggled to get good results using the techniques listed in this thread before as the speaker is sort of a 2.5 way with 3 tweeters and 2 woofers which makes close mic v hard. I also wanted to consider the impact of DSP on the off axis response. Therefore I set up a stand such that I had at least 1.2m in each direction from the speaker and the mic & I then measured at 7.5 degree intervals and set the windows to remove content after the 1st reflection.

One of the IRs with the window shown, the green arrow is what seems to be the 1st reflection.

(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16153;image)

and the FR at 0, 7.5, 15 and 22.5 degrees from 200Hz up (about the resolution provided by the window) is in speaker_fr.jpg

(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16151;image)

The main question that springs to mind here, apart from whether my measurement technique is solid, is how one might decide to handle that kind of response when EQing. It seems the on axis measurement has a bad dip at the XO (1.5kHz is apparently the crossover here) but that dip pretty much disappears as you move off axis. Correct the dip and you get a boost off axis, don't correct the dip and you get a dip on axis. Any useful strategies here? My 1st take is to average those 4 responses and correct based on that. This seems to make the various responses more consistent with each other without any of them being bang on.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 07, 2015, 04:58:57 pm
The main question that springs to mind here, apart from whether my measurement technique is solid, is how one might decide to handle that kind of response when EQing. It seems the on axis measurement has a bad dip at the XO (1.5kHz is apparently the crossover here) but that dip pretty much disappears as you move off axis. Correct the dip and you get a boost off axis, don't correct the dip and you get a dip on axis. Any useful strategies here? My 1st take is to average those 4 responses and correct based on that. This seems to make the various responses more consistent with each other without any of them being bang on.

Several thoughts:  

1) What does the phase look like in the crossover region where the dip is?  That would tell you definitively whether the issue was crossover based or not.  If it is crossover based, you could potentially correct the phase cancellation issue (using convolution), which would have the secondary effect of fixing the on axis response without necessarily unduly prejudicing the off-axis response.

2) I have found gating to be unreliable.  Have you taken any measurements in Holm (or exported to Holm) to take advantage of Frequency Dependent Windowing? Gating before first reflection (in my own experience) does not always produce repeatable results or successfully approximate close micing. Because FDW produces consistent, comparable, repeatable results for me, I would recommend using it whenever possible instead of a gating system.  

3) If you measure at one foot, is the dip still present?  How about at two meters?

4) It looks to me (although it's a little hard to disentangle) that both the on axis and the 7.5 degree graphs look like they have a multi-dB dip at 1.5KHz.  The 15 and 22 degree still have a 1dB dip there.  Am I misreading that?   I think (if it were not a phase issue but an actual frequency dip), you could safely add at least 1dB there without any trouble at all.  How far off axis are most of your seats?  

5) Averaging the responses creates some risks because your off axis response is pretty different, and not just at 1.5KHz (The multi-dB dip off-axis at 2.5KHz might skew things a bit).  Unless all of your seats are significantly off axis, I'd recommend trying for the flattest on axis response possible (recognizing that you can't directly correct some crossover issues).  Off-axis falloff isn't always linear (i.e. it isn't necessarily dB for dB depending on the polar pattern) so you might find that the off-axis doesn't change as much as you expect when you correct the on-axis.

All that said, my first recommendation in re: the 1.5Khz notch is to have a look at the phase.  If it's obvious that you're getting phase related cancellation on axis, then try correcting the phase (if you can use convolution in your application) and see if it helps the FR.  

If that's not it, I'd recommend either retaking the measurements in Holm or just exporting the impulses to Holm, and looking at them with FDW to see if the dip is the same, different, or what.  I know that it "shouldn't matter for frequencies above the gate," but that has not been my own experience at all.  For example, I can take two measurements from the same distance, but with a slightly different mic position (I'm talking inches), and the two measurements (when gated) will look very different above the gate.  This is not at all the case with FDW.  All of my FDW'ed 1 meter measurements look more or less the same (give or take minor fluctuations) even if the mic is in a slightly different position, and they look at least comparable in shape to my FDW'd 1 foot measurements.  

It's well documented that, at minimum, gating has a strong smoothing effect for an octave or two above the "gate frequency," which you can easily see if you adjust the gate on an existing measurement.  So while the data "below the gate" is guaranteed to be unreliable, even the data above the gate can be a little flaky.  For these reasons, I'm not convinced that gating actually does a very good job of simulating close micing or separating out the room, probably because late reflections aren't all there is to the story.  

I'm sure that sounds a little categorical, but I can't tell you how many hours I spent trying to get good results with gating, and getting nowhere or working in circles because my measurements never looked the same from day to day.  I finally lost my patience with it when my measurements on a Sunday showed that all of the EQ (every filter) that I'd spent an hour dialing in on Saturday was unnecessary/counterproductive.  After making the switch to FDW, I've never looked back.

P.S.- I know you said you had difficulty close micing due to multiple drivers. Did you have trouble getting consistent measurements, or was it just obvious that the very close measurements were incorrect/had problems?  I'm sort of curious where the process "broke down" for you and whether you might not be able to measure profitably closer than 1 meter?
Title: Re: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: natehansen66 on February 07, 2015, 08:37:27 pm
Matt - change your dB scale to show a 40dB range....that will give you 5dB divisions which is a standard way to display data. Your 1dB scale can make things look much worse than they really are. What kind of speakers are we looking at here?

mwillems - when you talk about having repeatability issues with gating are you talking about measurements for room correction from the lp?

It sounds like matt is looking to get quasi-anechoic data on his speakers and in my experience as long as you are in the far-field then repeatability is not an issue with gating. I've measured my speakers many times on different days and the result was within 1dB. Now if you're talking about different results with gated data from the lp then that I can understand for the reasons mwillems has given. I  agree that quasi-anechoic data taken in a typical living room is suspect below about 1khz, but I'm not sure that a close mic measurement is sufficient to capture baffle diffraction effects.
Title: Re: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 07, 2015, 08:57:39 pm
mwillems - when you talk about having repeatability issues with gating are you talking about measurements for room correction from the lp?

I'm talking about from any room position farther than about 1 meter out to the listening position; basically anything other than close micing (i.e. out in the room) produces inconsistent results for me with static gating.

Quote
I  agree that quasi-anechoic data taken in a typical living room is suspect below about 1khz, but I'm not sure that a close mic measurement is sufficient to capture baffle diffraction effects.

I think we mostly agree, with the modification that I think that gated data in a living room is suspect below about 1KHz (or higher depending on the gate).  FRD applies a variable gate that scales to the wavelength, so it will produce useful data at all wavelengths.  That, in part, is why I think it produces more consistent results (at least for me).  I can get a very similar 300Hz measurement on axis at 3 feet and at 10 feet with FRD; with a static gate, it's not at all similar (and as I said above, sometimes differs for me in a similar position on different days).

And I definitely agree that close micing (really close micing) will not capture baffle diffraction. Some farther field measurement (at least at a meter out) is desirable, but my experience with gated measurements is that I get much less consistent results (especially below 1K, but also in general) with a static gate than with frequency dependent windowing.  

It sounds like you've had better luck with static gating than I have, maybe, if you're willing, could you can offer some pointers on gate configuration?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on February 08, 2015, 04:08:16 am
@nate the speaker in question is an MK MP150 Mk2 (http://"http://mkloudspeakers.com/products-info/mp-150-mk2-flat-on-wall-loudspeaker/Product/166") which has 2 5.25" woofers and 3 1" dome tweeters. AIUI the woofers cross to 2 of the tweeters at 1.5kHz and then those the 3rd tweeter joins in somewhere around 4kHz.

There are further measurements of that speaker in http://yabb.jriver.com/interact/index.php?topic=88942.msg614015#msg614015 and some discussion with @mwillems ensues :) the problem with measurements taken closer in was, I think, down to the no of drivers involved making it hard to get a clear picture of what was going on. The problem with moving to 2m is that, in my room, I'm practically at the listening position at that point. I didn't have the relevant kit to get the speaker off the wall and measure it in isolation at that point though, I do now (hence these new measurements) so I am planning to get it outside and measure which would give me ~3m clear space (apart from the floor so was thinking of laying down some material to absorb between mic and driver).

FWIW I've shared the mdat at https://drive.google.com/file/d/0BxdmSMpV-t3GQXNNMC1DWGt3VVU/view?usp=sharing in case there is some Q left unanswered by my point by point comments belows.

1) What does the phase look like in the crossover region where the dip is?  That would tell you definitively whether the issue was crossover based or not.  If it is crossover based, you could potentially correct the phase cancellation issue (using convolution), which would have the secondary effect of fixing the on axis response without necessarily unduly prejudicing the off-axis response.
(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16167;image)

2) I have found gating to be unreliable.  Have you taken any measurements in Holm (or exported to Holm) to take advantage of Frequency Dependent Windowing? Gating before first reflection (in my own experience) does not always produce repeatable results or successfully approximate close micing. Because FDW produces consistent, comparable, repeatable results for me, I would recommend using it whenever possible instead of a gating system.  
I use acourate which does have a FDW function, the Q is how to apply it. One user described the controls in http://digitalroomcorrection.hk/http___www.digitalroomcorrection.hk_/Driver_Linearization.html which says

FDW means a frequency dependent windowing defined in terms of cycles.
A 1kHz sine wave has a cycle time of 1 ms. So a FDW value of 15 means a window width of 15 ms.
With a 20 Hz sine wave the same FDW value means a window width of 15 * 50 ms = 750 ms.

In the FDW panel you find 4 parameters. a/b, c/d
The parameters control the windowing of a given single pulse response. a/b is a half window on the left side of the pulse peak, c/d is a half window on the right side of the pulse peak. In normal cases you can simply set a=c and b=d = symmetric windowing.
a and c define the width at low frequencies, whereas b and d define the width at high frequency (fs/2). In between the values are interpolated.


For example, here's that on axis measurement with 15/15 15/15 FDW vs 4/4 4/4

(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16165;image)

3) If you measure at one foot, is the dip still present?  How about at two meters?
see the post I linked to earlier for measurements taken closer albeit they were taken on wall

4) It looks to me (although it's a little hard to disentangle) that both the on axis and the 7.5 degree graphs look like they have a multi-dB dip at 1.5KHz.  The 15 and 22 degree still have a 1dB dip there.  Am I misreading that?   I think (if it were not a phase issue but an actual frequency dip), you could safely add at least 1dB there without any trouble at all.  How far off axis are most of your seats?  
the dip at 1.5kHz is pretty much gone by 22.5 degrees, it gradually softens before that point.

The seating area is covered by

L = 0 to -32 degrees
R = 0 to +32 degrees
C = +/- ~16 degrees

The wall on one side has an open fireplace so is somewhat chaotic/unmanageable for the purposes of first reflections. The other wall (ipsilateral to the L speaker) is a flat surface.

1st reflection points are in the ranges of

L = ~15-40 degrees
C = ~40-50 degrees
R = ~40-50 degrees

to illustrate

(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16169;image)

I'm planning a SEOS10 + AE TD10H build to replace these.

5) Averaging the responses creates some risks because your off axis response is pretty different, and not just at 1.5KHz (The multi-dB dip off-axis at 2.5KHz might skew things a bit).  Unless all of your seats are significantly off axis, I'd recommend trying for the flattest on axis response possible (recognizing that you can't directly correct some crossover issues).  Off-axis falloff isn't always linear (i.e. it isn't necessarily dB for dB depending on the polar pattern) so you might find that the off-axis doesn't change as much as you expect when you correct the on-axis.
the problem I have atm is that a listening position only based correction is resulting in recessed mids (~600-1000Hz) which isn't ideal. This is what acourate sees as the basis for correction & the inverse that it uses as the basis for the correction filter.

(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16171;image)

From the top

Red = the in room response after FDW and other smoothing
Brown = a "normal" bk style target curve
Green = the inverse from the bk curve that will form the basis of the filter

Blue = an adjusted bk style curve to accommodate that "step" around 1kHz
Black = the inverse of the adjusted bk curve

You can see in the red trace the relatively high level in that midrange. The normal curve then cuts this down to size to produce a flat response BUT this presents to my ears as recessed mids (voices are somewhat veiled and pushed backwards in the sound stage). I attempted to hack around this with the blue curve which introduces a hard step in the target curve, this does bring the voices forward (as you would expect) but wasn't ideal in some other respects.

I have run through a correction based on an average of the FDW'ed responses, only briefly listened to it though. I'll post that info in another post for reference.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on February 08, 2015, 05:32:54 am
(not sure whether we should split this off to a separate topic? perhaps a mod can move if they want to)

This is correction I came up with last night based on those measurements. I used default FDW values in acourate which is 15 cycles before/15 cycles after the peak, arguably too large a window but I wanted to work through the process to see what came out the other end.

This shows the 0/7.5/15/22.5 degree measurements after FDW and then the average of the 4 (offset below)

(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16173;image)

I decided not to attempt to correct below 1kHz and so this produces the following, red is the corrected high pass and the other traces are the same measurements put through the XO (remember that acourate works by creating a set of XO pulses which you can apply filters to etc, it then convolves the sweep with the XO and routes that to each channel for measurement purposes, you then do room correction against the resulting measurement and the final filters are a combination of that correction + the XO)

(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16175;image)

This produces the following measurement at the listening position, green is with a vanilla XO and red is with this corrected XO

(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16177;image)

There is a bit of an ugly spike at 4kHz & the upper frequency droop is a concern but the response is much more consistent from 300Hz to 4kHz.

Finally the measured results of correction, red is the vanilla XO and green is with the new corrected XO.

(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16179;image)

Not radically different tbh, somewhat smoother through the 800-2kHz range though.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on February 08, 2015, 05:38:31 am
getting somewhat back on topic.... is data with this resolution (i.e. maybe 5ms of clean data) sufficient for passive XO design when the XO is likely to be in the 1.5kHz range? I don't have a bigger space in the house so would have to head outdoors to get better data.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 08, 2015, 08:42:48 am
Quite a bit to respond to, and now that you linked I recall some of our prior discussions (apologies, it's been an eventful year for me  :-[ )

(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16167;image)

That phase makes it relatively clear that the issue is phase cancellation related and the crossover's delay isn't quite right.  Looking at your correction in acourate, it's obvious that some phase correction is happening in tandem with the frequency response correction (or it wouldn't be able to fill the hole at all).  But it's still looks like it's adding undesired boost off-axis.  All told the projected correction is plus or minus 1.5 dB so it may not matter too much.  If you want to try and squeeze the problem down to nothing, here's what I'd suggest investigating: Is there any way in acourate to dial in specific phase changes without also changing frequency?   The reason I ask is that is that RePhase has a feature that allows to basically just reverse the phase shift of a passive crossover, which can resolve some phase cancellation issues without further monkeying with FR.  If you do that you might be able to get things normalized on axis with less mischief off axis.

For example, here's that on axis measurement with 15/15 15/15 FDW vs 4/4 4/4
(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16165;image)

Thanks for humoring me on this, this is exactly what I was looking for.  In the guide above I recommend using a coefficient of 12 for FDW in Holm, but I'm not sure how Holm's coefficients line up with Acourate's.  Somewhere between Acourate's 4 and 15 to be sure.

Quote
see the post I linked to earlier for measurements taken closer albeit they were taken on wall
the dip at 1.5kHz is pretty much gone by 22.5 degrees, it gradually softens before that point.

The seating area is covered by

L = 0 to -32 degrees
R = 0 to +32 degrees
C = +/- ~16 degrees

Well that makes it all easier (and thanks for the excellent drawings), because each seating position appears to be on axis (ish) for one speaker while being somewhat off axis for the other.  That's great when you have complementary on and off-axis peaks and dips because the on-axis speaker will "compensate" for the off-axis speaker.  So if you're up 1.5 dB off axis, but down 1.5 dB on axis it will present relatively coherently at all of your listening positions, if you see what I mean.  The fireplace is obviously a wildcard, but you get the idea.

It looks to me, though, that if you really wanted to "solve" the 1.5 KHz problem that manual phase manipulation might be the way to do it.


Quote
You can see in the red trace the relatively high level in that midrange. The normal curve then cuts this down to size to produce a flat response BUT this presents to my ears as recessed mids (voices are somewhat veiled and pushed backwards in the sound stage). I attempted to hack around this with the blue curve which introduces a hard step in the target curve, this does bring the voices forward (as you would expect) but wasn't ideal in some other respects.

That's very odd; It's obvious based on your final measurements below that Acourate is overcorrecting in the midrange (600 to 1000); any ideas what combination of factors is leading it to see a phantom peak there?  Do you see that same 4dB 600 to 1000 peak at the listening position in other software like REW or Holm?

This produces the following measurement at the listening position, green is with a vanilla XO and red is with this corrected XO
(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16177;image)

There is a bit of an ugly spike at 4kHz & the upper frequency droop is a concern but the response is much more consistent from 300Hz to 4kHz.

Finally the measured results of correction, red is the vanilla XO and green is with the new corrected XO.

(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16179;image)

Not radically different tbh, somewhat smoother through the 800-2kHz range though.

I actually think that's a pretty dramatic improvement (given that you're down to dB by dB variations).  You managed to iron out a 2dB dip (at 1.2K), a 1.5dB dip at 600Hz, and flattened a +/- 1dB swing (between 750 and 900) in the region of interest. I'd call that a pretty serious victory, especially since the dips/ripples in question were relatively high Q dips (Which are more likely to be audible).  It's still sort of a puzzle why Acourate was overcorrecting in the first place.

getting somewhat back on topic.... is data with this resolution (i.e. maybe 5ms of clean data) sufficient for passive XO design when the XO is likely to be in the 1.5kHz range? I don't have a bigger space in the house so would have to head outdoors to get better data.

Absolutely, especially if you'll be able to close mic the drivers you're working with.  "Most of my design has benn for active crossovers, but I've assisted on one or two passives too.  

Active crossover design is, of course, easier because you can change it after implementing (sometimes on the fly), but (with that caveat in mind) I've designed a few active crossovers with the speakers in a normal living room (one with a cross at 800Hz, and one with a cross at 350Hz), and they worked out great. The crossovers worked correctly when the speakers were moved to other environments, etc.  

You can also use JRiver to "demo" a passive design by dialing it in as a n active filter and measuring.  So you never need to rely on simulations, you can test the crossover design and adjust as necessary without ever soldering a part.  You can basically use JRiver as a live crossover design suite that can be tweaked on the fly.  This has saved me some serious grief as I'm not very handy with a soldering iron.  By far the hardest part of any crossover design is setting the interchannel delay correctly, which is trivial when you can just change the delay at will like you can in JRiver.

As long as you can close mic and have software that provides for frequency dependent windowing, you can accomplish what you need for basic crossover design purposes; if you can demo them as an active crossover first, you can get them close to perfect.

Out of curiosity, any particular reason for going with a passive crossover design?  There are some real challenges that go along with passive crossovers (lost efficiency, lack of slope flexibility, correct delay i very challenging to accomplish passively, slopes change due to changes in temperature and the aging of components, etc.); there are obviously significant pros too (convenience, only need a stereo amp, easier for end users, etc.), but have you considered doing an active/all software crossover?  Sorry to be meddlesome if you've already considered and rejected the idea, but you really can do much more with active correction if you're starting from scratch in terms of building speakers; if you're interested I'm happy to provide some links outlining the benefits in more detail.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on February 08, 2015, 12:58:44 pm
Thanks for the detailed response.

 If you want to try and squeeze the problem down to nothing, here's what I'd suggest investigating: Is there any way in acourate to dial in specific phase changes without also changing frequency?   The reason I ask is that is that RePhase has a feature that allows to basically just reverse the phase shift of a passive crossover, which can resolve some phase cancellation issues without further monkeying with FR.  If you do that you might be able to get things normalized on axis with less mischief off axis.
I don't know tbh. Theoretically it seems like I should be able to generate a filter externally and then convolve the acourate XO with that filter before using it in the sweep. On the other hand, acourate has loads of features I don't remotely understand so perhaps it can be done in there instead. Can you describe how you would do this in RePhase?

 Thanks for humoring me on this, this is exactly what I was looking for.  In the guide above I recommend using a coefficient of 12 for FDW in Holm, but I'm not sure how Holm's coefficients line up with Acourate's.  Somewhere between Acourate's 4 and 15 to be sure.
I imported the impulse into holm and compared the two visually, I think it's actually more like 18-20 in acourate. Holm also indicates that the window is a symmetric window & is 20ms wide on the left and right at 1kHz. The shape looks like a Hann window but I'm not 100% sure about that. I think it's reasonable to argue that 12 in Holm is too big in this case given that I know the HF reflection arrives after 5ms or so.

 
That's very odd; It's obvious based on your final measurements below that Acourate is overcorrecting in the midrange (600 to 1000); any ideas what combination of factors is leading it to see a phantom peak there?  Do you see that same 4dB 600 to 1000 peak at the listening position in other software like REW or Holm?
No I don't know, acourate is a quite high maintenance partner at times :) I think probably 1 in 4 times I measure I get some sort of anomaly.

 
I actually think that's a pretty dramatic improvement (given that you're down to dB by dB variations).  You managed to iron out a 2dB dip (at 1.2K), a 1.5dB dip at 600Hz, and flattened a +/- 1dB swing (between 750 and 900) in the region of interest. I'd call that a pretty serious victory, especially since the dips/ripples in question were relatively high Q dips (Which are more likely to be audible).  It's still sort of a puzzle why Acourate was overcorrecting in the first place.
I have completed some initial listening and it does seem improved. I do find myself getting more sensitive to these variations as time goes by, possibly not a good thing!

 
You can also use JRiver to "demo" a passive design by dialing it in as a n active filter and measuring.  So you never need to rely on simulations, you can test the crossover design and adjust as necessary without ever soldering a part.  You can basically use JRiver as a live crossover design suite that can be tweaked on the fly.  This has saved me some serious grief as I'm not very handy with a soldering iron.  By far the hardest part of any crossover design is setting the interchannel delay correctly, which is trivial when you can just change the delay at will like you can in JRiver.

As long as you can close mic and have software that provides for frequency dependent windowing, you can accomplish what you need for basic crossover design purposes; if you can demo them as an active crossover first, you can get them close to perfect.
this sounds v promising. How do you translate the passive design into an active filter? I had noticed soundeasy had this capability but, from what I've read, it is rather pernickity about hardware and is a bear to learn.

 
Out of curiosity, any particular reason for going with a passive crossover design?  There are some real challenges that go along with passive crossovers (lost efficiency, lack of slope flexibility, correct delay i very challenging to accomplish passively, slopes change due to changes in temperature and the aging of components, etc.); there are obviously significant pros too (convenience, only need a stereo amp, easier for end users, etc.), but have you considered doing an active/all software crossover?  Sorry to be meddlesome if you've already considered and rejected the idea, but you really can do much more with active correction if you're starting from scratch in terms of building speakers; if you're interested I'm happy to provide some links outlining the benefits in more detail.
The main reason is that I have cables chased into a solid brick wall (my equipment rack is some distance away under the stairs) and running a 2nd pair is invasive work. The secondary reason is that I intend to remediate this in a few years when we have an extension built so I figured I would go passive for now and swap to active later. Finally, and slightly perversely, passive xo design seems like an interesting challenge.

Certainly interested in any and all links and/or adivce you have anyway. I suspect I'm going to need it :D
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 08, 2015, 02:13:19 pm
Thanks for the detailed response.
I don't know tbh. Theoretically it seems like I should be able to generate a filter externally and then convolve the acourate XO with that filter before using it in the sweep. On the other hand, acourate has loads of features I don't remotely understand so perhaps it can be done in there instead. Can you describe how you would do this in RePhase?

There is a tab in rephase labelled "filters linearization"; it includes a column labelled crossovers which includes a large number of phase manipulation presets that effectively just reverse the phase wrap introduced by many conventional crossover filters without touching the FR.

Quote
I imported the impulse into holm and compared the two visually, I think it's actually more like 18-20 in acourate. Holm also indicates that the window is a symmetric window & is 20ms wide on the left and right at 1kHz. The shape looks like a Hann window but I'm not 100% sure about that. I think it's reasonable to argue that 12 in Holm is too big in this case given that I know the HF reflection arrives after 5ms or so.

That makes sense; I'll make a mental note of that for future comparability.

Quote
this sounds v promising. How do you translate the passive design into an active filter? I had noticed soundeasy had this capability but, from what I've read, it is rather pernickity about hardware and is a bear to learn.

The short answer is that I don't, I do the reverse.  I'm not an EE and have limited skill with practical electronics, so I do all of my initial design empirically.  I'm not good enough at circuit analysis to "work backwards" from an existing circuit layout to a filter bank unless the filters involved are textbook filters.

So I just work it out empirically; I measure the speaker elements separately, then figure out what filters and delay I need, dial them into JRiver, re-measure, etc. until I figure out the ideal combination.  Once you know the actual filters you need, it's a matter of finding the right parts and layout, which is obviously non-trivial, but most of the PEQ filters in JRiver are textbook filters. So you can use the various calculators and design tools floating around the internet, like this one that will spit out a symmetrical crossover circuit complete with parts values: http://www.diyaudioandvideo.com/Calculator/XOver/  

Once you know what the ideal is, the real issue at that point is reducing complexity and trying to figure out to how to do the most with the fewest filters.  I'll confess that if I were making a passive filter tomorrow, I'd want to huddle up with an EE friend of mine to make the translation from filters to an actual circuit to keep myself out of trouble.   I tried doing one on my own many years back and the results were suboptimal  :-[

Delay will be a problem no matter what; doing fine delay in analog is brutally hard, which is why most speaker designers solve the problem mechanically instead: they just skip the issue of electronic delay entirely and try to get the drivers' voice coils physically aligned so delay isn't so important.  There are obviously limits to that method, especially if you have horns, etc.

Quote
The main reason is that I have cables chased into a solid brick wall (my equipment rack is some distance away under the stairs) and running a 2nd pair is invasive work. The secondary reason is that I intend to remediate this in a few years when we have an extension built so I figured I would go passive for now and swap to active later. Finally, and slightly perversely, passive xo design seems like an interesting challenge.

Certainly interested in any and all links and/or adivce you have anyway. I suspect I'm going to need it :D

Fair enough; I enjoy a good challenge myself  ;D.  I'm happy to help to the extent I can, with the caveat that (as noted above) I'm pretty iffy at circuit design.

When you reach the point that you're thinking about active design, the first article I'd suggest is this famous one by Rod Elliot: http://sound.westhost.com/bi-amp.htm

It does a very good job of laying out some of the major advantages of active crossovers and bi-amping, and contains links to a number of very good articles about crossover design.

To "amplify" and offer some observations of my own:

1) Delay is very challenging to get right in a passive crossover so your phase coherence will always be approximate (unless you're a very good EE or can get cm-tolerance driver alignment)
2) Because of the size and cost of electronic components (as well as power losses from passive components), you'll be limited in the amount of filtering that can be done with a passive crossover.  For example, 4th Order crossover slopes are both parts-intensive and extremely power hungry, which makes them less practical in passive crossovers.  Ditto for other types of parametric filtering.
3)  This isn't the end of the world because we can dial in an arbitrary amount of electronic DSP in software, but software DSP will be very limited in it's ability to correct any FR anomalies in the crossover region because both speakers won't be contributing to them equally, so you'll have some unresolvable lumps and dips in the crossover region.  This is exacerbated because of the design limitations in 2) lead to most passive crossovers using lower-order crossover slopes (1st, 2nd, or 3rd), which means the effective "crossover region" could easily be three to five octaves!
4) Active crossovers with bi-amping significantly reduce intermodulation distortion
5) Because of the power losses mentioned in 2) and because passive crossovers require padding down the more sensitive of the two drivers, active crossovers allow for significantly better power efficiency.
6) Passive components change with temperature and age (i.e. the capacitance of a capacitor is not the same at all temperatures or after a few years).  Because capacitance/inductance/etc. determine the frequencies/slopes of the filters, you may find that you get different speaker performance when playing music loud (because the parts heat up due to power flow, etc.).  This can be mitigated to some extent by buying nicer components that have better temperature tolerance, but that raises cost, etc.

Obviously none of these issues is insurmountable, and there are many very high quality passively crossed speakers out there.  It's just that passive crossovers necessarily involve making some compromises, especially for a DIYer. They can be close to perfect if you're a talented designer with a wide-open budget, but if you're trying to piece it together (or do it at low cost) it can be harder to get a good result.  

By contrast, if you have the equipment to do active crossovers/bi-amping (a few extra amp channels and a multi-channel DAC) you can skip those compromises entirely, and just hack away until it's actually right (or let Acourate do it for you)  ;D
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on February 09, 2015, 10:34:27 am
There is a tab in rephase labelled "filters linearization"; it includes a column labelled crossovers which includes a large number of phase manipulation presets that effectively just reverse the phase wrap introduced by many conventional crossover filters without touching the FR.
OK I see it, I will have a play around with that. I think acourate has the same functionality with its excess phase correction but I'm not sure how to drive it in this situation.

The short answer is that I don't, I do the reverse.  I'm not an EE and have limited skill with practical electronics, so I do all of my initial design empirically.  I'm not good enough at circuit analysis to "work backwards" from an existing circuit layout to a filter bank unless the filters involved are textbook filters.

So I just work it out empirically; I measure the speaker elements separately, then figure out what filters and delay I need, dial them into JRiver, re-measure, etc. until I figure out the ideal combination.  Once you know the actual filters you need, it's a matter of finding the right parts and layout, which is obviously non-trivial, but most of the PEQ filters in JRiver are textbook filters. So you can use the various calculators and design tools floating around the internet, like this one that will spit out a symmetrical crossover circuit complete with parts values: http://www.diyaudioandvideo.com/Calculator/XOver/ 
right ok, I may try that approach. My basic plan so far was to try and get PCD (http://"http://audio.claub.net/software/jbabgy/PCD.html") working but we'll see how that goes :) I have to twiddle my thumbs until the drivers arrive anyway.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on February 09, 2015, 04:57:44 pm
OK I see it, I will have a play around with that. I think acourate has the same functionality with its excess phase correction but I'm not sure how to drive it in this situation.
FWIW acourate does have this feature and automagically does it for you if you know how. Basically you create an impulse that contains the excess phase only, reverse it and then you can convolve the XO used in the sweep with that excess phase correction. To simulate the effect I convolved my original impulse with the phase correction and then dumped it in REW to show the comparison

(http://yabb.jriver.com/interact/index.php?action=dlattach;topic=87538.0;attach=16196;image)

apparently this is unlikely to work well in practice but I'll give it a whirl next time I measure anyway just to see
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 10, 2015, 08:26:50 am
apparently this is unlikely to work well in practice but I'll give it a whirl next time I measure anyway just to see

Out of curiosity, why is it unlikely to work well?  If you can alter the phase relationships, you can probably sort out at least some of the on axis cancellation (that's been my own experience anyway).  Or is it that it's less likely to work well than going the whole distance with Acourate?  Phase wrap isn't super audible when the two sides are phase coherent, but they probably are not completely phase coherent in your case (or you wouldn't have that dip).

Regardless, I'll be interested to hear whether it helps at all. 
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on February 11, 2015, 02:16:28 am
Out of curiosity, why is it unlikely to work well?  If you can alter the phase relationships, you can probably sort out at least some of the on axis cancellation (that's been my own experience anyway).  Or is it that it's less likely to work well than going the whole distance with Acourate?  Phase wrap isn't super audible when the two sides are phase coherent, but they probably are not completely phase coherent in your case (or you wouldn't have that dip).
I hope he won't mind me quoting him (Uli B) but he said

You see a dip in the XO transition area because the phases of both drivers are different. But you only have the answer of the sum of both drivers. So of you apply a filter which will remove the dip it will boost both drivers. And when you measure off axis then again the frequency response will change.
The same happens with a phase changing filter. It will equally change the phase of both drivers. So it will correct the phase sum of them. But changing the position to off axis will also change again the sum.


Regardless, I'll be interested to hear whether it helps at all. 
apparently not, does this mean that dip is not phase related at all? brown is before, green is after btw



Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 11, 2015, 06:29:46 pm
That certainly doesn't look phase related in those measurements. The final test: if you add boost there, does it actually fill in?  If you can EQ it one for one, it's definitely not phase cancellation
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: GiAnt on May 07, 2015, 07:37:48 am
Out of curiosity, any particular reason for going with a passive crossover design?  There are some real challenges that go along with passive crossovers (lost efficiency, lack of slope flexibility, correct delay i very challenging to accomplish passively, slopes change due to changes in temperature and the aging of components, etc.); there are obviously significant pros too (convenience, only need a stereo amp, easier for end users, etc.), but have you considered doing an active/all software crossover?  Sorry to be meddlesome if you've already considered and rejected the idea, but you really can do much more with active correction if you're starting from scratch in terms of building speakers; if you're interested I'm happy to provide some links outlining the benefits in more detail.
Mwillems, the tutorial in the first page of this thread is impressive ... It is very, very instructive. Many thanks! You already help me some days ago in the fine tuning of crossover with JRiver MC. My ultimate goal is to manage with JRiver MC my DIY multiway active system (actually based on external DSP). Unfortunately, I have still limited knowledge on this topic to correctly arrange by myself the whole system. I will be very grateful to you if you could show me the "flowchart" (possibly with some links or pictures) to follow to realize an entirely Pc-based system, from crossovers to room correction. I will use the information to write a guide on the usage of JRiver MC in this context, on an italian forum of digital-Hi-Fi-audio. In order to ensure a large spreading of the tutorial, the usage of free software (such as Holm and Rephase) is wellcome.
Thanking you in advance
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on May 07, 2015, 08:00:02 am
Mwillems, the tutorial in the first page of this thread is impressive ... It is very, very instructive. Many thanks! You already help me some days ago in the fine tuning of crossover with JRiver MC. My ultimate goal is to manage with JRiver MC my DIY multiway active system (actually based on external DSP). Unfortunately, I have still limited knowledge on this topic to correctly arrange by myself the whole system. I will be very grateful to you if you could show me the "flowchart" (possibly with some links or pictures) to follow to realize an entirely Pc-based system, from crossovers to room correction. I will use the information to write a guide on the usage of JRiver MC in this context, on an italian forum of digital-Hi-Fi-audio. In order to ensure a large spreading of the tutorial, the usage of free software (such as Holm and Rephase) is wellcome.
Thanking you in advance

I've been working on a guide to active speakers/crossover design in JRiver, but I have an infant daughter so the guide has languished unfinished on my "to do" pile.  I'll post here when it's finished (if it's ever finished), but in the meanwhile if you have any specific questions I'm happy to answer.  You may want to start another thread so we can get deep into the issues.

For now, I'll share the two pieces of advice I wished I'd known when I started building active speakers.  You may already know this, but if I had known these two things at the start I'd have saved myself some time:

1) The most important thing is to measure your results using a calibrated microphone with logarithmic sweeps using frequency dependent windowing.  You can have things worked out in theory, but your measurements will tell you whether you've done things correctly, and will identify problems or things you may not have thought through all the way.  An uncalibrated mic will fool you, and using pink noise for anything other then phase coherence or setting relative volume levels will fool you, and gated sweeps will also fool you (unless you know how to read them).  Do sweeps with frequency dependent windowing with a calibrated mic, and you'll get where you need to be faster.

2) If you want crossovers that are likely to "just work" without much fuss, use symmetrical 4th order Linkwitz-Riley filters.  They're phase coherent and sum flat.  Almost any other topography (except for 8th order Linkwitz-Riley) will require special care and feeding, which may be desirable once you know exactly what you're doing, but to start with, LR 4 will make your life much easier.  You can make 4th order linkwitz rileys in JRiver's parametric equalizer by creating two identical 12dB lowpasses and two identical 12dB highpasses (stacking two butterworth filters makes a linkwitz riley filter).
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: GiAnt on May 07, 2015, 04:11:23 pm
... I have an infant daughter so the guide has languished unfinished on my "to do" pile. 
This is a very good news. I'm sure your best DIY project!

You may want to start another thread so we can get deep into the issues.
Ok, one of the next days I will start a new thread on this topic

1) The most important thing is to measure your results using a calibrated microphone with logarithmic sweeps using frequency dependent windowing.  You can have things worked out in theory, but your measurements will tell you whether you've done things correctly, and will identify problems or things you may not have thought through all the way.  An uncalibrated mic will fool you, and using pink noise for anything other then phase coherence or setting relative volume levels will fool you, and gated sweeps will also fool you (unless you know how to read them).  Do sweeps with frequency dependent windowing with a calibrated mic, and you'll get where you need to be faster.

Ok, I have the equipment and the softwares to perform this.

2) If you want crossovers that are likely to "just work" without much fuss, use symmetrical 4th order Linkwitz-Riley filters.  They're phase coherent and sum flat.  Almost any other topography (except for 8th order Linkwitz-Riley) will require special care and feeding, which may be desirable once you know exactly what you're doing, but to start with, LR 4 will make your life much easier.  You can make 4th order linkwitz rileys in JRiver's parametric equalizer by creating two identical 12dB lowpasses and two identical 12dB highpasses (stacking two butterworth filters makes a linkwitz riley filter).
Yes, I know. I will follow your advice.
See you

Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: harlington on May 13, 2015, 03:18:08 pm
First of all and as many has said, thanks so much for a well written thread. My question is that we are listening to speakers, subs in room, does it make more sense to measure and eq speakers/subs at the main listening position? Is it ok to average the left and right measurements in REW and eq it (the average measurement)? I have a 7.1 system that I use a 100hz crossover to my subs (all 7 speakers), I was playing with the REW eq to eq the center and subs, the average of front left and right plus subs measurements, the average of side L/R surround plus subs and the average of rear L/R surround plus subs (all use full range in REW filter). I only match target in REW eq from 10-20khz for my center plus subs, and from 80-20khz for the rest so that it does not apply filters to subs many times. As the result, I have 4 set of filters (center, main, side, and rear) that I will manually enter in jriver DSP. In jriver, I currently have two  separate parametric eqs that I plan to type in the eq filters for my center and main (38 total filters) using jriver parametric eq and type in filters for my side and rear surrounds using parametric eq2 (10 total filters). Is that ok? Is there a max number of filters one can enter in jriver DSP? Can I enter all 48 filters in one parametric eq? Also, will the change take effect immediately by ticking and unticking the parametric eq?  Thanks for all the help as I am new to jriver and REW eq.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on May 13, 2015, 05:42:01 pm
There's a lot of information in your post and I'm having trouble following some parts of your setup.  I'll answer some of the questions that "pop out," but if I miss something, let me know  ;D

First of all and as many has said, thanks so much for a well written thread. My question is that we are listening to speakers, subs in room, does it make more sense to measure and eq speakers/subs at the main listening position?

I don't recommend measuring at the listening position for correction unless you plan on listening only in that one small position or unless you're using one of the more sophisticated commercial automatic measuring suites (like audiolense and acourate).  If you re-read the opening of the guide, I went into some detail (with measurements) to show why I think measuring at the listening position is not the best idea.  The bottom line is that speaker non-linearities can often be usefully EQ'd, and certain kinds of near-field room effects (like corner gain) can also be meaningfully eq'd.  Other mid and far field room effects (rear wall bounce, nulls, nodes and anti-nodes, etc.) cannot be meaningfully eq'd so measuring them and trying to correct them is not frutiful.  

Additionally, correcting for your listening position will not necessarily produce good results away from your listening position (even as close as a foot or two).  Have a look at my graphs above for a demonstration of that.  My advice is to follow the guide above, and then try to selectively improve things at your listening position from there (checking to make sure it's working as intended and not creating unintended consequences elsewhere).  

Quote
Is it ok to average the left and right measurements in REW and eq it (the average measurement)?

I wouldn't ordinarily recommend it.  Even very well-matched speakers won't be identical, and some kinds of room effects that can be meaningfully eq'ed will be different for each (unless your room is perfectly and totally symmetrical).  A good example of this is corner loading.  If one speaker is in a corner and the other is not, you'll get very, very different bass measurements from the baffle step down to DC.  If you were dealing with a DSP box that had a limited number of filters, I'd say "sure" average the left and right, but when you have essentially infinite EQ, there's really no need to compromise.

Quote
I plan to type in the eq filters for my center and main (38 total filters) using jriver parametric eq and type in filters for my side and rear surrounds using parametric eq2 (10 total filters). Is that ok? Is there a max number of filters one can enter in jriver DSP? Can I enter all 48 filters in one parametric eq? Also, will the change take effect immediately by ticking and unticking the parametric eq?  Thanks for all the help as I am new to jriver and REW eq.

Yes, yes, and yes.  
1) There is no limit to the number of filters, and you can put as many as you want in one parametric EQ.  
2) JRiver just offers two PEQs so you put another processing step (like convolution) in between various steps in the audio chain.
3) Ticking and unticking the boxes has an immediate effect, no need to start or stop playback.  Depending on your buffer settings it might take a beat or two, but it engages in real time as soon as it can.

Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: harlington on May 13, 2015, 06:10:11 pm
Awesome. Thanks for answering all of my questions. I will eq one channel at a time instead of average two channels. 
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: harlington on May 14, 2015, 12:02:36 am
One more question: if I add a -6db gain in the filter for all 7.1 channels, does that mean my overall system now is -6db less than what Audyssey sets them to? In other word, my reference level is now with +6 master volume as opposed to 0MV before?  Thanks.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on May 14, 2015, 07:45:26 am
One more question: if I add a -6db gain in the filter for all 7.1 channels, does that mean my overall system now is -6db less than what Audyssey sets them to? In other word, my reference level is now with +6 master volume as opposed to 0MV before?  Thanks.

Yes you're reducing your overall gain by 6 dB, although you might want to turn off Audyssey until you're done measuring.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: harlington on May 14, 2015, 08:39:36 am
^^ are you saying I should turn off Audyssey for measuring and applying eq, put filters in jriver DSP and then turn on Audyssey? How does jriver DSP work? Signal goes in--> jriver processes DSP --> send correction signal to AVR via hdmi? Is that about right? Thanks again.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on May 14, 2015, 08:44:19 am
Audyysey is doing additional processing that will color the results.  It's another layer of processing in the signal chain.  If you're just using it for volume calibration, it's probably fine to leave it on, but (depending on the system) it can also do significant EQ processing and that isn't necessarily desirable. 

You don't want to wind up "fighting" with audyysey's EQ.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: harlington on May 14, 2015, 09:10:49 am
^^ make sense. Man, I just entered >100 filters in jriver. I guess I have to start over   :o by measuring/ applying eq with Audyssey turned off, then turn it on after all.  I always play movie with Audyssey on. I like what it does to eq my FR and was thinking if I can fine tune it a bit with jriver DSP.  Thanks.
Wait, I am confused now. If I measure and apply eq in jriver with Audyssey off, what happens when I turn it on?  I assume it will try to correct the correction filters in jriver.  Audyssey calibrates speakers independently with receiver tones so it does not see my jriver filter corrections while calibrating. How does jriver DSP work with Audyssey avr?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on May 14, 2015, 12:20:09 pm
I was suggesting turning off audyssey and leaving it off unless you just use it for volume setting.  You're effectively doing in JRiver what Audyssey is doing, but with the potential for much greater precision.  It's hard enough to eq the complex interaction of a speaker and a room without adding a third leg to the tripod and eqing audyssey's interaction with both of those as well.

If you want to keep using Audyssey, then yes absolutely leave it on while measuring (you want to take your measurements in a way that replicates your listening as closely as you can).  I just can't vouch for the results; my advice is to only eq in one place if possible.


Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: jdubs on July 12, 2015, 01:09:12 pm
Pretty cool developments with REW to make it more of an all-in-one solution:

http://www.hometheatershack.com/forums/rew-forum/99673-feature-request-frequency-dependent-windowing-8.html

-Jim
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on July 12, 2015, 01:17:07 pm
Oh that's pretty neat!  Once it's out of beta, I'll try and update the guide.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: MaximalC on July 31, 2015, 05:30:09 pm
Thanks, mwillems, for this fantastic tutorial. Separating speaker correction, phase correction, and room correction is a great idea. I do have a question regarding properly aligning impulse responses, though. You've indicated that a measurement's greatest peak should have a positive polarity, however I have a situation where the tweeter and woofer do not agree in this regard. That is to say, the tweeter's greatest peak is on the latter half of the first cycle, while the woofer's greatest peak is on the initial half of the first cycle. I inverted the woofer's impulse response to rectify the upside down peak, however this resulted in only the tweeter having a negative polarity peak preceding the main peak. This also made the phase response of the woofer measurement look like zebra stripes compared to how it did initially.

In such a situation, would it not be preferable to allow the tallest peak of the woofer's impulse response to remain in the negative direction? The peak immediately following the woofer's tallest peak is only slightly shorter, and they're both part of the same wave cycle. I would intuit, based on the improved phase response, that it would be desirable not to invert the woofer's impulse response in this situation, however that would be in violation of your guide, which places some emphasis on ensuring the tallest peak always has a positive polarity.

Another issue I came across with regard to impulse response alignment has to do with the stitching of measurements. The stitching dialogue box includes a checkbox that attempts to automatically align the impulses for maximum accuracy, however using this box results in my woofer impulse being shoved several cycles forward, such that neither of its peaks are anywhere close to aligning with the tweeter peak. The phase response in the transition band of the resulting measurement is also far broader and more irregular than if I had just left the woofer's impulse where it was (with none of the automatic stitching compensation). I only mention this because I think some users may end up with suboptimal results if attempting to always follow your directions inerrantly if they don't fully understanding why they are doing what they're doing.

Then again, perhaps I'm misunderstanding something myself, in which case I gladly welcome your feedback. Regardless, I'd appreciate your confirmation that positive peak polarity is not mandatory and that phase consideration may be best left disabled when stitching if proper impulse alignment has already been established.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on July 31, 2015, 06:04:34 pm
Thanks, mwillems, for this fantastic tutorial. Separating speaker correction, phase correction, and room correction is a great idea. I do have a question regarding properly aligning impulse responses, though. You've indicated that a measurement's greatest peak should have a positive polarity, however I have a situation where the tweeter and woofer do not agree in this regard. That is to say, the tweeter's greatest peak is on the latter half of the first cycle, while the woofer's greatest peak is on the initial half of the first cycle. I inverted the woofer's impulse response to rectify the upside down peak, however this resulted in only the tweeter having a negative polarity peak preceding the main peak. This also made the phase response of the woofer measurement look like zebra stripes compared to how it did initially.

In such a situation, would it not be preferable to allow the tallest peak of the woofer's impulse response to remain in the negative direction? The peak immediately following the woofer's tallest peak is only slightly shorter, and they're both part of the same wave cycle. I would intuit, based on the improved phase response, that it would be desirable not to invert the woofer's impulse response in this situation, however that would be in violation of your guide, which places some emphasis on ensuring the tallest peak always has a positive polarity.

I only suggested ensuring that the peak be positive because some microphones invert, and if all of your impulse measurements wind up upside down it's better for your phase correction to correct the microphone's inversion.  If one of your elements is measuring inverted and the other right-side up and the microphone is facing them from the same angle, your speakers are wired out of phase, and you should not invert the impulse.

Some speakers are deliberately wired out of phase because of the crossover topography used.  For example, a symmetrical Butterworth 2nd order will cause the two elements to be 180 degrees out of phase which would cause terrible cancellation.  The conventional wisdom in that circumstance is to invert one or the other speaker so that they're approximately "in phase."  

Bottom line, if the mic is facing the same direction and one element measures positive and the other negative, correct them as is without inversion, it's probably a design feature of your speaker and you need to take it into account when doing correction.  

I added some clarifying text above.

Quote

Another issue I came across with regard to impulse response alignment has to do with the stitching of measurements. The stitching dialogue box includes a checkbox that attempts to automatically align the impulses for maximum accuracy, however using this box results in my woofer impulse being shoved several cycles forward, such that neither of its peaks are anywhere close to aligning with the tweeter peak. The phase response in the transition band of the resulting measurement is also far broader and more irregular than if I had just left the woofer's impulse where it was (with none of the automatic stitching compensation). I only mention this because I think some users may end up with suboptimal results if attempting to always follow your directions inerrantly if they don't fully understanding why they are doing what they're doing.

Then again, perhaps I'm misunderstanding something myself, in which case I gladly welcome your feedback. Regardless, I'd appreciate your confirmation that positive peak polarity is not mandatory and that phase consideration may be best left disabled when stitching if proper impulse alignment has already been established.

I do not recommend using the automatic phase alignment in the stitch dialog, and looking back at the tutorial I don't think I mention it?  I only provided instructions for the other two entries, which is an oversight.  In any event it's not mandatory, and I don't recommend using it.

I do recommend using the separate "match" tool in Holm, but that only level matches, it's doesn't affect phase.  Maybe that's the source of confusion?  I added some clarifying text above.

All that said, if your 1 meter measurement has a drastically different phase picture than your two stitched measurements that may suggest that something is out of whack in the manual alignment.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: MaximalC on July 31, 2015, 07:50:07 pm
I only suggested ensuring that the peak be positive because some microphones invert, and if all of your impulse measurements wind up upside down it's better for your phase correction to correct the microphone's inversion.  If one of your elements is measuring inverted and the other right-side up and the microphone is facing them from the same angle, your speakers are wired out of phase, and you should not invert the impulse.

Some speakers are deliberately wired out of phase because of the crossover topography used.  For example, a symmetrical Butterworth 2nd order will cause the two elements to be 180 degrees out of phase which would cause terrible cancellation.  The conventional wisdom in that circumstance is to invert one or the other speaker so that they're approximately "in phase."  

Bottom line, if the mic is facing the same direction and one element measures positive and the other negative, correct them as is without inversion, it's probably a design feature of your speaker and you need to take it into account when doing correction.
Wow, thanks for the rapid and thorough response. This is good to know. I need to go back and double-check that I measured and processed properly, because only one of my two speakers had this discrepancy.


Quote
I do not recommend using the automatic phase alignment in the stitch dialog, and looking back at the tutorial I don't think I mention it?  I only provided instructions for the other two entries, which is an oversight.  In any event it's not mandatory, and I don't recommend using it.
Ahhh, ok. Not using it concurs with my personal experience as well  :).

Quote
I do recommend using the separate "match" tool in Holm, but that only level matches, it's doesn't affect phase.  Maybe that's the source of confusion?  I added some clarifying text above.
I'm glad you mentioned the "match" tool, as that has been my second source of confusion today. I understand that the match tool is intended to compensate for level discrepancies between measurements, and that by compensating the gain of one measurement, it should transition more seamlessly with the other. This worked fine and dandy for my 1 ft measurements, which required very meager adjustments and produced a fairly flat stitched response.

However, with the 3 inch measurements, the match tool suggested a 2.5 dB boost of the woofer response (when attempting to match at the crossover region as suggested). This resulted in a substantial bass boost in the stitched response, and I'm skeptical that it is an accurate representation of the holistic speaker response at 3 inches. I have a screenshot below so you can see what I mean.
(http://s13.postimg.org/lfd8b0zxj/Left_Speaker_Frequency_Responses.png) (http://postimg.org/image/nwoziajtv/full/)

The blue trace is the stitched response at 1 foot and the green line is the stitched response at 3 inches (the red trace is a measurement at tweeter height 2 ft away and can be ignored for the purpose of this discussion). I think the problem may be that the directional higher frequencies from the tweeter are not diffracting to the woofer measurement as well as the lower frequencies are dispersing into the tweeter measurement. When Holm attempts to match level around my speakers' 1725 Hz crossover frequency, it interprets the woofer measurement to be underpowered (due to the lower measured volume above the crossover) and overcompensates to solve a problem that may not exist. The stitched response would be much more flat if I didn't match levels before stitching.

Unfortunately, Holm is automatically matching level whenever I use the stitch command; I don't even have to match level manually prior. Seeing as how there is no way to disengage level matching during stitching, I tried a wonky workaround by transitioning at an alternative frequency band, but I don't know if that's really proper considering it's not the true crossover frequency.

My worry is that if I average the responses as they are and attempt to EQ my speaker, everything below 1 kHz is going to be scooped out unnecessarily. I'm almost tempted to go exclusively based on the 1 foot response, but there are already some room effects creeping into the low end at that spot, so that's not an ideal solution either. I'm wondering if backing out to 4 or 5 inches instead of 3 will provide a more even response for the woofer measurement and negate the exaggerated level matching. Am I even correct in thinking the 3 inch response (green trace) is objectionable in the first place?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on July 31, 2015, 08:48:29 pm
What settings did you use for the "match" tool to generate your green line (frequency and width)? If I had to guess, I would say that you used too narrow of a width and you'd get a more even match if you broadened it.  But let me know what parameters you used.

Your three inch measurements should not be that different from your 12 inch; a slight rise in the midbass region is expected because a variety of room cancellations will be missing, but it shouldn't be that much and that that flat.  You can try measuring farther out, but you can probably just tweak the level matching width to get the two more closely matched.  That goes for the stitch as well; you can manipulate how it behaves by adjusting the width up or down.

I've only ever seen the kind of thing you're seeing when the width was narrow and the specified region had a trend in it that was not continued outside of the affected region (effectively fooling the algorithm).
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: MaximalC on August 01, 2015, 05:18:14 pm
What settings did you use for the "match" tool to generate your green line (frequency and width)? If I had to guess, I would say that you used too narrow of a width and you'd get a more even match if you broadened it.  But let me know what parameters you used.

Your three inch measurements should not be that different from your 12 inch; a slight rise in the midbass region is expected because a variety of room cancellations will be missing, but it shouldn't be that much and that that flat.  You can try measuring farther out, but you can probably just tweak the level matching width to get the two more closely matched.  That goes for the stitch as well; you can manipulate how it behaves by adjusting the width up or down.

I've only ever seen the kind of thing you're seeing when the width was narrow and the specified region had a trend in it that was not continued outside of the affected region (effectively fooling the algorithm).

I used a 1380 Hz width for my speakers' 1725 Hz crossover frequency (was aiming for 75-80% of the crossover frequency as alluded to in your tutorial). I have since tried using a broader width (equal to the crossover frequency), and while this did reduce the boost a little bit, it also resulted in a broader scoop in the transition band. I still felt that the woofer boost was exaggerated quite a bit, so I have since abandoned attempting to use the 3 inch measurements.

Instead, I painstakingly measured every 1-inch increment between 3 and 12 inches, imported them into REW and matched their overall levels manually to more closely compare the tradeoffs between broadband response and room effects. Ultimately, I found that measurements between 8 and 10 inches yielded the best compromise between balanced bass/treble and minimal room effects. My plan now is to average those three measurements and use that for my speaker EQ baseline.

Speaking of EQ, would it not be preferable to use REW's "variable" smoothing algorithm as opposed to a strict 1/12 octave resolution? I think I read a post from John Mulcahy a while back saying that it would even be justified to disable smoothing for the purpose of bass correction, whereas the uppermost frequencies could do fine with only 1/3 octave resolution. Is there any advantage to using a consistent smoothing resolution such as 1/12 octave?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on August 01, 2015, 06:04:35 pm
Speaking of EQ, would it not be preferable to use REW's "variable" smoothing algorithm as opposed to a strict 1/12 octave resolution? I think I read a post from John Mulcahy a while back saying that it would even be justified to disable smoothing for the purpose of bass correction, whereas the uppermost frequencies could do fine with only 1/3 octave resolution. Is there any advantage to using a consistent smoothing resolution such as 1/12 octave?

I think you might be misunderstanding how frequency dependent windowing (FDW) works.  It's not the same as conventional 1/12 octave smoothing, which you can see if you switch the smoothing algorithm in Holm to use the regular smoothing instead.  The point of FDW is to have a variable gate that changes with frequency to gate out late reflections without rendering any part of the graph unreliable (which is what happens with a fixed gate).  The effect of FDW (depending on the width of the gate) looks like smoothing, but the smoothing is caused by gating out late reflections not by mathematical averaging.  So the effects of FDW are in most cases a "truer" reflection of the signal than smoothing would be.  It's not comparable in function to conventionall 1/12 octave smoothing.

REW's variable smoothing is an imperfect attempt to solve the same problem that FDW solves (i.e. scaled variable smoothing), so in my view it's not preferable. REW just recently implemented FDW, so I suspect there was a felt need for it over there too.

Reasonable minds can differ about how wide the FDW "floating gate" should be (12, or 6, or 9, or 15). You can see for yourself where the "gate" is for a few sample frequencies on the impulse response graph if you want to get a sense for what effect the parameter has.  But the whole point of FDW is that you don't have to use a different approach for different frequencies because it scales with frequency. The latest betas of REW now support FDW, but it was not supported when this guide was written and I haven't tested the functionality in REW.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: MaximalC on August 01, 2015, 07:22:42 pm
I think you might be misunderstanding how frequency dependent windowing (FDW) works.  It's not the same as conventional 1/12 octave smoothing, which you can see if you switch the smoothing algorithm in Holm to use the regular smoothing instead.  The point of FDW is to have a variable gate that changes with frequency to gate out late reflections without rendering any part of the graph unreliable (which is what happens with a fixed gate).  The effect of FDW (depending on the width of the gate) looks like smoothing, but the smoothing is caused by gating out late reflections not by mathematical averaging.  So the effects of FDW are in most cases a "truer" reflection of the signal than smoothing would be.  It's not comparable in function to conventionall 1/12 octave smoothing.

REW's variable smoothing is an imperfect attempt to solve the same problem that FDW solves (i.e. scaled variable smoothing), so in my view it's not preferable. REW just recently implemented FDW, so I suspect there was a felt need for it over there too.

I apologize for conflating FDW and traditional smoothing above. I was fixated on octave resolution without discriminating the methodology, even though I understand and agree that FDW is preferable. I suppose a better question would be, are there any advantages to using both methods in tandem? For example, if I used 1/48 octave FDW and then variable smoothing in REW, would that not offer the best of both worlds? My understanding is that the advantage of variable smoothing is not simply to gloss over comb filtering, but to portray the frequency response in a way that more closely approximates our ability to discriminate tones in a given frequency range. If our ears can't discriminate beyond 1/3 octave resolution above 10 kHz, why preserve a higher resolution trace of those frequencies for the purposes of EQ? I guess I'm trying to err on the side of caution by not invoking filters to solve problems that we can't hear, even though it's true that they exist.

It would be nifty if we could enjoy high resolution low frequencies with minimal room effects (courtesy of FDW) without over-correcting for high frequency variations that we can't hear (courtesy of variable smoothing). I hadn't been regarding the two processes as mutually exclusive because their purposes, while related, aren't quite the same. I guess the ultimate arbiter would be to try it and see how it sounds, but I always prefer to have a sound theoretical basis before deferring to my own subjective impression.

Thanks again for your rapid feedback. If only professional tech support were as timely!  :)
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on August 01, 2015, 09:53:43 pm
I've heard the view expressed that we can't hear variations finer than 1/3 octave at high frequencies, but my experience has been that it's a matter of degree.  High Q, high intensity peaks or dips can be quite audible even when very narrow in my experience.  

For example, I happen to have a driver with an 8dB resonant peak at 17.5KHz that's only about 1/6 octave wide.  If I don't correct that peak, I can hear it even though my hearing is very poor that high up.  In part I notice because it's resonant and distorts like nobody's business when uncorrected, but I also notice it because it causes lots of intermod farther down the frequency spectrum.  It's clearly audible when uncorrected, not at all subtle.

So I'm of the view that there are potential advantages in fixing narrow band high frequency peaks and dips, especially of the high Q, high intensity variety.  I think there's an argument for skipping high frequency correction with conventional DSP systems (like a DCX2496 or a miniDSP) that have limited processing power, because you need to prioritize bang for the buck.  But given that JRiver's PEQ bank is effectively infinite and not particularly CPU intensive, there's certainly no harm in correcting all peaks and dips provided they're really a feature of your driver's response and not of the room.  

I think an empirical approach is the answer; with JRiver's DSP you can flick filters on and off at will and see if you can hear it.  If you want a scientific approach, have a third party toggle it out of sight, DSP changes take effect seamlessly in real time during playback, so it's not hard to do a single-blind A/B test.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on August 02, 2015, 03:00:19 am
It would be nifty if we could enjoy high resolution low frequencies with minimal room effects (courtesy of FDW) without over-correcting for high frequency variations that we can't hear (courtesy of variable smoothing).
You can. Nothing says the no of cycles to use for the fdw size has to stay constant across the pass band.

I am not aware of any freeware that implements this though, it is a feature found in acourate which does actually combine fdw with a proprietary smoothing algorithm when preparing a response for correction. Ultimately you will just need to try some variations out and see what you prefer.

What is the design of your speakers BTW? You may find that the nature of the speaker influences the optimal correction. In particular I am thinking of the nature of off axis performance and whether you have multiple driver arrays.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: MaximalC on August 02, 2015, 08:55:19 am
You can. Nothing says the no of cycles to use for the fdw size has to stay constant across the pass band.

I am not aware of any freeware that implements this though, it is a feature found in acourate which does actually combine fdw with a proprietary smoothing algorithm when preparing a response for correction. Ultimately you will just need to try some variations out and see what you prefer.

What is the design of your speakers BTW? You may find that the nature of the speaker influences the optimal correction. In particular I am thinking of the nature of off axis performance and whether you have multiple driver arrays.

That's interesting, I'll have to look into Accourate. My speakers are the JBL LSR305, which have a 5 inch woofer mounted below a 1 inch tweeter. The tweeter's waveguide is supposed to offer exceptional off-axis response.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: MaximalC on August 04, 2015, 11:41:24 pm
Alright, I've completed the direct sound EQ portion of my speaker correction journey and have moved on to rePhase. Because nothing is ever as straightforward as it seems on paper, I've encountered another bugaboo. My stitched speaker's phase response wraps twice, once in the low end, and once in the midrange. The low end wrap was resolved by inserting the proper port frequency and type into rePhase; great! Since I know my speaker uses a 1725 Hz 4th order Linkwitz-Riley crossover filter, I figured I'd remedy the remaining phase wrap by picking the 48 dB/octave L-R linearization filter. Contrary to expectation, this merely flipped the phase wrap (so that the slope of the phase was now leaning to the right instead of the left). Also contrary to expectation, replacing the 4th order LR filter with a 1st order LR filter completely eliminated the remaining phase wrap... How is this possible considering I know this speaker employs a 4th order LR filter (I even double-checked the manual to make sure I wasn't mistaken)?

Is the stitching bandwidth relevant to what I'm observing here? Should I be calculating the stitching window based on my speaker's crossover slope instead of approximating one octave? Or is that completely irrelevant?

Should I just be content that my phase has flattened and move on, or should I not trust what I'm seeing in rePhase considering I know the chosen filter does not correspond to my speaker? Also, does it matter whether I do phase correction before EQing instead of after? I assumed the difference would be negligible considering I used very minor EQ adjustments, but perhaps I assumed wrong...

Sorry for so many questions, I'm a total phase n00b  :-[ .
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on August 05, 2015, 08:13:44 am
Alright, I've completed the direct sound EQ portion of my speaker correction journey and have moved on to rePhase. Because nothing is ever as straightforward as it seems on paper, I've encountered another bugaboo. My stitched speaker's phase response wraps twice, once in the low end, and once in the midrange. The low end wrap was resolved by inserting the proper port frequency and type into rePhase; great! Since I know my speaker uses a 1725 Hz 4th order Linkwitz-Riley crossover filter, I figured I'd remedy the remaining phase wrap by picking the 48 dB/octave L-R linearization filter. Contrary to expectation, this merely flipped the phase wrap (so that the slope of the phase was now leaning to the right instead of the left). Also contrary to expectation, replacing the 4th order LR filter with a 1st order LR filter completely eliminated the remaining phase wrap... How is this possible considering I know this speaker employs a 4th order LR filter (I even double-checked the manual to make sure I wasn't mistaken)?

Is the stitching bandwidth relevant to what I'm observing here? Should I be calculating the stitching window based on my speaker's crossover slope instead of approximating one octave? Or is that completely irrelevant?

Three points:

1) A fourth order Linkwitz-Riley is a 24dB filter, not a 48dB filter (which is eighth order), so that's a significant portion of your issue.  Using 48 instead of 24 will introduce 360 degrees of unnecessary phase rotation.  What you describe (the wrap just changing directions) sounds exactly like what I would expect from that.  A 4th order LR introduces 360 degrees of rotation, and eight order introduces 720 degrees.  So by correcting for an 8th order, you're correcting the 360 from the 4th order, and then rotating another bonus 360 degrees.  In essence you're going from -360 out of phase to +360 out of phase (putting you back where you started but in the opposite direction).
2) There normally isn't such a thing as a "first order" Linkwitz-Riley, so I'm not sure how to advise you about that piece. Can you describe that filter a bit more?  What's the filter slope?
3) Unless the crossover is applied to speaker elements that are perfectly flat in terms of frequency and phase throughout the crossover transition band, just undoing the phase wrap from the crossover won't solve 100% of the phase wrap, because the elements themselves will introduce some phase wrap from their own roll off.  So you may need to do some additional tweaking even after you dial in the correct crossover, or you may need less correction depending on the elements.  It may be that the designer already factored that in and just created an effective 4th order LR slope taking the drivers' roll-off into account. The spec sheet for your speakers refers to the crossover as a 4th order acoustic crossover, which may mean that there's an effective 4th order LR slope taking the drivers into account, which would make your life easier if that's what that means.

Quote
Should I just be content that my phase has flattened and move on, or should I not trust what I'm seeing in rePhase considering I know the chosen filter does not correspond to my speaker?

Try my advice above and see what happens.  Ultimately, if the filter is flat, and the speaker is flat when you measure it after applying the filter, then mission accomplished. Declare victory and move on  ;D

Quote
Also, does it matter whether I do phase correction before EQing instead of after? I assumed the difference would be negligible considering I used very minor EQ adjustments, but perhaps I assumed wrong...

If you used the raw measurements as the basis for your phase correction, I would advise putting the convolution module first (before EQ).  If you used your corrected measurements for your phase correction I would advise placing the convolution module after the EQ. Convolution is one of the only modules where the order can actually matter.  I'm not sure that it will make a huge difference, but I would advise putting the filter in the same place in the "chain" that you developed it if that makes sense.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: MaximalC on August 05, 2015, 06:34:00 pm
1) A fourth order Linkwitz-Riley is a 24dB filter, not a 48dB filter (which is eighth order), so that's a significant portion of your issue.  Using 48 instead of 24 will introduce 360 degrees of unnecessary phase rotation.  What you describe (the wrap just changing directions) sounds exactly like what I would expect from that.  A 4th order LR introduces 360 degrees of rotation, and eight order introduces 720 degrees.  So by correcting for an 8th order, you're correcting the 360 from the 4th order, and then rotating another bonus 360 degrees.  In essence you're going from -360 out of phase to +360 out of phase (putting you back where you started but in the opposite direction).

Well don't I feel silly...  I had been thinking that 1st order was 12 dB/octave.  That certainly does explain a good deal of my confusion!

Quote
2) There normally isn't such a thing as a "first order" Linkwitz-Riley, so I'm not sure how to advise you about that piece. Can you describe that filter a bit more?  What's the filter slope?

It was 12 dB/octave (2nd order). My bad!

Quote
3) Unless the crossover is applied to speaker elements that are perfectly flat in terms of frequency and phase throughout the crossover transition band, just undoing the phase wrap from the crossover won't solve 100% of the phase wrap, because the elements themselves will introduce some phase wrap from their own roll off.  So you may need to do some additional tweaking even after you dial in the correct crossover, or you may need less correction depending on the elements.  It may be that the designer already factored that in and just created an effective 4th order LR slope taking the drivers' roll-off into account. The spec sheet for your speakers refers to the crossover as a 4th order acoustic crossover, which may mean that there's an effective 4th order LR slope taking the drivers into account, which would make your life easier if that's what that means.

Well I'll be... The "acoustic crossover" distinction appears to be an important one. Per Wikipedia: "A third- or fourth-order acoustic crossover often has just a second order electrical filter. This requires that speaker drivers be well behaved a considerable way from the nominal crossover frequency, and further that the high frequency driver be able to survive a considerable input in a frequency range below its crossover point." This would appear to be precisely my situation. Since the speaker drivers are already contributing to the stated 4th order crossover slope acoustically, that would explain why I only needed a 12 dB/octave phase correction in rePhase to account for the 2nd order electrical filter.

Thank you!
Title: Re: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on August 16, 2015, 11:14:01 am
Oh that's pretty neat!  Once it's out of beta, I'll try and update the guide.
REW 5.13 is hot off the press and has an FDW option as well as an equivalent rectangular bandwidth smoothing option (download from http://www.hometheatershack.com/forums/downloads-area/19-downloads-page.html)
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on August 16, 2015, 12:12:41 pm
REW 5.13 is hot off the press and has an FDW option as well as an equivalent rectangular bandwidth smoothing option (download from http://www.hometheatershack.com/forums/downloads-area/19-downloads-page.html)

Aces.  It'll probably take me a bit to integrate it (I'll probably just note it as an alternative rather than doing a wholesale revision, but I'd like to fiddle with it and see how it does).
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: PrinterPrinter on August 20, 2015, 06:14:47 am
Hello,
Thanks for the guide!

I'm about to start with his - trying to add room correction to a 2.1 system without dedicated sub channel - so I'm EQing the whole system together.
I wonder if the UMIK is still the recommended Calibrated Mic for this kind of thing? Any other suggestions are welcome, thanks!
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on August 20, 2015, 06:41:49 am
I wonder if the UMIK is still the recommended Calibrated Mic for this kind of thing? Any other suggestions are welcome, thanks!

Any properly calibrated mic should work fine for basic correction of the type outlined in this guide.  EQing a sub as part of the whole system will be a little tricky as the biggest problems are often delay related and you won'be able to correct that withot a dedicated channel.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: 5150 on September 27, 2015, 06:39:46 pm
I've been working on a guide to active speakers/crossover design in JRiver, but I have an infant daughter so the guide has languished unfinished on my "to do" pile. 

I'm a little late to the part, but I'm really interested in the topic and anxiously await your active guide!  Thanks for the great contributions you've already made!
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: jomal on January 17, 2016, 09:47:14 am
Hello everybody.

Is there a freeware frequency- and impulse-response measurement tool like HOLMImpulse for Mac / OS X?

Thanks in advance.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on January 17, 2016, 10:13:19 am
Hello everybody.

Is there a freeware frequency- and impulse-response measurement tool like HOLMImpulse for Mac / OS X?

Thanks in advance.
http://www.roomeqwizard.com
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: jomal on January 17, 2016, 10:42:47 am
http://www.roomeqwizard.com
Hi mattkhan.

Thank you. I knew it since the very first moment. But since the REQ was already used for other purposes, why HolmImpulse was chose to generate the impulse curve?  ?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on January 17, 2016, 11:40:33 am
At the time this guide was written, REW did not support Frequency Dependent Windowing and had some irregularities with certain low frequency measurements, so I used Holm instead.  REW now supports Frequency Dependent Windowing, and to my knowledge the irregular bass measurement issue has been resolved.  So there's no technical reason not to use REW for the whole process at this point. 

Because of the number of screenshots and text, switching over the guide would involve a major rewrite of the guide and Ive got a one year-old child these days which limits the time I can spend on A/V forums  ;)
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: jomal on January 17, 2016, 03:20:24 pm
[...]Ive got a one year-old child these days which limits the time I can spend on A/V forums  ;)
Oh, yeah! I've been there.   ;)
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: st1 on February 22, 2016, 06:45:40 am
What you'll need:

3) Holm Impulse (free measurement software): http://www.holmacoustics.com/holmimpulse.php
4) Room EQ Wizard (free measurement and automated room correction software): http://www.hometheatershack.com/roomeq/
  

REW linux version installed like expected.

for Holm impulse, I installed WINE with these instructions:
http://www.tecmint.com/install-wine-on-ubuntu-and-linux-mint/

holm installation msi file requires in wine  installation for msi files:

https://wiki.winehq.org/FAQ#How_do_I_install.2Frun_a_MSI_file.3F

I run the " wine start whatever.msi "    where  whatever is   HOLMImpulse-1.4.2.0

It installs fine and program is to be found in ubuntu 14.04 menu,  but no holm impuse start and no error message.
Then in ubuntu 15.10 comes following error message after start of holm msi file installation.

..... wine start HOLMImpulse-1.4.2.0.msi
bring following

fixme:exec:SHELL_execute flags ignored: 0x00000100
"user-at@"machine-nuc":~/Documents/Holm$ fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
fixme:mscoree:get_runtime_info unsupported startup flags 6
err:mscoree:CLRRuntimeInfo_GetRuntimeDirectory error reading registry key for installroot
err:msi:ITERATE_Actions Execution halted, action L"VSDCA_VsdLaunchConditions" returned 1603

any idea how to fix it or can it be fixed at all ?  

[ my plan is to use following:
Intel NUC with linux 15.10
jriver 21 linux as music source
REW linux for speaker & element measurements
HOLM impulse as more accurate measurement sw  (like guided earlier) but in linux wine mode
 umik-1 usb mic

... kind of simplified way of having linux os and being all the time in digital domain @96Khz
there might be better or more simple ways, but I prefer the cheap dcx2496 in use]

And big thanks for the guidance article and ideas !

edit:   ARTA for wine installation went ok
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on February 22, 2016, 07:02:46 am
REW can do basically everything Holm can these days, is actively developed and works on Linux. I would just use REW if I were you.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: st1 on February 22, 2016, 07:05:33 am
ok then trialling will continue with linux rew measurements and hopefully accurate enough for speaker element modeling with  gated FRD file measurements.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 22, 2016, 07:19:27 am
ok then trialling will continue with linux rew measurements and hopefully accurate enough for speaker element modeling with  gated FRD file measurements.

REW should be just fine, and in a linux environment is preferable (as mattkhan noted). 
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on March 07, 2016, 05:01:57 am
the latest REW beta now has a built in option to provide accurate relative phase data when using a USB mic, details in http://www.hometheatershack.com/forums/rew-forum/76226-umik-1-timing-reference-phase-4.html#post1405506 but basically it lets you use another tweeter as a fixed reference point to measure against.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on March 07, 2016, 07:36:52 am
the latest REW beta now has a built in option to provide accurate relative phase data when using a USB mic, details in http://www.hometheatershack.com/forums/rew-forum/76226-umik-1-timing-reference-phase-4.html#post1405506 but basically it lets you use another tweeter as a fixed reference point to measure against.

That's fantastic!
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: iScream on April 07, 2016, 12:42:45 pm
Thank you so much for this guide.  Exactly what I needed for the 3-way active plus sub(s) setup I'm trying to build with MC 21 at the heart.

Right now I have a couple new subwoofers I built crossed over at 90Hz to set of tower speakers.  This weekend I'll be inserting a pair of mid bass modules I just built and adjusting/creating crossovers to run them from ~70Hz to ~400Hz.

I know how to do that with the PEQ and I have REW up and running through JRiver with my Dayton USB microphone.

I would like to create FIR filters with rePhase for my crossovers.  But I'm a little confused as to whether or not I will still be able to stream something like Spotify through Media Center if I'm using convolution for my crossovers, rather than PEQ. 

Have I misunderstood something I've read or is there a limitation with that?

Thanks,
Chris

Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on April 07, 2016, 05:18:48 pm
Thank you so much for this guide.  Exactly what I needed for the 3-way active plus sub(s) setup I'm trying to build with MC 21 at the heart.

Right now I have a couple new subwoofers I built crossed over at 90Hz to set of tower speakers.  This weekend I'll be inserting a pair of mid bass modules I just built and adjusting/creating crossovers to run them from ~70Hz to ~400Hz.

I know how to do that with the PEQ and I have REW up and running through JRiver with my Dayton USB microphone.

I would like to create FIR filters with rePhase for my crossovers.  But I'm a little confused as to whether or not I will still be able to stream something like Spotify through Media Center if I'm using convolution for my crossovers, rather than PEQ. 

Have I misunderstood something I've read or is there a limitation with that?

Thanks,
Chris

Convolution should work fine for spotify and other streaming audio; where it can fall down is with streaming video or video games.  Specifically, any application where the sound needs to be synced to a visual requires a relatively low latency audio chain.  Convolution can add quite significant latency, but you can control the amount of latency by limiting the number of taps used to make the filter (which in turn limits the utility of the filter, but that's the tradeoff).  It's really a "test and see" kind of thing as some audio hardware is natively lower latency than others, and some displays have video latency of their own, etc.    If you're just using the machine for audio reproduction (As opposed to video playback, gaming, or live audio) the latency of the output chain is irrelevant and feel free to convolve til the cows come home  ;D
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: iScream on April 08, 2016, 08:49:01 am
Convolution should work fine for spotify and other streaming audio; where it can fall down is with streaming video or video games.  Specifically, any application where the sound needs to be synced to a visual requires a relatively low latency audio chain.  Convolution can add quite significant latency, but you can control the amount of latency by limiting the number of taps used to make the filter (which in turn limits the utility of the filter, but that's the tradeoff).  It's really a "test and see" kind of thing as some audio hardware is natively lower latency than others, and some displays have video latency of their own, etc.    If you're just using the machine for audio reproduction (As opposed to video playback, gaming, or live audio) the latency of the output chain is irrelevant and feel free to convolve til the cows come home  ;D

Thank you.  My current project is stereo music only.  I'm really interested in hearing how it sounds with crossovers that don't shift phase and some phase correction.

-Chris
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on April 08, 2016, 08:59:13 pm
Thank you.  My current project is stereo music only.  I'm really interested in hearing how it sounds with crossovers that don't shift phase and some phase correction.

-Chris

Sometimes correcting the phase resolves frequency ripples and that can make a big difference, but if you already have a crossover that sums perfectly flat in the frequency domain you may not be too impressed with the result.  My active speakers crossover at 860Hz with an LR4, and they sum flat in the crossover region.  A friend and I did an ABX of the speakers with and without phase linearization on the crossover (no change in frequency response, just phase correction) and we couldn't hear the difference reliably on axis.  It can help with dispersion/lobing off axis in some setups, though, which would be audible, and it's a "motherhood and apple pie" type change (it may not be clearly audibly better, but it is definitely measurably better and free to do).  I still leave the linearization on with my system even if I can't reliably hear it  ;D

FWIW The only "pure" phase correction that I can reliably hear is unwrapping some of the phase shift introduced by the bass reflex in my speakers.  It's a very low port tuning (27Hz), and unwrapping some of the phase shift resulted in noticeably tighter, cleaner sounding bass.  That one I can ID with certain sample tracks 100% of the time.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: Guybrush on May 18, 2016, 04:16:45 pm
I'd really like to follow this tutorial and do speaker correction for my system. With three young'uns running around the house, it will be difficult to find a good block of time without significant background noise in which to do it. So, since I'm new to this, my question is how much of a sound experience difference is it before and after speaker correction? I'm sure I'll hear the difference, but will my wife (relatively non-discerning ears)? Basically, is it night and day, or a fine tuning that only an audiophile will pick up on? I know that's highly subjective and dependent on speakers and room correction needed, etc., but I'm interested in opinions.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on May 18, 2016, 07:56:32 pm
I'd really like to follow this tutorial and do speaker correction for my system. With three young'uns running around the house, it will be difficult to find a good block of time without significant background noise in which to do it. So, since I'm new to this, my question is how much of a sound experience difference is it before and after speaker correction? I'm sure I'll hear the difference, but will my wife (relatively non-discerning ears)? Basically, is it night and day, or a fine tuning that only an audiophile will pick up on? I know that's highly subjective and dependent on speakers and room correction needed, etc., but I'm interested in opinions.

I'm sorry to give a bad answer but it will really depend on your speakers and your room.  It can be night and day, or it can be more subtle.  If your speaker response isn't particularly flat for example, it can make a really big difference.  If your speakers are a pair of TAD's that are ruler flat from DC to daylight you won't get as much out of the process (if anything).  An example I often trot out is a speaker with an in band resonance.  So I have a "full range" 3 inch driver in some TV speakers I built.  The driver is pretty flat from 150Hz to 10KHz, but the cone is aluminium and has a ridiculous resonance at 15KHz.  That wouldn't normally be a huge issue (I can't hear very well up there) except for the fact that it's a 15dB or so resonance!  So that's loud enough to turn some heads at the fundamental, and loud enough to contribute undertones and resonances down into the rest of the band.  So notching that resonance out dramatically improved the sound of those speakers.  It was obvious to everyone including my wife who, to be fair, has a musical background, but doesn't pay much attention to my speaker tweaking.

So it will depend on how "untamed" your speakers are at the moment.  You can look up (or measure) how flat your speakers are and try to decide if you think it's worth your time to go the rest of the way.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: Guybrush on May 18, 2016, 09:43:52 pm
I'm sorry to give a bad answer but it will really depend on your speakers and your room.  It can be night and day, or it can be more subtle.  If your speaker response isn't particularly flat for example, it can make a really big difference.  If your speakers are a pair of TAD's that are ruler flat from DC to daylight you won't get as much out of the process (if anything).  An example I often trot out is a speaker with an in band resonance.  So I have a "full range" 3 inch driver in some TV speakers I built.  The driver is pretty flat from 150Hz to 10KHz, but the cone is aluminium and has a ridiculous resonance at 15KHz.  That wouldn't normally be a huge issue (I can't hear very well up there) except for the fact that it's a 15dB or so resonance!  So that's loud enough to turn some heads at the fundamental, and loud enough to contribute undertones and resonances down into the rest of the band.  So notching that resonance out dramatically improved the sound of those speakers.  It was obvious to everyone including my wife who, to be fair, has a musical background, but doesn't pay much attention to my speaker tweaking.

So it will depend on how "untamed" your speakers are at the moment.  You can look up (or measure) how flat your speakers are and try to decide if you think it's worth your time to go the rest of the way.

I appreciate your reply. Makes sense. What I have done so far is measure reference level (with my phone) using the volume calibration. However, my rear speakers, although closer to me, are quieter than the fronts no matter how much I increase their gain. I've tried from 5dB to 20dB gain on the rears in room correction and it doesn't change the reading on my phone SPL at a given volume. Any clues why that would be?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on May 18, 2016, 10:49:41 pm
I appreciate your reply. Makes sense. What I have done so far is measure reference level (with my phone) using the volume calibration. However, my rear speakers, although closer to me, are quieter than the fronts no matter how much I increase their gain. I've tried from 5dB to 20dB gain on the rears in room correction and it doesn't change the reading on my phone SPL at a given volume. Any clues why that would be?

Where are you adding the gain?  If you're adding it in JRiver you can't really raise the absolute level of the rears, you can only raise their level relative to the fronts.  Put another way, digital audio is already as loud as it can be so adding gain to one channel digitally can only work by reducing gain to another channel, but will have no effect on the measured volume.  You can attenuate in digital but you can't really boost.  You'll need to turn up the amp feeding them if you want them to be louder in absolute terms. 
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: audyart on September 29, 2016, 08:30:29 am
 
 Hello,

 Thanks for the tutorial in first page.
 One major objection i could have is the fact that a phase linéarisation can't target around a value sutch as 60° unless it means temporal distorsion:
       (http://i.imgur.com/JmVf5Ze.png)

       see what does a constant 40° on the shape of a square signal :

     (http://img4.hostingpics.net/pics/586105phia76840.png)

  so the target must be 0° ( K. 360° for a positive impulse.)

  ( apology for poor english) 

   cdt
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on September 29, 2016, 06:36:32 pm
I'm sorry, but I don't understand what you're trying to communicate.  Where is there a 60 degree target?  And then you mention a 40 degree change?  I don't follow.

The rise in phase in the picture you linked is caused by the sealed box, and lienarizing low end phase rises caused by impedance peaks tends to be fruitless.  Linearizing that particular rise, for example, produced very odd sounding results indeed.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: audyart on September 30, 2016, 01:45:27 am
I'm sorry, but I don't understand what you're trying to communicate.  Where is there a 60 degree target?   

    here:

                      (http://img4.hostingpics.net/pics/611799linearphaseat0.png)

  I showed the effect of a 40° average target on a square wave, a 60° is still worse.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on September 30, 2016, 08:15:08 am
I understand now.  I think we might have to agree to disagree about this point.  I don't think absolute phase discontinuity has been shown to be audible, only relative phase discontinuity.  Put another way, group delay is potentially audible (and has been proven to be audible), plain old delay not so much. 

That's the natural phase response fo the speaker; I've had very poor results attempting to re-center the entire phase curve to a different average.  With RePhase, in any case, a lighter touch with phase manipulation is to be preferred, especially for only potentially audible benefits.

Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: audyart on September 30, 2016, 04:13:45 pm
I understand now.  I think we might have to agree to disagree about this point. 


  I agree about our desgreement.
   Bohdan Raczynski discribes here the objective and subjective attributes of a (true) linear-phase Loudspeaker
   that can be achived using rePhase in JRiver,  the way i do. 

       http://www.linkwitzlab.com/Attributes_Of_Linear_Phase_Loudspeakers.pdf (http://www.linkwitzlab.com/Attributes_Of_Linear_Phase_Loudspeakers.pdf)

 
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on December 03, 2016, 01:23:02 pm
FWIW REW 5.17 beta 12 (http://www.roomeqwizard.com/beta.html) now has the ability to export filters in a format that rephase can import so you can measure in REW, use it to suggest filters for you and then copy that into rephase for further tweaking. You need the latest rephase as well.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: rknox on December 08, 2016, 05:01:16 pm
I have installed the Id software on a NUC and am using this as an inconspicuous renderer for my living room system.   With that now in place, I am interested in mwillems' approach to speaker/room equalization.    However, I don't believe the Id allows one to install additional software.  My initial plan had been to take advantage of the now full functionality of the REW package running on Linux to conduct the room equalizing procedure on my Id/NUC.  Is installing REW into the Id environment at all possible?

Assuming that it is not an option, I was thinking an alternative approach would be to use a Windows based setup to conduct the testing and to create the appropriate parametric filters.   I believe mwillems wrote that that the filter parameters could then be transferred to the mc DSP parametric equalizer.    Presumably this would result in a room corrected version of the id?   I guess it assumes that the audio characteristics of mc in Linux are identical to those under Windows ...   Thoughts on this or other approaches?

Thanks,
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on December 08, 2016, 05:12:54 pm
I have installed the Id software on a NUC and am using this as an inconspicuous renderer for my living room system.   With that now in place, I am interested in mwillems' approach to speaker/room equalization.    However, I don't believe the Id allows one to install additional software.  My initial plan had been to take advantage of the now full functionality of the REW package running on Linux to conduct the room equalizing procedure on my Id/NUC.  Is installing REW into the Id environment at all possible?

I can't comment on how easy or hard it would be to install REW in an Id, environment, but it's easy enough to isntall on a normal Linux environment.

Quote
Assuming that it is not an option, I was thinking an alternative approach would be to use a Windows based setup to conduct the testing and to create the appropriate parametric filters.   I believe mwillems wrote that that the filter parameters could then be transferred to the mc DSP parametric equalizer.    Presumably this would result in a room corrected version of the id?   I guess it assumes that the audio characteristics of mc in Linux are identical to those under Windows ...   Thoughts on this or other approaches?

That's a safe approach.  Barring some unexpected filtering in the Linux audio stack (which shouldn't be an issue with the Id), you can easily measure on Windows and just copy the filters across.  I've done this on several occasions with good success (taken a windows laptop to a friend's house to measure their system and hand copied the filters across to their Linux computer).  In one case I was planning to convert an existing windows HTPC with equalization already dialed-in to Linux, and I just exported the existing library, imported the library on the Linux side, and all my EQ came across intact and the system measured identically afterwards.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: PGibby on January 13, 2017, 11:53:00 am
First off, thank you for this thread. I'm new to DRC, so this has been a huge help.

I first downloaded Dirac and am currently using it during the trial period, and I've got to say, the results are fantastic. Unfortunately, Dirac is expensive, so I want to try to get Dirac-like results, but with freeware (and extra work).

My system consists of:

Speakers: Meadowlark Nighthawks
Sub: DIY Rythmik DS1501
Amp: Audio Research VS-55
Preamp: Audio Research LS2
Dac: Sonic Frontiers SFD-1 Mk2
Source: HTPC running win10
Other: Jriver20, calibrated usb mic, REW

So, if anyone has any advice on my strategy below, please chime in:

1) Measure left and right channels independently in REW. Move mic around to 5 or 6 spots in the general "listening area" like Dirac suggests. Average those results for each channel independently, and have REW suggest EQ. Input that EQ into JRiver's PEQ manually.
2) Loop all audio through JRiver, and run the same 5 or 6 measurements per each channel, and average those per each channel. Export that into rePhase.
3) Play around in rePhase, do some FIR filtering there. Export those results and import them into JRiver's convolution engine.

Does this sound like I'm on the right path?

When I first got the measurement mic, I did 1 sweep with both channels in the listening position, had REW suggest filters, then exported those into the convolution engine in JRiver. The results...where not so good. Really flat, no life. So the method above may produce some better results? What do you all think?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on January 13, 2017, 03:04:22 pm
First off, thank you for this thread. I'm new to DRC, so this has been a huge help.

I first downloaded Dirac and am currently using it during the trial period, and I've got to say, the results are fantastic. Unfortunately, Dirac is expensive, so I want to try to get Dirac-like results, but with freeware (and extra work).

My system consists of:

Speakers: Meadowlark Nighthawks
Sub: DIY Rythmik DS1501
Amp: Audio Research VS-55
Preamp: Audio Research LS2
Dac: Sonic Frontiers SFD-1 Mk2
Source: HTPC running win10
Other: Jriver20, calibrated usb mic, REW

So, if anyone has any advice on my strategy below, please chime in:

1) Measure left and right channels independently in REW. Move mic around to 5 or 6 spots in the general "listening area" like Dirac suggests. Average those results for each channel independently, and have REW suggest EQ. Input that EQ into JRiver's PEQ manually.
2) Loop all audio through JRiver, and run the same 5 or 6 measurements per each channel, and average those per each channel. Export that into rePhase.
3) Play around in rePhase, do some FIR filtering there. Export those results and import them into JRiver's convolution engine.

Does this sound like I'm on the right path?

When I first got the measurement mic, I did 1 sweep with both channels in the listening position, had REW suggest filters, then exported those into the convolution engine in JRiver. The results...where not so good. Really flat, no life. So the method above may produce some better results? What do you all think?

My advice (laid out at length above) is not to measure at the listening position at all during the first phase, except as a check on how the correction is going.  My advice is to measure the speakers at various distances on axis, average those, and then feed that result into REW to generate the correction.  Others may disagree with the approach, but I have consistently gotten much better and much more reproducible results following the methodology laid out in this thread than any combination of listening position measurements.  You can see my rationale laid out at length in the opening posts.

Once you've corrected your speakers, you can use listening position measurements to try and dial in room correction, but (as described above) that's not an automated process.

At this point you should be safe to use REW to measure instead of HOLM as REW now has Frequency Dependent Windowing, but the screencaps above will obviously not help with that part of the process :-)
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: PGibby on January 16, 2017, 08:35:09 am
My advice (laid out at length above) is not to measure at the listening position at all during the first phase, except as a check on how the correction is going.  My advice is to measure the speakers at various distances on axis, average those, and then feed that result into REW to generate the correction.  Others may disagree with the approach, but I have consistently gotten much better and much more reproducible results following the methodology laid out in this thread than any combination of listening position measurements.  You can see my rationale laid out at length in the opening posts.

Once you've corrected your speakers, you can use listening position measurements to try and dial in room correction, but (as described above) that's not an automated process.

At this point you should be safe to use REW to measure instead of HOLM as REW now has Frequency Dependent Windowing, but the screencaps above will obviously not help with that part of the process :-)

Thank you. You've been a great help, and your first post on this thread got me to buy a calibrated mic.

I think I'm going to try something a little different (and it may not work), but I'll give it a try as my time without kids running around the listening area is very limited.

I'm going to do as you suggested, with "speaker" correction first. Then, with that correction applied in the PEQ of JRiver, then move into the "room correction" part using DRC Designer routing audio with the WDM driver (so the PEQ is applied). It looks a little more automated than RePhase. It also has easy house curve adjustments as well.

I'll let everyone know how it goes.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on January 16, 2017, 08:49:14 am
I'm going to do as you suggested, with "speaker" correction first. Then, with that correction applied in the PEQ of JRiver, then move into the "room correction" part using DRC Designer routing audio with the WDM driver (so the PEQ is applied). It looks a little more automated than RePhase. It also has easy house curve adjustments as well.
are you aware that the latest REW can export filters in a format that rephase understands? i.e. process can be as simple as; measure in REW, suggest filters, export to xml, load into rephase, tweak phase, export as impulse, load into jriver, enjoy!
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: PGibby on January 25, 2017, 02:16:52 pm
I've ended up trying a couple different methods, and this one worked the best for me:

Measured in REW each channel and corrected for 200hz and lower. Put those filters in PEQ in JRiver.
Fire up DRC Designer, set JRiver as your output now (so the PEQ adjustments take effect), and run the sweeps there. Let it do its thing. It'll export FIR filter wav files of your sampling rate choices and whatever house curve you aim for. Pick out whatever one sounds best, then if you want to go a step further, you can make a custom one. My DAC is an oldie but a goodie (Sonic Frontiers), so it only handles 44.1 and 48khz. Simply make a config file to tell it what filter to use based off of the sample rate of the source file.

Works VERY well, and I'd say I got very close to the results I got with DIRAC.

I tried following mwillems advice, but I had a few problems:

1) I tried measuring the speakers as best i could without room interaction, and with the design of my house, I don't think I was able to get a location where I wasn't finding some. I could tell because I would move the speaker a little (like in the dead center of my biggest room), and measure it. Then, move it a little with the same mic distance, and get a different result.

2) Time...i just didn't have the time to run through it all as my progress was slow.

I went for the easy button with REW correcting below 200hz, then used DRC Designer for the rest...and it turned out, in my case, really well.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mk9pa on February 06, 2017, 12:08:03 am
MWillems, thanks for the outstanding guide.

I am working on getting DRC working under MC22 on a Raspberry Pi 3 on Raspbian.

Although your recommendation is to use the Parametric Equalizer for frequency equalization, I started with Convolution because it was a quicker path to get my feet wet.  I am using REW to generate filter impulse files and set up a cfg file for MC22.  It works but for all but 44.1 sample rates the Pi's CPU is overloaded.  This must be due to the REW impulse file's 128k sample size, which causes quite a large computational load for the convolution.  This parameter does not seem to be adjustable.  With the Convolution window's "Performance" number (x real time), and the % CPU taken by the mediacenter22 executable while running:
The 24/96 source has obvious serious distortion, the 24/88 source has frequent crackles/tearing. The 16/44 source sounds fine.

OK, so maybe Parametric Equalizer is less CPU intensive.  The same REW filters can be written out as text files with the filter specs.  This particular set has 13 filters for the right channel and 19 for the left, i.e. total 32 (this was a really quick try, nothing thorough here yet).  Playing a 24/88 source without any processing, average CPU utilization of mediacenter22 is about 42%.  Adding in all 32 filters, it climbs to around 70%, is highly variable, and produces occasional crackling sounds.  24/96 source with filters ranges around 60-90% and has obvious crackling.  16/44 source produces occasional crackling and runs around 30-50% with occasional peaks to 80% that I see.

There appears to be a general increase in average CPU utilization with this many filters, but what appears to happen also is that the variation in CPU usage increases.  In any case, there doesn't seem to be much headroom available with either approach.  I note that somewhere I saw that SSE instructions were used for Intel processors which would help a lot for this; ARM processors have something similar but different, and although the ARM processor in the RPi 3 B is 64-bit, having the OS and compilers fully take advantage of that may not be fully baked yet.

Any suggestions for attacking this problem on the Pi 3?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on February 06, 2017, 12:51:32 am
Try using rephrase to generate the filters instead as you can use it to reduce the length of the generated filter. You can export from rew and import into rephrase btw. This would let you use the same filter set but with different frequency resolutions, ie shorter filters have a coarser resolution, to see how you can trade off precision vs CPU.

Alternatively you can review the filters themselves to remove unnecessary ones, perhaps you are trying to do too much. You can also change the targets in rew, particularly the flatness target and the frequency range, to get it to do less in the first place.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 06, 2017, 06:30:44 pm
Matt's advice is good; fewer taps or fewer filters are the most likely answer here.  You quote a cpu percentage, but it's unclear what the source of that percentage is.  Many Linux performance monitoring tools display each processor as a separate pool so max usage on a pi would be 400% not 100%, so I'm not sure if MC is using 50% of one thread or 50% of total cpu available.  If you could clarify and also indicate the load average, I might have an idea or two.

Three things to try that are pi-specific to squeeze out a little performance if you haven't already:

1) Try setting the pi's cpu governor to performance.  That might help reduce drop outs in the more hopeful cases, as latency tends to spike when the processors try to downclock, which they will do periodically with the default pi cpu governor (which is either powersave or ondemand depending on the raspbian version).  You could also try overclocking it, but the foundation does not recommend it with a pi 3.

2) Make sure your powersupply is adequate; the pi 3 needs more power than prior pis and the foundation recommends a 2.5A minimum power supply for the pi 3 for just the board.  If you've added usb peripherals or daughterboards/hats you need yet more power, sometimes as much as an amp more.  Lack of power can manifest as instability, but it can also manifest as CPU throttling or erratic performance.  If you've got the pi hooked up to a monitor it will signal this to you by floating a multicolored square in the upper right hand corner, but if you're headless you'd never know.  So (if you're using a 1.5 or 2 A power supply) find a good 3 amp power supply, and try powering any USB peripherals using a powered USB hub and see if that helps at all.

3) If you've got the pi in an enclosed case, there's also a chance it may be overheating or thermally throttling, as the pi 3 runs hotter than prior generations, and the foundation conditionally recommends a heatsink for the pi 3.  If you're running the board open air or with a fan, ignore this, but if you've got it inside a closed case consider installing a little heatsink on the processor.  You can test by polling the pi's cpu temperature while it's under load to see how hot it's getting.  Below 60C is fine, and this is definitely not your issue.  Below 70C is also probably fine, more than 70C is iffy, more than 80C is very likely to be an issue.  If temperature looks like it might be relevant you can get cute cheapy heat sinks for a few dollars.  Even the cheapy ones can make a 5 or 10C difference based on my own measurements, which could be meaningful if it's cooking. 
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mk9pa on February 11, 2017, 12:37:03 am
Yes, it makes sense to try simpler filters or shorter samples.  Regarding the performance suggestions, what I reported as CPU utilization is the utilization of the single CPU core running MC (from the "top" command).  The Raspbian release I am running (latest available) sets "ondemand" CPU governor but with a 50% up threshold, so the clock goes up when the CPU is 50% utilized.  I figure that's not bad (the default used to be 95%) and I'm keeping it there for now.  I could lower that some, or just set it to "performance" but will have to experiment with that when I have a little more time.  Power supply: I tested by bringing home a big bench supply and connecting it directly to the HiFiBerry power supply which also feeds directly into the Pi's power.  No difference.  The default supply is a 2.5 A wall wart.  I have the small heat sinks that come with the Pi 3 board installed, and am using a HiFiBerry case that has holes in sides and top. However, the DAC board sits on top of the CPU board, so air movement is reduced. I ran a system profiling app with thermometer and while playing a 24/96 file with 32 filters, it ran in the mid-50s, up to 57 C max that I see.  This must be because only one CPU is being fully utilized.

Something else I notice at the moment: I updated to MC 22.0.71 since it appeared in the JRiver repo, and now MC is using significantly less CPU on the Pi than before.  Up above I report that with convolution of a 128k sample impulse file and playing a 24/88 file MC reports it's running 2.0x realtime with 22.0.63; now it's running 3.5x and using 40% CPU instead of 80%.  Really now. That is a big difference.

But I have been stuck for the last week on an inability to run REW on the Pi.  It appears that nobody else has this problem, and I was able to run it a couple of weeks ago too, and cannot identify a reason why anything changed.  The REW app starts up fine, sends signals out to the audio output for about 1 second, then stops, and loses the connection to all its audio devices (DAC output and USB microphone input).  This happens with both the HiFiBerry board and an external USB DAC. Currently stuck trying to get that understood. Could be Java, but tried 3 versions (2 from Oracle and one OpenJDK which was very poor performance).
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: trento on February 11, 2017, 03:18:03 am
At the time this guide was written, REW did not support Frequency Dependent Windowing and had some irregularities with certain low frequency measurements, so I used Holm instead.  REW now supports Frequency Dependent Windowing, and to my knowledge the irregular bass measurement issue has been resolved.  So there's no technical reason not to use REW for the whole process at this point. 

Because of the number of screenshots and text, switching over the guide would involve a major rewrite of the guide and Ive got a one year-old child these days which limits the time I can spend on A/V forums  ;)

Hi to everyone!
This is a great guide, really, great! My starting point.
I'm new on this forum, to DRC/FIR/IIR an so on...

I've read on a tech magazine that windowing is essential for the math and filter and change a lot the results, is it true? could it be possible to have a screenshot or two about the parameters we have to change on REW to maintain the consistency with that guide?

Thanks to all contributors
Matteo
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mk9pa on February 26, 2017, 11:42:26 am
Hi Mwillems,


I have gone through a full loop of measurements, filter generation in REW, and phase linearization in rePhase, resulting in a dramatic improvement in music quality on a pair of inexpensive bookshelf speakers I am using for practice. I used just the simplest flow: one measurement per channel at a nominal listening position.  This is to get some practice with the tools and methods. It takes some gymnastics between the various tools and, in my case, OSs since MC target is a Raspberry Pi 3 B running Linux and not all tools involved are available on that platform.  Previous issue with inability to run REW on the Pi was fixed by rebuilding the Pi OS from scratch.


With that as background, I'd like to strategize a fully-developed approach to room/speaker correction.  Your method as described in this thread is one that is intuitively attractive because it decouples speaker and room, one of which (speaker) can be addressed with a constant correction no matter where they are placed.  A single measurement at listening position as I've done so far is not a good solution: I can tell that moving a few inches from the mic position changes the sound significantly.  The filter gain values REW assigned include some at -18 dB, -16.5 dB, and numerous around -9 dB, and Q values including 6 between 6.2 and 10.6, which is consistent with overfitting. These are likely due to room modes or reflections that are highly specific to placement.


An alternative approach may be to take measurements at a number of spatially diverse positions in the listening region and averaging them in some way, with the goal of producing filters with Q values in a more constrained range.


I wanted to ask whether you researched alternative approaches when developing your method.  I've found only offhand mention of taking multiple spatially-diverse measurements and combining them. I understand that close-measuring the speakers avoids a lot of the issues, but I am trying to see if at least the first-order room effects can be included in the filter generation without overfitting.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 26, 2017, 02:22:22 pm
I wanted to ask whether you researched alternative approaches when developing your method.  I've found only offhand mention of taking multiple spatially-diverse measurements and combining them. I understand that close-measuring the speakers avoids a lot of the issues, but I am trying to see if at least the first-order room effects can be included in the filter generation without overfitting.

I did a great deal of empirical research, by which I mean measuring at different places in my room and others' rooms, trying corrections and then remeasuring, etc.  I can say that none of those methods provided predictable results in the same way that speaker linearization did.  It's really something you'll have to trial and error your way through.  One rule of thumb I can share from my experiments is that adding boost in room correction (as opposed to speaker correction) is almost always an error as you're typically trying in vain to fill up a cancellation or room mode.  This will not work at the measuring position and will make a mess everywhere else.

My experience is also that if you haven't linearized the speakers first you will spend a lot of time chasing phantoms.  Trying to correct the interaction of two systems only one of which is fully correctible is a recipe for heartbreak IME;  correct the solveable system first (the speaker) and then work on the intractible second system (the room).  Once you've linearized your speakers, averaging the room response across the listening area is a good idea for a test, but may not work in practice.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: Manfred on March 03, 2017, 03:45:48 am
If you set the target level in REW, is it better to have it the same for the left and right speaker or using the value calculated by set target level->results for left and right speaker then differ. My left B&W 804 S needs only two filters for the left speaker where as the right speaker (near a window with curtain) needs ~20 filters.

By the way an excellent guide!

Thank you very much for your help!
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: Audiofi3l on March 31, 2017, 10:21:32 am
Thank you for this great guide!

One question though, what is the best way to stitch a three way together? First tweeter and mid, and then the result of that with the woofer or something else? Do i have to use both crossovers (i have one at 250 hz and 2500 hz with my speakers) with stitching or only the obvious one? The one at 250 hz isn't obvious...

I have tried it a few times but the results of the 3 inch, foot and meter differ more then in your example and i tend to get a big peak down at the 2500 hz crossover when stitching the 3 inches...

Thanks in advance for your help!
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on March 31, 2017, 11:05:31 am
Thank you for this great guide!

One question though, what is the best way to stitch a three way together? First tweeter and mid, and then the result of that with the woofer or something else? Do i have to use both crossovers (i have one at 250 hz and 2500 hz with my speakers) with stitching or only the obvious one? The one at 250 hz isn't obvious...

I have tried it a few times but the results of the 3 inch, foot and meter differ more then in your example and i tend to get a big peak down at the 2500 hz crossover when stitching the 3 inches...

Thanks in advance for your help!

The stitching and separate measurement should ideally be done for each "way," i.e. each speaker or set of speakers playing a single band.  I'm not sure what you mean by one crossover is "obvious" but the other isn't?  Do you mean audible vs. not audible or physical spacing or something different?  In any case the order in which you stitch them shouldn't matter as your crossovers are a decade apart.

If you're getting a big null at the 2500Hz crossover that suggests that either your measurements or your speakers have poor phase alignment.  If it's a really massive null, you probably just have the polarity flipped between the two measurements, either in your microphone or in your speakers.  Try inverting the phase of one or the other of the measurements (probably easiest to do the >2500Hz measurement).
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: Audiofi3l on March 31, 2017, 12:13:00 pm
The stitching and separate measurement should ideally be done for each "way," i.e. each speaker or set of speakers playing a single band.  I'm not sure what you mean by one crossover is "obvious" but the other isn't?  Do you mean audible vs. not audible or physical spacing or something different?  In any case the order in which you stitch them shouldn't matter as your crossovers are a decade apart.

If you're getting a big null at the 2500Hz crossover that suggests that either your measurements or your speakers have poor phase alignment.  If it's a really massive null, you probably just have the polarity flipped between the two measurements, either in your microphone or in your speakers.  Try inverting the phase of one or the other of the measurements (probably easiest to do the >2500Hz measurement).

Thank you for the quick reply. I am relatively new to this, so propably asking the obvious questions  ;D
By obvious i mean it was clearly visible in the measurements. The one at 250 Hz was not visible, while the 2500 one was very obvious.

I have measured the speakers as you described but i played them normally while measuring, meaning not playing single bands or so. I have attached the measurements of the left speaker (the right one is more or less the same).

If i understand correctly, i have to stitch tweeter->mid, tweeter->woofer, mid->woofer. Do i have to stitch all those together too?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on March 31, 2017, 12:19:19 pm
Thank you for the quick reply. I am relatively new to this, so propably asking the obvious questions  ;D
By obvious i mean it was clearly visible in the measurements. The one at 250 Hz was not visible, while the 2500 one was very obvious.

I have measured the speakers as you described but i played them normally while measuring, meaning not playing single bands or so. I have attached the measurements of the left speaker (the right one is more or less the same).

If i understand correctly, i have to stitch tweeter->mid, tweeter->woofer, mid->woofer. Do i have to stitch all those together too?

No that's the wrong way around.  The goal is to create a single stitched measurement that shows the appropriate band for each speaker.  You want to stitch the mid to the tweeter, and then stitch the woofer to the results of the first stich.  Alternatively, stitch the woofer to the mid, and then stich that result to the tweeter.

So
1) M->T = MT
2) W->MW=WMT
or
1)W->M=WM
2) WM->T=WMT
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: Audiofi3l on March 31, 2017, 12:31:26 pm
Ok, thank you! Hopefulle one last 'dumb' question:-) do i choose just one cross-over or do i create two stitch sets each with one cross-over and stitch those two also together?

I have added a picture with my results stiched together with the as described in your example with the 2500 hz cross-over point. They are not as close together as in your example after stitching. I that a problem do you think?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on March 31, 2017, 01:16:56 pm
Ok, thank you! Hopefulle one last 'dumb' question:-) do i choose just one cross-over or do i create two stitch sets each with one cross-over and stitch those two also together?

I'm not 100% sure I understand your question; how can you stitch the measurements together at just one crossover?  The woofer mostly plays between 20Hz and 250Hz; the midrange mostly plays from 250Hz to 2500Hz; the tweeter mostly plays from 2500Hz up to wherever it stops playing.  If you tried to stich the tweeter using the 250Hz crossover you'd be including a huge band in which the tweeter isn't even playing.  The idea is to stitch the measurements to create a composite picture of what the speaker sounds like in the bands where each element is playing.

You should be stitching the measurements at the crossover point for the two measurements that you are stitching (imagine stitching a quilt together, each piece needs to be stitched at its edges).  So if you're stitching the woofer to the midrange you should use the 250Hz crossover point to stitch.  If you're stitching the midrange (or the midrange-woofer composite) to the tweeter you should be stitching at the 2500Hz crossover point. 

Does that make sense?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: Audiofi3l on March 31, 2017, 01:45:50 pm
I'm not 100% sure I understand your question; how can you stitch the measurements together at just one crossover?  The woofer mostly plays between 20Hz and 250Hz; the midrange mostly plays from 250Hz to 2500Hz; the tweeter mostly plays from 2500Hz up to wherever it stops playing.  If you tried to stich the tweeter using the 250Hz crossover you'd be including a huge band in which the tweeter isn't even playing.  The idea is to stitch the measurements to create a composite picture of what the speaker sounds like in the bands where each element is playing.

You should be stitching the measurements at the crossover point for the two measurements that you are stitching (imagine stitching a quilt together, each piece needs to be stitched at its edges).  So if you're stitching the woofer to the midrange you should use the 250Hz crossover point to stitch.  If you're stitching the midrange (or the midrange-woofer composite) to the tweeter you should be stitching at the 2500Hz crossover point. 

Does that make sense?

It does make a lot of sense now. Thank you for your patience! I go for the next round now, thank you again!
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: Audiofi3l on March 31, 2017, 02:17:08 pm
I get an error (see picture) when i try to import the 3 inch stitches of both left and right. The other stitches from 1 foot and 1 meter just import normally. What can it be?

Doing the stitch again doesn't solve the problem...
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on March 31, 2017, 02:23:30 pm
I've never seen that error before, but if I had to guess you may have stitched the measurements in the wrong order/arrangement? 
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: Audiofi3l on March 31, 2017, 02:34:43 pm
I've never seen that error before, but if I had to guess you may have stitched the measurements in the wrong order/arrangement?

Well, i tried starting with woofer and tweeter, but it makes no difference... Also installed the latest beta from REW, but no difference, exept it doesn't asking the C-weighted question anymore and popped-up the error instantly...
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: Audiofi3l on April 01, 2017, 06:37:38 am
I have done the 3 inch measurements again and now i can import the stitches from these in REW!

And using the results... But... The main reason to start this traject was a huge overpowered standing wave at ~ 37,5 hz at the listen position. It was clearly visible at the initial measurements at this listening position.

After the closer speaker measurements as described in the manual and stitching them together and let REW average the results, there is almost no peak left at this 37,5 hz. When REW calculated the target level there is almost no correction done at this point. Listening to the result thus still has a huge problem at 37,5 hz. Other 'problems are propably fixed but overpowered by the existing boomy 37,5 hz...

Did i do something wrong, or is there another way to correct this?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: guer_j on February 27, 2018, 09:09:47 am
Not sure if it is kosher to revive old threads here so just asking for forgiveness in advance....

So I tried to follow this tutorial  with pretty good results, I think my Axiom M60 (v. from around '99-00'ish ) sound much better. They've always had this kinda harshness to it that I got used to it but anyway...

I do have a few questions:

 1. How to mic the tests for M60?: I did a mid-woofer/tweeter (mic between them)  and a Woofer (mic centered on the top (6.5) woofer). I didn't want to over complicate this that's why I didn't choose to mic each of the woofer and tweeter individually.  Because I did mid/tweeter together stitching became a bit more difficult since I had to figure out the Xover point.

This is my mid/tweeter(blue), Woofer(red) and stitching(green)
 https://imgur.com/a/oIUez (https://imgur.com/a/oIUez)

2. Notice that huge bump from 3K and about 8K , I'm pretty sure that's all harshness right there, So I'm wondering why my speakers had such a huge bump. It is better to have a bump than a valley... anyway just curious.

3. I want to continue experimenting on, what are the recommendation for Mic'ing and later stitching an M60?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on February 27, 2018, 09:43:06 am
something looks very wrong with that speaker if the measurements are accurate as that's an enormous and broad (low Q) lift in the response. I'd expect that to be very much audible (and not in a good way!) and is not something you'd expect to see in a functioning speaker.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: guer_j on February 27, 2018, 10:11:20 am
Yeah, like I said, these speakers always sounded way too harsh. I've always had to Eq. them. I'm going to email Axiom and see what they say. I mean, I bought these speakers almost 18 years ago online (how time flies). I've always used the same receiver with them a Denon AVR 3300, I mean, it could be that but I doubt it. I made sure any eq. setting is either off or 0'ed out on the receiver. 
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on February 27, 2018, 05:51:42 pm
1. How to mic the tests for M60?: I did a mid-woofer/tweeter (mic between them)  and a Woofer (mic centered on the top (6.5) woofer). I didn't want to over complicate this that's why I didn't choose to mic each of the woofer and tweeter individually.  Because I did mid/tweeter together stitching became a bit more difficult since I had to figure out the Xover point.

This is my mid/tweeter(blue), Woofer(red) and stitching(green)
 https://imgur.com/a/oIUez (https://imgur.com/a/oIUez)

I don't know anything about your speaker model; is it a three-way?  If so try micing the woofer, midbass, and tweeter separately and then stitching; there's info upthread from someone else in a similar spot.

Quote
2. Notice that huge bump from 3K and about 8K , I'm pretty sure that's all harshness right there, So I'm wondering why my speakers had such a huge bump. It is better to have a bump than a valley... anyway just curious.

If you're measuring in between two elements I wouldn't trust the measurements, but that bump is definitely a problem if it's real.

Quote
3. I want to continue experimenting on, what are the recommendation for Mic'ing and later stitching an M60?

I've never seen your speakers so you'll need to describe the speaker more minutely.  How many elements?  In what arrangement?  Where are the crossovers? 
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: bugeyed on March 29, 2018, 09:33:55 am
I am about to jump into this & am wondering if the info about HOLMImpulse is all still relevant. HOLMImpulse is no longer supported & they no longer sell the mic they use (HOLM MIC 1). The MIC 1 is not a USB Mic as is the mic recommended for use with REW (miniDSP UMIK-1). I am wondering if RoomEQWizard has been updated so it can be used in place of HOLMImpulse for that portion of these instructions?

BTW in the interest of making the instructions accurate, I submit a correction to the entry at Reply #3 of this thread.
"3) REW will only generate up to 20 filters, but will generate fewer if it doesn't need all 20.  If REW generates 20 filters for your response it probably actually needs more than 20, and you might want to consider generating the filters in two batches (bottom of the range to 600KHz, 601KHz to 10KHz, etc.)" At issue is 600KHz & 601KHz.

Thanks,
Kev
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on March 29, 2018, 09:45:05 am
REW does everything that holm can do these days and a whole lot more so personally I would use REW for everything. Holm still works fine though so no harm in using it. Neither piece of software cares which mic you use.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on March 29, 2018, 06:02:25 pm
I am about to jump into this & am wondering if the info about HOLMImpulse is all still relevant. HOLMImpulse is no longer supported & they no longer sell the mic they use (HOLM MIC 1). The MIC 1 is not a USB Mic as is the mic recommended for use with REW (miniDSP UMIK-1). I am wondering if RoomEQWizard has been updated so it can be used in place of HOLMImpulse for that portion of these instructions?

As mattkhan noted there's no harm in using Holm with a different mic, or just using REW for everything as it now supports Frequency Dependent Windowing.  At some point I may re-work the guide as a 100% REW solution, but I have a small child so major re-works have been a long time coming  :-[

Quote

BTW in the interest of making the instructions accurate, I submit a correction to the entry at Reply #3 of this thread.
"3) REW will only generate up to 20 filters, but will generate fewer if it doesn't need all 20.  If REW generates 20 filters for your response it probably actually needs more than 20, and you might want to consider generating the filters in two batches (bottom of the range to 600KHz, 601KHz to 10KHz, etc.)" At issue is 600KHz & 601KHz.

Thanks,
Kev

Great catch, I just fixed it.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: Manfred on April 29, 2018, 06:20:30 am
I am using Win 10 x64, I had to enable under App's-> Programs & Features->Windows Features activate or deactivate -> enable: .Net Framework 3.5 (contains .Net 2.0), the manual installation of the .NET framework 2.0 always failed. After that I could install HOLMImpulse x64.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: robspierre on June 25, 2018, 02:10:33 pm
Beware: Newbie post! This is great stuff! Is anyone aware of a free 1/3 octave graphic equalizer plug-in that works with JR 24/64 with separate faders for left and right channels?

Also, a point of interest rather than contention: I believe if available a calibrated omnidirectional microphone is optimum. I'm just sayin...
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mattkhan on June 25, 2018, 03:23:16 pm
What does the "just sayin" refer to exactly? The fact that point 2 in the OP doesn't mention omni when it refers to a mic?

Not sure if https://www.voxengo.com/product/marvelgeq/ does what you want.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: cyberkul on August 12, 2018, 05:30:02 am
(I plan to address subwoofers and active crossovers for bi-amping in a later guide). 

Hi!
Thanks for the excellent guide! I think I should do my measurements again, and try to separate the speakers from the room, as you explain in your guide. I`m not sure if the later guide is a work in progress or not? Anyway, though this is an old thread I hope it is ok to ask some questions?

1. I want to use software linear-phase crossovers, but I`m not sure where in the sequence the crossovers should be created? Maybe just before doing the Phase Correction?

2. I`m using a BR cabinet with 2 15" elements for bass/midbass, horns for the midrange and treble. The midrange horn is a JBL 2360 with 2446 driver, and the treble horn is a JBL 2404. The midrange need to be attenuated maybe 10-12 dB, and the treble about 5 dB compared to the midbass. Can the Rephase matching tool be used for this, or should I use some attenuation between the RME soundcard and amps? Also, both the midrange and treble rolls off rather steeply, so at the top of their ranges not so much attenuation is needed.

So far I`ve been using a Minidsp 4x10HD for crossovers and EQing. REW for all measurements. It works well, and it is nice to be able to do corrections in real time. But it is not completely quiet, there is some hissing from the midrange and treble horns. The amps are Anaview class D, AMS100 for treble and midrange, and AMS1000 for bass.

Also, some Audiolense users that used Minidsp before say that the sound quality is better. I might end up with audiolense/JRiver, but I would like to use these free tools first to learn a little bit.



Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on August 12, 2018, 10:38:04 am
Hi!
Thanks for the excellent guide! I think I should do my measurements again, and try to separate the speakers from the room, as you explain in your guide. I`m not sure if the later guide is a work in progress or not? Anyway, though this is an old thread I hope it is ok to ask some questions?

My wife and I had a child shortly after this guide was prepared so the bi-amping guide got shelved regrettably (much less time with a quiet house where I can setup microphones)

Quote
1. I want to use software linear-phase crossovers, but I`m not sure where in the sequence the crossovers should be created? Maybe just before doing the Phase Correction?

If you're using linear phase crossovers, they need to be applied through convolution.  There's only one convolution "slot" in jriver, so you'll need to combine the linear phase crossovers and phase correction into the same convolution file and do both at once.

Quote
2. I`m using a BR cabinet with 2 15" elements for bass/midbass, horns for the midrange and treble. The midrange horn is a JBL 2360 with 2446 driver, and the treble horn is a JBL 2404. The midrange need to be attenuated maybe 10-12 dB, and the treble about 5 dB compared to the midbass. Can the Rephase matching tool be used for this, or should I use some attenuation between the RME soundcard and amps? Also, both the midrange and treble rolls off rather steeply, so at the top of their ranges not so much attenuation is needed.

I'd be tempted to just do the attentuation in JRiver's parametric EQ myself rather than trying to do it in convolution.

Quote
So far I`ve been using a Minidsp 4x10HD for crossovers and EQing. REW for all measurements. It works well, and it is nice to be able to do corrections in real time. But it is not completely quiet, there is some hissing from the midrange and treble horns. The amps are Anaview class D, AMS100 for treble and midrange, and AMS1000 for bass.

Also, some Audiolense users that used Minidsp before say that the sound quality is better. I might end up with audiolense/JRiver, but I would like to use these free tools first to learn a little bit.

Just keep in mind that if you migrate away from the MiniDSP you'll need to find a suitable multi-channel DAC to use in its place.  I've been tinkering with a minidsp for a side-use, and I can say that putting a 10dB in-line attenuator between the MiniDSP and the amps does wonders for reducing the hiss.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: cyberkul on August 13, 2018, 04:11:37 am
Thanks! I already have a RME Fireface 800 (and an even older RME Multiface)
interface, so I’m able to compare with the Minidsp.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: Waterford853 on March 31, 2019, 06:46:36 pm
Hi all - trying to get started with this process and failed out of the gate.  I suspect it is something very simple.

I followed the latest guide on installing the various software and drivers to create a loop (REW, MC, WDM driver, HiFiCable driver).  https://wiki.jriver.com/index.php/Verifying_DSP_Studio

From there, I see that MC get the signal from REW but i get no sound from my amp.  The blogs mention an IPC zone showing up but I do not see a zone created so I am trying to simply configure the Player zone to play the IPC since I see it listed in the playlist.    This (again) seems correct.

My signal path is: MC23--> wireless feed to uPNP endpoint (Auralic Mini) with an external DAC attached.  I can stream music just fine to the Auralic but this IPC file will not broadcast to it.  I have verified the settings in the guide.  I don't need to hardware from the PC (sound card) to the amp with RCA's, do I?  I thought my PC sound card was not used in this process.

Any thoughts? :P
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on March 31, 2019, 08:31:23 pm
Hi all - trying to get started with this process and failed out of the gate.  I suspect it is something very simple.

I followed the latest guide on installing the various software and drivers to create a loop (REW, MC, WDM driver, HiFiCable driver).  https://wiki.jriver.com/index.php/Verifying_DSP_Studio

From there, I see that MC get the signal from REW but i get no sound from my amp.  The blogs mention an IPC zone showing up but I do not see a zone created so I am trying to simply configure the Player zone to play the IPC since I see it listed in the playlist.    This (again) seems correct.

My signal path is: MC23--> wireless feed to uPNP endpoint (Auralic Mini) with an external DAC attached.  I can stream music just fine to the Auralic but this IPC file will not broadcast to it.  I have verified the settings in the guide.  I don't need to hardware from the PC (sound card) to the amp with RCA's, do I?  I thought my PC sound card was not used in this process.

Any thoughts? :P

If I recall correctly, there's no way to get the WDM input to stream via the network (it's not supported), so I think that's the issue you're seeing.  I'd suggest creating a thread on the MC25 forum asking directly about that issue to confirm, but I'm fairly sure that's not supported. 

If you want to be able to use the WDM driver, you'll probably need to have the computer directly connected to the DAC (not via the network).  If you're just using it for this guide, you could hook it up temporarily, and then, once you get your DSP tuned, you could apply DSP settings to DLNA output for media played directly in JRiver.  But that wouldn't help you if you actually want to use the WDM driver for media as opposed to just testing.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: spalmgre on July 03, 2019, 01:42:44 am
There has been mentioned that REW does not support " frequency dependent windowing (FRD)". This might have been the case at the time of the writing. But we live in a world of upgrades. So I would like to see version numbers mentioned when referring to different software and their capabilities.

This would help to put things in perspective when reading the given advice now several years after the thread was written.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: burnhamjs on January 14, 2020, 12:33:57 pm
I understand this is more of a REW question but it directly relates to this post, so I thought i'd check here first.

I want to do all my checks within REW.  If I take 2 measurements of a speaker (let's say on-axis 3" from tweeter and on-axis 3" from woofer), what is the best way of stitching the 2 measurements together in REW - do I "Average the responses" or use the "Merge" function?

Also for adjusting the raw response using the IR window, I think I use check the "Add Frequency dependent window"  and select a Width in octaves of 1/12, but I'm not sure what the other settings should be.  Do I set the left window to the impulse peak, then the right window for 5ms?  I understand the longer I have the window the more resolution I will get, but allows for more reflections - though at 3" and 1' measurements I'm not sure how critical this is).    Lastly, I have no idea what the "tukey" settings are - do I leave these at default?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: High-End on June 11, 2020, 09:24:08 am
It is already some years ago that this HowTo was written.
I want to measure a new room with my speakers.
My HiFi consists: HTPC(win10_64)/MC - DAC - preamplifier - active X-over - 3x power amplifier - speakers

As mentioned in this HowTo, I've got some measuring tools:
Hardware:
* "MiniDSP UMIK-1" USB Microphones
software:
* Holm Impulse
* Room EQ Wizard
* RePhase

Can I simply install the software on my HTPC and then perform the measurements with the UMIK-1 through my HiFi? Or do I need additional external hardware?

The plan is to integrate the measurement results into MC.
Later, when I order the Hypex "FusionAmp FA253", I will integrate the measurement results into the Hypex.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on June 11, 2020, 09:25:43 am
It is already some years ago that this HowTo was written.
I want to measure a new room with my speakers.
My HiFi consists: HTPC/MC - DAC - preamplifier - active X-over - 3x power amplifier - speakers

As mentioned in this HowTo, I've got some measuring tools:
Hardware:
* "MiniDSP UMIK-1" USB Microphones
software:
* Holm Impulse
* Room EQ Wizard
* RePhase

Can I simply install the software on my HTPC and then perform the measurements with the UMIK-1 through my HiFi? Or do I need additional external hardware?

The plan is to integrate the measurement results into MC.
Later, when I order the Hypex "FusionAmp FA253", I will integrate the measurement results into the Hypex.

You shouldn't need any additional hardware if you're planning to use your PC as your sound source.
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: High-End on June 11, 2020, 12:41:24 pm
Thank you!
Then I'll read up on the subject and this thread.
 ;)
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: High-End on June 11, 2020, 02:01:09 pm
Almost all JRiver DSP is disabled when you're bitstreaming, so the short answer is that you'd need to disable bitstreaming and do the decoding in JRiver to use this guide.  ...

Long time ago this quote ;-)
I do have a couple of DSD files. Is your statement still true?
If this is the cast how do I handle room correction and DSD files?
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: mwillems on June 11, 2020, 04:16:05 pm
Long time ago this quote ;-)
I do have a couple of DSD files. Is your statement still true?
If this is the cast how do I handle room correction and DSD files?

I don't have any DSD content, so I can't speak from personal experience, but my recollection is that you'll need to output in DOP to have DSP applied.  My understanding is that doing that requires a conversion to PCM in the middle.  I don't think there's any way (technically) to do DSP on native DSD, and bitstreaming, by definition, disables signal processing.

You'd almost certainly get a more informed answer asking about using DSP with DSD on the main forums, though!
Title: Re: Guide to Speaker/Room Correction Using Freeware and JRiver
Post by: High-End on June 11, 2020, 11:03:22 pm
Thank you!
I'm worried that you're right about your DoP assessment. I'm gonna have to get smarter about this.