## Setting up Digital Room Correction under Microsoft Windows

RoomCorrection.zip contains a number of utilities that aid in setting up and trying digital room Correction filters under Microsoft Windows. I did not write any of these utitlities, but instead just packaged and scripted them in a a manner that is hopefully easy to use. Included in this package are the following applications:

- Convolver VST - This is the application which will apply the room correction filters to music being played. I have verified that Convolver VST works with J River Media Center, Foobar 2000 via the George Yhong VST Host, and Cics Play media players. It should work with any media player that has a VST host.
- DRC version 3.1 - This is the application which will generate the correction filters that are used in Convolver VST.
- Simple Automated IR Measuring Tool - This is an application that will automatically record a log sweep that will be used by DRC in the creation of the correction filters.
- Scripts I've written or tweaked to ease the process of taking measurements and setting up filters.
- Convolver VST configuration files that will load up correction filters created by the scripts.

These scripts currently create filters for 44.1 kHz playback only. They will generate correction filters for four different strengths of correction, according to example files that ship with the DRC software. In the future the package will also generate filters for higher sampling rates. While these directions may look long, all you really need to do is edit three lines in one file, set your microphone recording level appropriately, and run two commands and you are done. I've just made the instructions very explicit so that they may be applicable to a wide range of people with various levels of understanding. Please read this entire document before running the scripts.

#### Hardware Requirements

You need to have the following hardware in order to create filters with these scripts.

- A computer that runs a 32 bit version of Microsoft Windows XP or higher operating system. I haven't tested anything on a 64 bit platform.
- A soundcard or audio interface that will play and record at a 44.1 kHz sample rate.
- A decent RTA microphone and microphone preamp. Microphone preamps are sometimes built into certain audio interfaces.

#### Directions

1. Unzip the RoomCorrection.zip file to the root of whatever drive you generally install your applications to. The drive that contains the Windows folder is generally a good choice, usually the "C:\" drive. It is important that you unzip to the root of a drive, because the scripts assume a specific folder structure starting at the root of the drive. If you unzip to drive C:, you should have a folder structure that looks like:
   C:\RoomCorrection\ConvolverFilters
   C:\RoomCorrection\drc-3.1.0\...
   C:\RoomCorrection\Rec_imp.win32
   C:\RoomCorrection\Directions
   Make sure the folder structure is similar to that shown above for whatever drive you unzip to.

2. If you do not already have Convolver VST installed on your system, unzip the convolver4-4vc++.zip file, and run Setup.msi to install it on your system.

3. Open a Command Prompt window ( Start menu -> All Programs -> Accessories -> Command Prompt ).
   In the command prompt window, change directory to the \RoomCorrection\Rec_imp.win32 directory.
   Type the drive letter that you unzipped the software to, followed by a colon. Example: C:
   Then type: cd \RoomCorrection\Rec_imp.win32

4. Optional step, but please read.
   These scripts assume that you are using a soundcard or audio device that has ASIO drivers. If you don't have a sound card that supports ASIO, or if you don't know what ASIO is, you can still use these scripts but you have to replace one program by typing the following two commands in the command prompt window:
   ren rec_imp.exe rec_impASIO.exe
   ren rec_impDS.exe rec_imp.exe
   Don't type the commands above if you have a soundcard that supports ASIO

5. In the command prompt window, type: ListSoundCards.bat
   This command will list the ASIO sound card devices that you have installed on your system. You will need to note the device number of the card you want to use because you will need it when editing the RecordSweep.bat file. On my system, the output of the command is as follows:
   rec_imp 1.0.0: generates a log sweep and inverse filter, plays and records it, and then generates an impulse response file.
   Copyright (C) 2002-2004 Denis Sbragion, 2004 Edward Wildgoose
   Compiled with double precision arithmetic.
   This program may be freely redistributed under the terms of the GNU GPL and is provided to you as is, without any warrant of any kind. Please read the file "COPYING" for details.
   Found 3 device(s) ...
   RtApiAsio: error (Hardware input or output is not present or available.) initializing driver (ASIO Lynx).
   Device: #1
   Device Name = ASIO Lynx
   Probe Status = Unsuccessful
   Device: #2
   Device Name = ASIO4ALL v2
   Probe Status = Successful
   Output Channels = 12
   Input Channels = 10
   Duplex Channels = 10
   This is NOT the default device.
   Natively supported data formats:
   32-bit int
   Supported sample rates = 32000 44100 48000 88200 96000 176400 192000
   Device: #3
   Device Name = Prism Orpheus ASIO
   Probe Status = Successful
   Output Channels = 12
   Input Channels = 10
   Duplex Channels = 10
   This is NOT the default device.
   Natively supported data formats:
   32-bit int
   Supported sample rates = 44100 48000 88200 96000 176400 192000
   The audio device that I used was Device Number 3, Prism Orpheus ASIO. The scripts are setup to use Device Number 3, so you will have to edit one file in order to use the your device listed in the output of the ListSoundCards.bat command, as explained in the next step.

6. In the command prompt window, type: Notepad RecordSweep.bat. The file will open in Notepad. You only need to edit the top three lines of this file. You will need to replace the number 3 at the end of the first three lines with the device number of the sound card that you want to use, which you should jotted down from step 5 above.
   For example, if the sound card you want to use was device number one, replace the three lines reading:
   Set LEFT_PLAY_DEVICE=0:3
   Set RIGHT_PLAY_DEVICE=1:3
   Set RECORD_DEVICE=0:3
   with:
   Set LEFT_PLAY_DEVICE=0:1
   Set RIGHT_PLAY_DEVICE=1:1
   Set RECORD_DEVICE=0:1
   The number you need to change is in bold type above. Basically, the first number in each of the lines above represents the input or output channel, and the second number in each line represents the soundcard device number. The top line above specifies that the left channel sound will be played out of the first available playback channel on the third soundcard device (channels start at zero, not one). The second line specifies that the right channel sound will be played on the second availeble playback channel on the third sound device. The third line specifies that the sounds will be recorded on the first available recording channel on the third soundcard device. As long as you hook your left speaker up to the first playback channel, and your right channel up to the second playback channel, and your microphone up to the first recording channel, this will work. You only need to edit the second number of each line to match your sound card device. Save the file when finished.
   You can play with the values listed above in the Test.bat file. Make sure your stereo's volume is not really loud. When you run test.bat, you should hear a long sine sweep out of first the left channel, then the right channel. When you think you have the device numbers correct, make sure you have edited the RecordSweep.bat file to match.

7. Set your microphone up at the listening position. You might consider pointing the mic halfway between strait up and strait forward. Make sure the microphone capsule is at ear level.
   Make sure you set your stereo volume to a reasonable level. It shouldn't be too loud that the room vibrates in the bass tones, but it shouldn't be too soft either. You will want your record level on the microphone channel to be at as high a level as possible without going into clipping range. If the program detects a clip in the recording stage, it will stop at point in the sweep where the clip was detected and move onto the next channel. You can wait for the program to end, lower the recording level a bit, and try again until you get all the way through without clipping.
   At the command prompt window, type: RecordSweep.bat
   Keep adjusting the levels as written above until you successfully get both channels played and recorded.

8. In the command prompt window, type: GenerateFilter.bat
   This will create all the filters based on the recorded sweeps, and place the output in the \RoomCorrection\ConvolverFilters directory.

9. You are now ready to try the room correction filters. Using a media player that supports VST plugins, load the Convolver VST plugin. In the plugin interface, press the "Filter/Config" button, browse to the \RoomCorrection\ConvolverFilters folder (looking for files of type Config File .txt), and choose one of the following four files:
   ConvolverConfigErbDRC441.txt - A configuration based on psycho-acoustic research into the way we interpret sound
   ConvolverConfigMinimalDRC441.txt - The least amount of correction
   ConvolverConfigSoftDRC441.txt - A little more correction
   ConvolverConfigNormalDRC441.txt - About as much correction as you would ever want to use.

#### Other Included Scripts

- If you have a calibrated microphone, you can replace the \RoomCorrection\drc-3.1.0\sample\micCompensation.txt file with your own microphone calibration file. The GenerateFilterMicComp.bat file can then be run instead of the GenerateFilter.bat file, and the filter generation process will use the microphone calibration data. Be sure to closely check the output of the scripts when using a microphone calibration file, as DRC seems to be fussy about the format of the calibration files and wont run finish the process if the format is bad.
- The DoEverything.bat file is just a combination of the RecordSweep.bat and GenerateFilter.bat scripts, so you could do everything with a single command. There isn't any advantage to running this script except that it will measure and generate filters in a single step. I choose to record the sweeps separately, because once you have a good set of sweeps recorded, you can regenerate the filters as needed if you wanted to customize some of the DRC settings.
- The DoEverythingMicComp.bat file is a combination of the RecordSweep.bat and GenerateFilterMicComp.bat scripts. It is the same as the DoEverything.bat file above except that it will use the microphone calibration file \RoomCorrection\drc-3.1.0\sample\micCompensation.txt