### Step-by-Step Guide: Creating FIR Convolution Filters for Camilladsp Using REW with Variable Smoothing and Moving Mic Measurements
This guide synthesizes the procedures from the two referenced sources (Meridian Soundworks' DRC with REW and HTGuide's "How to: Measure with REW for Room EQ") into a streamlined workflow tailored for your full-range speaker system. It prioritizes variable (Var) smoothing for optimal stereo imaging while aiming for a flat response from 18 Hz to 20 kHz (with a gentle house curve to avoid sterility). We'll use pink noise and the moving mic method for measurements to capture a spatially averaged room response, reducing position-specific artifacts. Minimum phase copies will be generated for all relevant curves to ensure accurate phase alignment during filter creation.
Key principles:
- Measurements are taken per channel (left and right separately) at the main listening position/area.
- Apply Var smoothing after averaging measurements to preserve low-frequency detail (for bass accuracy) while smoothing highs appropriately (for stable imaging).
- Generate minimum phase copies immediately after smoothing to convert responses into a form suitable for inversion and filter generation.
- Use the latest beta version of REW (e.g., v5.40 or newer) for best results.
- You'll need a calibrated measurement microphone (e.g., UMIK-1), audio interface, and Camilladsp for convolution.
- Measure at ~80-85 dB SPL (C-weighted, slow averaging) to maintain high signal-to-noise ratio.
- All steps assume a 2-channel stereo setup; adapt for more channels if needed.
#### Step 1: Prepare REW and Hardware Setup
- Download and install the latest REW beta from the AV NIRVANA thread (linked in the HTGuide document).
- Connect your measurement mic to your audio interface/computer. Load the mic's calibration file in REW (Preferences > Mic/Meter tab).
- Set REW's sample rate to match your system's (e.g., 48 kHz or 96 kHz for high resolution). Confirm your audio interface and Camilladsp are set to the same sample rate to prevent resampling artifacts.
- Position your speakers and listening area as desired. Treat the room minimally if possible (e.g., absorbers for first reflections and bass traps) to aid imaging. Over-damping can harm stereo imaging by deadening the soundstage or reducing natural reverb, so focus on treating first reflections and bass modes only.
- Open REW and ensure output is routed to one speaker at a time (mute the other in your audio chain).
#### Step 2: Take Measurements Using the Moving Mic Method with Pink Noise
Follow the HTGuide's moving mic approach for spatial averaging. This replaces traditional sweep measurements with pink noise for a more reliable room response, especially for full-range correction.
- Open the RTA window in REW (via the RTA button or Tools menu).
- Click the gear icon in the RTA window and configure:
- Mode: RTA (not Spectrum).
- FFT Length: 64k (for 48 kHz) for ~1.33-second measurements with 50% overlap.
- Averages: Unlimited (you'll stop manually after 30+ averages).
- Window: Hann or Rectangular.
- Other defaults: No peak hold, etc.
- Open the Generator window (Tools > Generator).
- Select: Pink Periodic Noise.
- Sequence Length: Match your FFT length (e.g., 128k).
- Level: Adjust to achieve 80-85 dB SPL in the room.
- Hold the mic like a wand (or use a boom arm) at ear height in the listening area. Orient it upward toward the ceiling to align with the mic calibration curve's intended response, minimizing body influence and high-frequency directivity issues (>5 kHz).
- Play the pink noise through one speaker (e.g., left channel only).
- Press "Record" in the RTA window.
- Slowly move the mic in 18-inch circles around the listening area (where your head would be). Avoid tapping the mic, jostling cables, or sudden movements—measurement mics are sensitive to handling noise.
- Let it average for 30-60 seconds (30+ averages) until the response stabilizes (consistent shape on the graph).
- Stop recording and press "Save Current" in the RTA window. This creates a measurement in the main "All SPL" tab, named something like "RTA 1".
- Repeat for the other speaker (e.g., right channel). You'll now have two measurements: one for left, one for right.
- Optional: Repeat the process 2-3 times per channel and average them in the "All SPL" tab (use "Average the Responses" button) for even better repeatability.
#### Step 3: Apply Mic Compensation and Variable Smoothing
Since RTA measurements don't automatically apply the mic calibration curve, perform arithmetic addition on the raw data first. Then apply smoothing to refine the response for filter creation without over-correcting highs (preserving stereo imaging).
- Load the mic calibration file as a separate measurement in REW (File > Import > Import Impulse Response, or use the cal file directly if already loaded in Preferences).
- Generate a minimum phase version of the mic calibration curve: Select it in the "All SPL" tab, right-click > "Generate Minimum Phase" (use default settings like Hilbert-Bode Transform, no tails extension).
- For the raw left channel measurement: Open "Trace Arithmetic" (Actions > Trace Arithmetic).
- Set A: Minimum phase mic calibration curve.
- Set B: Raw left measurement.
- Function: A + B (addition).
- Click "Generate". This creates a compensated measurement (rename to e.g., "Left Compensated").
- Repeat for the right raw measurement to get "Right Compensated".
- Now apply Var smoothing: In the "All SPL" tab, select your left compensated measurement.
- Go to the "Graph" menu > "Smoothing" > "Var Smoothing" (or use the controls panel).
- Apply Var smoothing: This uses 1/48 octave below 100 Hz (detailed for bass modes) and gradually widens to 1/3 octave at 10 kHz+ (smoother for highs).
- Repeat for the right compensated measurement.
- Why here? Arithmetic compensation corrects the raw data for the mic's response. Smoothing then reduces noise and comb-filtering artifacts from the moving mic method, making the data optimal for downstream steps like target fitting and inversion. Var is chosen over fixed 1/12 (Meridian) or psychoacoustic (HTGuide) for its adaptive nature, balancing low-end precision (18 Hz flatness) with high-end stability (20 kHz extension and imaging).
#### Step 4: Generate Minimum Phase Copies
Generate minimum phase versions right after smoothing. This converts the responses to minimum phase (removing excess phase/time-of-flight), essential for accurate FIR filter inversion.
- Select the smoothed left measurement in the "All SPL" tab.
- Switch to the "SPL & Phase" graph view.
- Right-click the measurement > "Generate Minimum Phase" (or use Actions > Generate Minimum Phase).
- In the pop-up: Use default settings (e.g., Hilbert-Bode Transform, no tails extension unless needed for very low frequencies).
- Click "Generate". This creates a new measurement with "-MP" suffix (e.g., "Left Smoothed-MP").
- Repeat for the right smoothed measurement.
- Delete the original (non-minimum-phase) measurements to declutter—they're no longer needed.
- Why here? Minimum phase ensures phase data is consistent and correctable, aligning with the Meridian guide's emphasis on minimum phase for filter generation. All subsequent curves (including the target) will also get minimum phase copies.
#### Step 5: Design the Target Curve
Create a target that promotes flatness from 18-20 kHz with a gentle house curve for balanced tone and imaging.
- Select one minimum phase measurement (e.g., left) and open the "EQ" window (Tools > EQ).
- In Target Settings:
- Speaker Type: Full Range.
- Target Level: Set to touch the lowest correctable dip above your speakers' natural roll-off (e.g., ~70 dB if measured at 80 dB). Ignore boundary nulls >9 dB—they can't be boosted digitally.
- LF Cutoff (HP): Place at your speakers' low-end roll-off (e.g., 18-40 Hz).
- HF Cutoff (LP): 19-21 kHz.
- LF Slope: 0.4-0.7 dB/oct (tilts down for bass weight). If bass sounds thin after correction, try a steeper LF slope (e.g., 0.8 dB/oct).
- HF Slope: 0.4-0.7 dB/oct (tilts down for natural highs; adjust for imaging—lower values brighten, higher darken). If highs feel harsh, increase the HF slope slightly (e.g., 0.7-0.9 dB/oct).
- Overall: Aim for 0.7-1.5 dB/oct total slope (as in HTGuide) to avoid "horizon flat" thinness or excessive bass. Experiment iteratively for your room—audition with reference tracks for clear, wide imaging.
- Click "Generate Measurement from Target Shape". This adds the target as a new measurement (e.g., rename to "Target").
- Generate a minimum phase copy of the target (as in Step 4). Delete the original non-minimum-phase target.
- Why minimum phase here? It prepares the target for inversion, ensuring phase-neutral correction.
#### Step 6: Perform Inversion to Create Filters
Invert each speaker's response against the target to generate the correction.
- Open the "Trace Arithmetic" window (Actions > Trace Arithmetic).
- Set A: Your minimum phase target.
- Set B: Left minimum phase measurement.
- Function: A/B (division).
- Max Gain: 0.0 (no boosts to avoid clipping or distortion in the filter).
- Click "Generate". Rename the result (e.g., "Left Inverted").
- Repeat for right: A = target, B = right minimum phase, generate "Right Inverted".
- Result: Flat lines at 0 dB where corrected, with no boosts—volume loss is normal (compensate later in Camilladsp or amp).
- Apply Var smoothing to the inverted curves: This reduces sharp peaks or artifacts in the inverted response for smoother filters, even though the inputs were smoothed, as arithmetic operations can introduce new variations.
#### Step 7: Export Filters for Camilladsp
- Go to File > Export > Export Filter Impulse Response as WAV.
- Settings:
- Format: 32-bit float (for precision).
- Sample Rates: Match your system (e.g., 44.1 kHz, 48 kHz, 96 kHz).
- Channels: Stereo—assign left inverted to left channel, right to right.
- Normalize: Off (to preserve the filter's gain structure for accurate correction).
- Minimum phase version.
- Limit to 22 kHz if needed (per Meridian).
- Save as a stereo WAV (e.g., "Stereo_FIR_Filter_48k.wav").
- REW generates files per sample rate.
#### Step 8: Load and Verify in Camilladsp
- In Camilladsp config: Add a convolution filter block, point to your WAV file.
- Compensate insertion loss: Add gain post-filter (monitor peaks to avoid clipping >0 dBFS).
- Re-measure with pink noise/moving mic to verify flatness (18-20 kHz) and listen for imaging on stereo tracks.
- Iterate: If imaging feels narrow, tweak target slopes and re-generate.
#### Troubleshooting
- **Noisy measurements**: Ensure a quiet room, check mic gain, or increase SPL slightly. Verify mic handling to avoid cable noise.
- **Clipping in Camilladsp**: Double-check gain compensation and monitor peaks in real-time. Reduce system volume if needed.
- **Poor imaging post-correction**: Revisit target slopes (e.g., reduce HF slope for brighter highs) or re-measure to confirm mic movement covered the listening area adequately. Check for room treatment imbalances.
- **Inconsistent results**: Refer to REW's help files or screenshots in the official documentation for window settings. If artifacts persist, try a different FFT length or more averages.
- **Other issues**: For visual guidance, consult REW's built-in help or online forums like AV NIRVANA for screenshots of key windows (e.g., RTA settings, Trace Arithmetic).
This process should yield accurate, imaging-friendly FIR filters rivaling pro tools. Total time: 1-2 hours once familiar; allow 3-4 hours for setup and learning REW if you're new to the process. If results vary, experiment with slopes or room treatments.