Room EQ Wizard on the Mac – an input workaround
[Update September 2014. As of REW Beta 21, 48 kHz operation is properly support and so the LineIn input workaround is not required for the miniDSP UMIK-1. Please note that it may still be required in other cases:
- A soundcard with more than two inputs and/or when you need access to inputs other than the first two.
- Your audio interface is connected via Firewire.
- You can not run OSX 10.7.3 or later (required by REW Beta 21 and later). In that case you will need to use REW Beta 20 and the workaround.
You will have to try for yourself to establish whether the workaround is required in your case. I have added some additional notes below.]
Room EQ Wizard (REW) is – by any estimation – a great program. A free program for measuring and optimizing your speakers and listening room and which has, over the years, acquired many useful analysis tools, thanks to the tireless efforts of its author, John Mulcahy. And it’s cross-platform, which means that Mac users aren’t left out in the cold!
However, there is a small fly in the ointment, which Mac users run into from time to time. Because REW relies on the Java programming language and runtime to achieve its cross-platform capability, it can only do what the underlying Java implementation will do. And sadly, the implementation of the JavaSound API that REW relies on heavily is somewhat lacking on the Mac. It seems that even the forthcoming JDK8 release has the same issues.
There are some specific cases where this can become an issue:
- When you need to run REW at 48 kHz. Most input devices will happily run at 44.1 kHz, but there are a few exceptions, such as the miniDSP UMIK.
- If your soundcard aka audio interface has multiple input channels – that is, more than one stereo pair.
- If your soundcard connects via FireWire.
(Note that, if none of the above apply to your situation, then you don’t need to use this workaround. In the common case where you have a USB interface that runs at 44.1 kHz and has one pair of inputs, REW will work just fine.)
What are the symptoms? The key giveaway seems to be that the impulse response doesn’t look like an impulse response. Other symptoms that occur include error messages from REW about being unable to find the impulse response peak or not finding the impulse response peak where it was expected, the measurement cycle completing before or just as REW is about to generate the sweep output signal, or a strange-looking frequency response where part of the spectrum just drops off for no apparent reason.
A workaround to these issues is to have REW only have to read from a simple 2-channel input source. And the way that we do that is to use SoundFlower, which can act as such an input device for REW.
The next part of the puzzle is routing the audio from the real input device to SoundFlower. That can be done with a little application call LineIn from the nice folks at Rogue Amoeba, makers of Airfoil for the Mac.
Both of them are free, so that fits well with the philosophy of REW. So here, step by step, is how to set it up. I have tried this on OSX 10.8.2 (Mountain Lion) and OSX 10.6.8 (Snow Leopard), with REW 5 beta 13 and REW 5.0 respectively, so I’m fairly confident that this should work in most situations. (If you do try it, please add a comment below or in this thread on hometheatershack to let me know how it went!)
Before doing anything, quit REW.
1. Download and install software
Download SoundFlower and LineIn. SoundFlower requires that you run an install program, after which you will need to restart your Mac. LineIn can just be unzipped and them moved to (I suggest) Applications or Applications/Utilities. You may also want to add LineIn to your dock for convenience.
Here are the download links:
- http://www.rogueamoeba.com/freebies/ (OSX 10.7 or later)
- http://www.rogueamoeba.com/legacy/ (OSX 10.6 or earlier)
2. Run and configure LineIn
Double-click on LineIn to run it (or click on it if you have put it in the dock). Set the input to your soundcard, and the output to the SoundFlower (2ch) device. Like this:
If your soundcard is not providing input from the first stereo pair, you will probably need to use the “Advanced” selection under the “Select” menu and set the specific channel number there. (I have not tried this, as I have not needed to so far.)
3. Configure System Preferences
Set your default input and output devices as follows. Go to System Preferences, then Sound, and then select the Input tab. Click on Soundflower (2ch) to select it as the default system input device. Like this:
On the Output tab, you will want to set it to your soundcard:
4. Start and configure REW
Now start REW, and configure it to use 44.1 kHz sampling and the default input and output devices. I’ve found this to generally be the most reliable way to use REW on the Mac, rather than trying to select the devices directly in the REW preferences pane. Like this (Version 5):
Or this (Version 5.0, Beta 13):
Note: For REW Beta 21 or later, you can REW for 48 kHz operation and it will work properly.
5. Turn on LineIn
Click on the Pass Thru button on the LineIn application. You should then see the meters bounce when you clap your hands. Like this:
And… that’s it! You should now be able to take good measurements in any of the scenarios listed above. In case you’re wondering about the 48 kHz case, yes it does work with REW set to operate at 44.1 kHz. Somewhere in the input chain Mac OSX is re-sampling from 48 kHz to 44.1 kHz, and REW seems to work fine with it this way.