Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

IR Management

The IR (Impulse Response) Management window provides comprehensive tools for obtaining, processing, and managing impulse responses for each driver or measurement position in your system.

IR Management Window IR Management Window

Accessing IR Management

Loudspeaker Design Mode:

  • To open: Driver → Manage IR
  • Purpose: Import, capture, and process driver impulse responses at multiple angles

Room Calibration Mode:

  • To open: Measurements → Manage IR
  • Purpose: Capture IR at a given in room position

Window Layout

The top of the window holds the controls you use on every capture — the name field, the axis / angle selectors (Loudspeaker Design mode), and the 📁 Import, 🎤 Measure and ▶ Scan buttons.

Everything below is organized into collapsible sections, in this order:

  1. Measurement Settings — sweep parameters (duration, level, start / end frequency, …). Open by default. These configure the capture buttons above, not the list below. See Sweep Measurements.
  2. Measurements — the captured / imported angles, in two columns (horizontal, vertical), with per-measurement actions. Open by default. Not shown in Room Calibration mode.
  3. Near-field measurements (splicing) 🔒 — element status and the Open splicing wizard… button. Collapsed by default. Not shown in Room Calibration mode. See below.
  4. Measurement Calibration — per-driver microphone and soundcard calibration selection. Collapsed by default.
  5. IR Windowing — time window, adaptive window, delay compensation.
  6. Measurement Notes — free-text notes saved with the project. Collapsed by default.
  7. IR Information — read-out of the current measurement’s properties.

Driver/Measurement Name

Manually enter a descriptive name for the impulse response.

  • Label: “Driver Name” (Loudspeaker Design) or “Measurement Name” (Room Calibration)
  • Purpose: Identify IRs in project and exports
  • Persistence: Names are saved with the project
  • Optional: Empty names default to “Driver X” or “Measurement X”
  • Best practice: Use descriptive names like “Woofer_Left”, “Tweeter_RefXYZ”, “Position_Center”

Capturing IR

Button: 🎤 Measure

Triggers a measurement sweep with the configured parameters to capture the impulse response.

Features:

  • Exponential sine sweep generation with configurable parameters
  • Automatic harmonic distortion analysis (THD)
  • Timing reference support for multi-driver measurements

For complete documentation on sweep parameters, driver protection, measurement workflow, and best practices, see Sweep Measurements.


Off-Axis Measurements 🔒

Available in: Loudspeaker Design mode only License required: Valid LinFIR license needed for off-axis measurements

Overview

Off-axis measurements enable directivity analysis by capturing impulse responses at different horizontal and vertical angles. These measurements are essential for understanding speaker radiation patterns and optimizing crossover design for consistent off-axis response.

Measurement Organization

Measurements are displayed in two columns:

  • Horizontal column: Measurements with vertical angle = 0°, varying horizontal angle

    • Example: -90°, -60°, -30°, 0°, +30°, +60°, +90°
  • Vertical column: Measurements with horizontal angle = 0°, varying vertical angle

    • Example: -60°, -40°, -20°, 0°, +20°, +40°, +60°

On-axis reference: The (0°, 0°) measurement appears in both columns.

Axis Selection

Before importing or capturing an off-axis measurement, select the measurement axis:

  • Horizontal button: Measurements along horizontal axis (left/right)
  • Vertical button: Measurements along vertical axis (up/down)

The selected axis determines whether the angle applies to horizontal or vertical position.

Measurement Angle

Field: “Measurement angle” Range: -180° to +180° Indicates: Angle for next import or capture operation

How it works:

  • If Horizontal axis selected: angle applies to horizontal position (vertical = 0°)
  • If Vertical axis selected: angle applies to vertical position (horizontal = 0°)
  • The field shows which axis is active: “(horizontal)” or “(vertical)”

Restrictions:

  • Disabled until on-axis (0°, 0°) measurement exists
  • Requires valid LinFIR license
  • Must import on-axis measurement first before adding off-axis angles

Per-Measurement Actions

Each measurement in the table has two action buttons:

Export Button (⬇)

Click to export this specific measurement:

  1. Opens export format dialog
  2. Choose WAV or TXT format
  3. Option to include distortion metadata
  4. File is saved with angle suffix (e.g., Driver1_v0h30.wav, Driver1_v-15h0.wav)

Delete Button (❌)

Remove a measurement from the driver:

  • Off-axis measurements: Can be deleted freely
  • On-axis (0°, 0°) measurement: Can only be deleted if all off-axis measurements are removed first
    • This restriction exists because the on-axis measurement serves as the reference for all filter calculations

Tooltip guidance:

  • Enabled: “Delete measurement”
  • Disabled: “Delete all off-axis measurements first”

Export All Button

Button: ⬇ Export All Location: Above “Measurement angle” field Purpose: Export all measurements in a single operation

How it works:

  1. Click “⬇ Export All”
  2. Select output directory in file dialog
  3. All measurements are exported as WAV files
  4. Files use consistent naming: DriverName_v{vertical}h{horizontal}.wav

File naming examples:

  • On-axis: Driver 1_v0h0.wav
  • Horizontal +30°: Driver 1_v0h30.wav
  • Vertical -15°: Driver 1_v-15h0.wav
  • Horizontal -45°: Driver 1_v0h-45.wav

Format:

  • All files exported as WAV (32-bit float, mono)
  • Sample rate matches original measurement or importation sample rate
  • Distortion metadata option applies to all files
  • No individual format selection (always WAV)

Benefits:

  • Fast export of complete measurement sets
  • Consistent naming for re-import or external processing
  • Files can be re-imported via batch import with automatic angle detection

Use cases:

  • Archiving complete measurement sets
  • Sharing measurements with collaborators
  • Processing measurements in external tools (FIR Designer, Matlab, etc.)

Symmetry Tool

Button: ⚖ Symmetry Location: Below each column Purpose: Automatically duplicate measurements to opposite angles

How it works:

  • Horizontal Symmetry: If you have +30°, creates -30° by mirroring the measurement
  • Vertical Symmetry: If you have +20°, creates -20° by mirroring the measurement

Use case: Save measurement time by capturing one side and mirroring to the other side, assuming the speaker has symmetric radiation.

Rotation Center Correction

Location: Below the measurement lists (shown once the driver has off-axis measurements) Purpose: Rebuild the off-axis measurements as if the speaker had turned about its front baffle, when the turntable axis was behind the baffle or off to the side

A polar measurement is meant to turn the speaker about a reference point on its front baffle, so the microphone stays at the same distance from it at every angle. On most turntables the rotation axis is somewhere under the cabinet instead, so off axis the microphone is actually further away and sees the driver at a wider angle than the nominal one. With the baffle 150 mm in front of the axis and the microphone at 1 m, the 90° measurement is really taken 16 cm further away - 0.47 ms late and 1.3 dB low - and 97° off the driver’s axis; at 180° it arrives 0.88 ms late. These timing errors go straight into the off-axis sums of a multi-way speaker (and into the Listening Window, the predicted in-room response and the directivity index), since the drivers’ relative timing is what makes the lobes.

Rotation Center Correction Rotation Center Correction

Settings (in millimeters, one column per plane - the ℹ icon shows the drawing above):

SettingWhat to measure
DepthFrom the rotation axis to the front baffle. Positive when the axis is behind the baffle (the usual case).
LateralFrom the rotation axis to the reference axis - the line the microphone is on at 0°. Positive toward the + side.
Driver offsetFrom the reference axis to this driver’s acoustic center, positive toward the + side. Usually 0 in the horizontal plane; in the vertical plane, for example -200 mm for a woofer 20 cm below the tweeter (when positive vertical angles are up).
Mic distanceFrom the front baffle to the microphone at 0°.

The + side is the side the microphone faces at +90°. Check it once on your setup: if the microphone faces the other side at +90°, flip the signs of Lateral and Driver offset for that plane. The horizontal column applies to the measurements with a 0° vertical angle, the vertical column to those with a 0° horizontal angle - for the vertical plane, the speaker is laid on its side on the turntable, so its height becomes the “lateral” direction. Measurements off both planes are left as they are.

Apply placement to all drivers copies the depth, lateral offset and mic distance of both planes (and the on/off switch) to every driver; each driver keeps its own driver offset, which is the one value that differs between drivers. Copy/paste of driver parameters does the same.

How it works:

For each nominal angle, LinFIR rebuilds the response the microphone would have picked up on the ideal circle around the reference point:

  1. Geometry, per driver. From the offsets, the real microphone positions (the 0° position turned about the turntable axis) and the ideal ones are known, so is the direction and distance at which each measurement saw the driver, and the direction and distance each nominal angle needs. The driver offset matters: correcting a woofer 20 cm below the tweeter as if it were at the reference point would still leave 20-55 µs of timing error, about 20-56° of phase at 3 kHz.
  2. Distance: time of flight and level. Around the driver, changing the distance only delays and scales the sound: each measurement is moved to the target distance with a fractional delay of (target distance − measured distance) / 343 m/s and a gain of measured distance / target distance (1/r law).
  3. Angle: interpolation. The response in the needed direction is interpolated between the two measurements whose directions bracket it - after both were moved to the target distance, so they arrive together and blend without comb filtering. Beyond the measured range the nearest measurement is used; a full 360° set wraps around.

The on-axis measurement is the reference and is never changed. The correction applies after the IR time window and before resampling, so everything downstream (filters, sums, directivity graphs, Listening Window, DI) uses the corrected responses; the measurement files themselves are not modified, and turning the correction off restores the original responses. Symmetry copies are recognized and treated as the mirror image of the measurement they were copied from.

Requirements and limits:

  • The measurements must keep their relative timing (a fixed acoustic or loopback timing reference, the same for every angle - see Impulse Response Timing Requirements). Measurements whose delay was removed one by one can’t be corrected.
  • The driver is treated as a point source on the baffle: the acoustic center’s recess behind the baffle and the driver’s own near field are ignored. At 1 m and beyond this is accurate for typical drivers; very close measurements of large drivers are less so.
  • The correction moves the microphone, not the diffraction: when the microphone distance is small, the baffle diffraction seen at the real and ideal positions differ slightly, and that difference is not corrected.

Workflow for Off-Axis Measurements

  1. Import or capture on-axis measurement (0°, 0°) first
  2. Select axis (Horizontal or Vertical)
  3. Set measurement angle (e.g., +30°)
  4. Import file or capture measurement
  5. Repeat for additional angles
  6. Use Symmetry tool to fill opposite angles (optional)
  7. Enter the turntable offsets under the measurement lists if the rotation axis wasn’t at the front baffle (see Rotation Center Correction)
  8. Analyze directivity patterns in main application graphs

🔄 Automated workflow: If you have a motorized turntable (Pololu Tic or GRBL/Arduino), use the ▶ Scan button to rotate and measure all angles automatically. See Auto-Scan with a Rotation Table and Rotation Table Settings.


Near-Field / Far-Field Splicing 🔒

Available in: every mode except Room Calibration (Loudspeaker Design, Hypex FusionAmp) License required: Valid LinFIR license

Section: Collapsible header Near-field measurements (splicing), directly under the measurement list. Collapsed by default.

Splicing synthesizes a full-range anechoic response by combining near-field captures of each radiating element (driver, vent, passive radiator) with this driver’s far-field polar measurements — the Don Keele method. The near field covers the bass, where a gated far-field measurement can’t; the far field covers everything above the transition, with its real diffraction and directivity. Once applied, the spliced IR replaces the raw capture for every measured angle throughout LinFIR.

The section shows each near-field element’s capture status and the Open splicing wizard… button (enabled once an on-axis far-field measurement exists).

The wizard is documented on its own page: Near-Field / Far-Field Splicing — prerequisites, the seven steps, and step-by-step advice.

When a spliced IR is active, the IR Windowing section below applies the driver’s time window on top of the spliced (anechoic) response rather than the raw capture — a note in that section flags this.


Import from File

Load impulse responses from external files.

LinFIR works internally with impulse responses (IRs). All imported files are ultimately converted to an IR before being used for filter design. Two import paths exist:

  • Direct IR formats (WAV, TXT, TMD): Files already contain time-domain impulse response samples. They are resampled to the project sample rate and loaded directly.
  • Frequency-domain format (FRD): Files contain frequency response data (magnitude + phase). LinFIR reconstructs an impulse response via the FRD to IR Converter window before proceeding.

All the measurements of a driver share one sample rate. A file, an FRD conversion or a capture at a different rate than the driver’s existing measurements is refused with a message: import or re-measure it at the driver’s rate, or start a new driver. Files containing NaN or infinite samples are refused as well.

Supported Formats

WAV Files

  • Channels: Mono or stereo (left channel used for stereo files)
  • Bit depth: 16-bit, 24-bit, or 32-bit PCM
  • Automatic resampling: The IR is resampled to match the project sample rate for processing. The original samples are preserved internally at their native rate, so changing the project sample rate later does not cause quality loss from successive resamplings. This is handled transparently in the background.

With distortion metadata:

  • If WAV contains custom ‘dist’ chunk (exported from LinFIR with “Include dist.” option)
  • Enables THD (Total Harmonic Distortion) computation

Without distortion metadata:

  • Standard WAV import
  • Only practical/cropped IR available
  • THD computation not available

TXT Files

Plain text files containing impulse response samples, one value per line or space/comma-separated. LinFIR auto-detects this format.

Note: .txt files containing FRD-formatted data (3 columns: frequency, magnitude, phase) are automatically detected and processed as FRD files (see FRD Files section below).

TMD Files

MATAA (Mat’s Audio Analyzer) time-domain data format. Each line encodes a sample with its timestamp, allowing the sample rate to be derived from the data itself.

  • Format: Two-column text file (time in seconds, amplitude)
  • Comments: Lines starting with * are metadata/comments
  • Sample rate: Inferred from the time intervals between samples. If the result is within 1% of a standard rate (44.1, 48, 88.2, 96, 176.4, 192, 384 kHz, etc.), LinFIR snaps to that exact rate to correct for the systematic sample rate error introduced by limited timestamp precision.
  • Timestamp precision: Timestamps must have enough decimal places for accurate sample rate inference (e.g. 9 digits for 96 kHz). Insufficient precision can produce a slightly off sample rate that will still be corrected if it falls within the 1% snapping tolerance.
  • Precision: Full floating-point precision (no bit-depth limitations)

Example TMD file:

* TMD data written by MATAA
* Measurement description
0.000000000	0.000000
0.000020833	0.125000
0.000041667	0.850000
...

CLIO Files

Time-domain impulse response exports from CLIO (Audiomatica) measurement software. These are plain .txt files with three columns.

  • Format: Text file with a header row followed by data rows
    • Column 1 — Time[s]: sample timestamp in seconds
    • Column 2 — Real[Pa]: signal amplitude (used as the IR)
    • Column 3 — Imag[Pa]: imaginary part (ignored by LinFIR)
  • Header line: the first non-empty line must start with Time (case-insensitive)
  • Sample rate: inferred from the time intervals between samples, then snapped to the nearest standard rate within 1% tolerance (same algorithm as TMD)
  • Precision: full floating-point precision

Example CLIO file:

Time[s]         Real[Pa]        Imag[Pa]
0.000000E+00    -4.790139E-03   -4.583853E-10
2.083333E-05     4.526122E-03   -8.076313E-10
4.166667E-05     3.454284E-04    1.007265E-10
...

FRD Files

Frequency response data files (commonly exported by REW, VituixCAD, or provided by manufacturers). These files do not contain an impulse response directly—LinFIR reconstructs one via the FRD to IR Converter window (see dedicated section below).

Format:

  • 3 columns per line: Frequency (Hz), Magnitude (dB), Phase (degrees)
  • Text-based, space or tab delimited
  • Can use either .frd extension or .txt extension (auto-detected)

Processing:

  • Automatic interpolation to required frequency points using PCHIP (Piecewise Cubic Hermite Interpolating Polynomial)
  • Configurable magnitude extrapolation for DC and high-frequency regions
  • Phase handling with group delay compensation

Extrapolation Modes:

When importing FRD files, LinFIR opens the FRD to IR Converter window with the following extrapolation controls:

  • DC Extrapolation: Controls how magnitude is extended below the lowest measured frequency

    • Constant: Flat extrapolation (holds the lowest measured value)
    • Roll-off: Applies a 12 dB/octave high-pass roll-off for realistic loudspeaker behavior
    • Default: Roll-off
  • High Frequency Extrapolation: Controls how magnitude is extended above the highest measured frequency toward Nyquist

    • Constant: Flat extrapolation (holds the highest measured value)
    • Roll-off: Applies a 12 dB/octave low-pass roll-off, automatically compensates for upward slopes
    • Default: Constant

Benefits of Roll-off mode:

  • More realistic impulse responses from incomplete FRD data
  • DC roll-off mimics natural loudspeaker low-frequency limitations
  • HF roll-off prevents artifacts from measurements that don’t extend to Nyquist
  • Adaptive: compensates for incorrect slope trends in measured data

Important notes:

  • FRD files are sparse (often logarithmically spaced frequency points)
  • Requires complex interpolation, potentially introducing artifacts
  • Generally do not contain the time of flight required to properly time align drivers
  • Recommendation: Prefer importing impulse responses (WAV) whenever possible

Automatic Noise Truncation

Once an impulse response has been imported or reconstructed (from any format), LinFIR automatically truncates it to optimize file length and processing performance. This is an internal post-processing step applied uniformly to all IR data before it is stored in the project.

Truncation Algorithm:

  1. Peak detection: Locates the main impulse peak (maximum absolute value in the IR)
  2. 5-second limit: Truncates the IR to 5 seconds maximum after the peak
    • Corresponds to approximately 1.7 km acoustic distance
    • Sufficient for capturing full decay in most practical scenarios
  3. Noise threshold: Removes trailing samples below 0.1% of peak amplitude
    • Adaptive threshold based on the actual signal level
    • Eliminates noise floor without affecting useful signal
  4. Minimum duration: Always preserves at least 1.0 seconds of the IR
    • Ensures sufficient data for low-frequency analysis

Benefits:

  • Reduces processing load for FFT operations and convolutions
  • Decreases file sizes for project saving and export
  • Removes unnecessary noise floor that doesn’t contribute to filter design

What gets removed:

  • Excessive silence beyond 5 seconds after the main impulse
  • Noise floor below the 0.1% threshold (≈ -60 dB relative to peak)
  • Applies to both anechoic and in-room measurements

What is preserved:

  • The complete main impulse and initial decay
  • At least 1.0 seconds of IR data regardless of noise level
  • All frequency content relevant for crossover design
  • Sufficient time-domain information for phase analysis

Impulse Response Timing Requirements

Peak delay limit: LinFIR rejects impulse responses where the main peak is located more than 200 ms after the start of the file.

Why this limit exists:

LinFIR performs extensive signal processing operations—FFT transformations, convolutions, resampling, and real-time filter preview—that must remain responsive. These operations scale with impulse response length, and excessive zero padding before the actual signal significantly impacts performance without adding useful information.

Physical context:

A 200 ms delay corresponds to approximately 68 meters of acoustic travel distance. In practical loudspeaker measurement and room calibration scenarios, such excessive delays indicate that no timing reference method was used during capture (loopback trigger, electrical reference, or pre-alignment in the measurement software).

Impact on workflow:

Without proper timing reference, relative time alignment between drivers becomes unreliable, as the arbitrary delays vary unpredictably between measurements. This compromises crossover phase coherence and summation accuracy—core functions of LinFIR.

Best practice:

When capturing impulse responses, use measurement software that provides:

  • Loopback triggering (audio interface output → input reference)
  • Electrical reference triggering (synchronized start)
  • Pre-alignment features that position the IR peak near the beginning of the recording

These methods ensure minimal file length while preserving the precise time-of-flight information needed for accurate driver alignment and filter design.

If your measurement contains a valid signal buried in initial silence, pre-process the file to remove leading zeros before importing into LinFIR.

Import Signal Level Check

When importing a WAV/TXT impulse response that wasn’t captured by LinFIR’s own sweep engine, the frequency response level is checked: if its peak magnitude is below -25 dB, that’s usually a sign of a poor signal-to-noise ratio in the original measurement.

What happens:

  • An always-on-top Low Signal Level Warning dialog appears, offering Keep Anyway or Discard
  • Keep Anyway imports the file as usual
  • Discard cancels the import — nothing is stored, and you can re-import a different file
  • The file is not imported until you answer the dialog

Why this matters: correction filter quality strongly depends on measurement quality. A low signal-to-noise ratio means noisier data, which can produce inaccurate correction filters and skew phase visualization — see Quality Validation for the same check applied to LinFIR’s own captures.

💡 Settings → General → Always keep low-SNR measurements skips this dialog and imports low-level files automatically, with only a toast as a reminder. See General Settings.

This check only applies to files not captured via LinFIR’s own sweep engine — an IR that already carries LinFIR’s own capture metadata skips it, since its quality was already validated at capture time. It’s independent of the peak delay check above: a file can fail either, both, or neither.

Import Workflow

  1. Click “📁 Import” button
  2. Select WAV, TXT or FRD file
  3. File is automatically detected and processed:
    • WAV: Resampled to project sample rate, metadata extracted
    • TXT (impulse samples): Either auto-imported (with metadata) or user prompted for sample rate (the prompt proposes the driver’s sample rate)
    • TXT/FRD (frequency data): Opens FRD to IR Converter window
  4. IR appears in impulse response graph
  5. Manually enter IR name in text field
  6. Apply windowing if necessary (see Time Windowing section)

Special case for FRD files: When importing .frd or FRD-formatted .txt files, the FRD to IR Converter window opens automatically. See the dedicated section below for details.

⚠️ Display Mode Check: If the imported impulse response does not appear in the graphs, verify that Drivers/Measurements display mode is selected in the graph toolbar (not FIR, IIR, or FIR+IIR modes which only show filter responses). The graph title and legend clearly indicate which mode is active.


Batch Import of Multiple Measurements

Available in: Loudspeaker Design mode (off-axis measurements) License required: Valid LinFIR license needed for off-axis measurements

Overview

Batch import enables importing multiple measurement files simultaneously with automatic angle detection from filenames. This significantly speeds up the workflow when importing multi-angle measurement sets from tools like VituixCAD, ARTA, or REW.

Filename Angle Parsing

LinFIR automatically detects measurement angles from filenames using conventions from other measurement software.

Important: Angle patterns must be at the end of the filename (before extension). If the axis marker (h/v) has a prefix format (like h30), it must not be preceded by a letter. This prevents false detection in cases like “Driverh30” while allowing “SIG270-4h30” or “Driver 2_h30”.

Format with single axis specification (H = Horizontal, V = Vertical):

  • H30, h30, H-20 → Horizontal axis, angles: +30°, +30°, -20°
  • V15, v15, V-45 → Vertical axis, angles: +15°, +15°, -45°
  • 30H, 30h, -20H → Horizontal axis, angles: +30°, +30°, -20°
  • 15V, 15v, -45V → Vertical axis, angles: +15°, +15°, -45°

Format without axis (@ marker):

  • @30, @-20, Tweeter@15 → Angle detected, axis must be specified by user
  • When files use @ notation, a dialog prompts you to select Horizontal or Vertical axis

MF 2D format (both H and V in filename):

  • v0h30, V0H30, v000h030 → Horizontal +30° (horizontal plane: V=0)
  • v30h0, V30H0, v030h000 → Vertical +30° (vertical plane: H=0)
  • h30v0, H30V0, h030v000 → Horizontal +30° (order-independent)
  • h0v30, H0V30, h00v030 → Vertical +30° (order-independent)
  • v0h0, V0H0, v000h000 → On-axis (0°, 0°)
  • v30h50 → Rejected (out-of-plane measurement)

Note: Leading zeros are supported (e.g., 030 = 30)

Note on MF 2D format: Only measurements in a plane are accepted (one angle must be 0). Files with both H and V non-zero are ignored as they represent oblique measurements that can’t be represented in LinFIR’s horizontal/vertical coordinate system. The order of h/v doesn’t matter.

Examples of valid filenames:

  • Tweeter_h0.wav → On-axis (0°, 0°)
  • Tweeter_h30.wav → Horizontal +30°
  • Tweeter_v-20.frd → Vertical -20°
  • Woofer@15.txt → Angle +15° (user selects axis)
  • measurement_30h.wav → Horizontal +30°
  • Left_-45v.frd → Vertical -45°
  • Driver_v0h45.frd → Horizontal +45° (MF 2D format)
  • Tweeter_v20h0.txt → Vertical +20° (MF 2D format)
  • SIG270-4h30.frd → Horizontal +30° (number before axis letter is OK)
  • SIG270-4v0h30.frd → Horizontal +30° (MF 2D with number prefix)

Examples of rejected filenames:

  • Driverh30.wav → Rejected (letter “r” directly before “h”)
  • Testh30v0.frd → Rejected (letter “t” directly before “h”)

Files without angle markers:

  • A single file goes to the angle currently selected in the window’s angle controls, or to the on-axis (0°, 0°) slot while the driver has no on-axis measurement yet
  • In a multi-file batch, it is imported as the on-axis (0°, 0°) measurement

Batch Import Workflow

1. Multi-File Selection

  1. Click “📁 Import” button
  2. Select multiple files in the file dialog (Ctrl+Click or Shift+Click)
  3. Click Open

2. Automatic Processing

LinFIR automatically analyzes all selected files:

If all files have explicit axis (H/V in filename):

  • Files are processed immediately
  • Each file imported at the angle specified in its filename
  • No user interaction needed

If files use @ notation (ambiguous axis):

  • Axis Selection Dialog appears
  • Select either Horizontal or Vertical axis
  • Click Continue
  • Selected axis applies to all @ files in the batch
  • Closing the dialog cancels the whole batch import

3. FRD Converter Integration

If the batch includes FRD files:

  1. LinFIR opens the FRD Converter for the on-axis FRD file (if present)
  2. Configure conversion parameters (sample rate, delay, extrapolation modes)
  3. Click “Use This Impulse Response”
  4. All remaining FRD files automatically use the same parameters
  5. No need to configure each file individually

How it works:

  • Parameters are configured using the on-axis measurement (0°, 0°)
  • Same delay and extrapolation settings applied to all off-axis FRD files
  • Ensures consistent conversion across the measurement set

⚠️ Important Limitation - Missing Relative Time Delays:

FRD files contain frequency response data only (magnitude and phase) without encoding the relative time delays between different measurement angles. When importing multiple FRD files at different angles, all files use the same delay parameter configured on the on-axis measurement.

Why this matters for off-axis measurements:

In real loudspeakers, off-axis measurements have different acoustic path lengths and interference patterns compared to on-axis:

  • Sound from tweeter and woofer arrives at different relative times depending on measurement angle
  • These time differences create frequency-dependent interference (comb filtering)
  • Proper time alignment between drivers varies with angle

Consequence:

  • Batch-imported FRD files will have identical relative timing at all angles
  • Phase relationships between drivers won’t reflect actual acoustic behavior
  • Directivity analysis and crossover optimization will be inaccurate
  • Simulated off-axis response won’t match real-world interference patterns

Recommendation:

  • Prefer WAV impulse response files for multi-angle measurements whenever possible
  • WAV files preserve the actual time-of-flight at each angle
  • Only use FRD batch import for preliminary analysis or when WAV files aren’t available
  • If using FRD files, be aware that off-axis crossover behavior won’t be accurately modeled

Valid use cases for batch FRD import:

  • Quick magnitude response comparison across angles
  • Preliminary directivity visualization
  • Single-driver systems where relative timing isn’t critical
  • When no impulse response measurements are available

Practical Example

Scenario: You have a set of horizontal measurements exported from REW:

Tweeter_h0.frd
Tweeter_h15.frd
Tweeter_h30.frd
Tweeter_h45.frd
Tweeter_h60.frd

Workflow:

  1. Select all 5 files in file dialog
  2. FRD Converter opens for Tweeter_H0.frd (on-axis)
  3. Set sample rate to 96000 Hz, delay to 5 ms
  4. Choose DC extrapolation: Roll-off
  5. Click “Use This Impulse Response”
  6. Files H15, H30, H45, H60 automatically converted with same settings
  7. All 5 measurements appear in the horizontal column

Result:

  • All angles have same delay (5 ms) configured on on-axis measurement
  • ⚠️ Relative time-of-flight differences between angles are lost
  • For accurate crossover modeling, prefer WAV impulse response files

Limitations

  • Batch import only works with files having consistent format (all WAV, all FRD, or mixed)
  • Files must follow supported angle naming conventions
  • On-axis measurement (0°, 0°) should be included when importing FRD files for optimal parameter configuration
  • If mixing WAV and FRD formats, FRD files must include on-axis or parameters will use defaults
  • FRD files don’t preserve relative time delays between angles—prefer WAV files for multi-angle measurements

Tips

Consistent naming convention:

  • Use descriptive base names: Tweeter_h30.wav instead of just h30.wav
  • Include driver name in filename for easier identification
  • Use lowercase h/v for consistency with LinFIR exports
  • MF 2D format is order-independent: v0h30 = h30v0

Large measurement sets:

  • Import horizontal and vertical measurements separately if you have both
  • Use Symmetry tool after batch import to fill missing opposite angles
  • Verify measurement table after import to ensure correct angle assignment

FRD files:

  • ⚠️ Not recommended for off-axis measurements (missing relative time delays)
  • Always include on-axis (H0 or V0) measurement in batch for parameter reference
  • Configure extrapolation modes carefully for first file—settings propagate to all
  • Verify impulse response quality after batch conversion
  • Consider this a preliminary workflow—prefer WAV files for accurate directivity analysis

Recommended format priority:

  1. WAV files: Best option—preserves all timing information
  2. TXT with metadata: Acceptable if exported from LinFIR
  3. FRD files: Only for magnitude analysis—timing not preserved

FRD to IR Converter

When importing FRD files, LinFIR opens a dedicated conversion window with advanced tools for interpolation, visualization, and quality assessment.

FRD to IR Converter Window FRD to IR Converter Window

Overview

The FRD to IR Converter transforms sparse frequency-domain data into time-domain impulse responses using sophisticated interpolation and extrapolation techniques. It provides real-time visualization and quality metrics to help you assess the conversion quality.

Conversion Parameters

Sample Rate

Options: 44.1 kHz, 48 kHz, 88.2 kHz, 96 kHz, 176.4 kHz, 192 kHz Default: 96 kHz

Target sampling frequency for the resulting impulse response.

Considerations:

  • Higher sample rates provide better frequency resolution
  • Must match or exceed your project’s sample rate
  • FRD data is interpolated to fill all frequency bins from DC up to Nyquist

Delay Compensation

Range: 0.0 to 100.0 ms Default: 5.0 ms

Time offset applied to the impulse response to allow for pre-ringing visualization and processing.

Purpose:

  • Provides time buffer before the main impulse
  • Essential when FRD data contains non-minimum phase characteristics
  • Allows visualization of pre-ringing artifacts

Warning indicator: If pre-ringing duration exceeds the delay setting, a warning appears suggesting either:

  • Increase delay to accommodate pre-ringing
  • Enable Minimum Phase transformation

Minimum Phase Transformation

Default: Disabled

Applies Hilbert transform to convert the impulse response to minimum phase, eliminating all pre-ringing.

When to use:

  • FRD data shows significant pre-ringing (> 5% energy before peak)
  • Phase data is corrupted, smoothed, or contains wrapping errors
  • You need a causal, physically realizable impulse response
  • Time-domain alignment is critical

Effects:

  • Removes all energy before the main peak
  • Preserves magnitude response
  • Changes phase response to minimum phase equivalent
  • Results in a causal system (no pre-ringing)

Note: Pre-ringing in FRD-derived impulses is often an artifact of measurement or file creation, not a physical characteristic of the device.

DC Extrapolation

Modes: Constant, Roll-off Default: Roll-off

Controls how magnitude is extended below the lowest measured frequency toward DC (0 Hz).

Constant mode:

  • Flat extrapolation using the lowest measured value
  • Use when FRD data already reaches very low frequencies

Roll-off mode (recommended):

  • Applies 12 dB/octave high-pass characteristic
  • Mimics natural loudspeaker low-frequency roll-off
  • More physically realistic for incomplete low-frequency data

High Frequency Extrapolation

Modes: Constant, Roll-off Default: Constant

Controls how magnitude is extended above the highest measured frequency toward Nyquist.

Constant mode (recommended):

  • Flat extrapolation using the highest measured value
  • Maintains adequate signal level to Nyquist
  • Minimizes noise amplification

Roll-off mode:

  • Applies 12 dB/octave low-pass characteristic
  • Automatically compensates for upward slope trends
  • Use when FRD data shows unrealistic high-frequency behavior

Driver Offset Compensation

The FRD to IR Converter provides Driver Offset controls to compensate for the physical displacement of the driver relative to the reference point (typically the front baffle center or another driver).

Parameters:

  • X (Horizontal): Driver offset in the horizontal direction, in millimeters, positive toward positive horizontal angles (to the right when facing the baffle, as in the diagram below)
  • Y (Vertical): Driver offset in the vertical direction, in millimeters, positive up, toward positive vertical angles
  • Located below the Extrapolation controls in the converter window

If your measurements count positive horizontal angles toward the left when facing the baffle, enter X with the opposite sign: what matters is that a positive X is on the side the microphone is on at positive angles.

Coordinate System and Geometry:

Driver Offset Coordinate System

Reference Point (Origin):

The reference point (X=0, Y=0) represents the desired acoustic axis of the loudspeaker system. In the diagram example:

  • The tweeter is positioned at the origin (0, 0) — it defines the acoustic axis
  • The woofer is offset by -200 mm vertically (0, -200)

Note for designers: The choice of origin is not necessarily the center of a driver — it’s an engineering decision. You could choose:

  • The acoustic center of a specific driver (as shown in the example)
  • A point between drivers (e.g., midway between tweeter and woofer)
  • Any other reference point that makes sense for your design goals

What matters is consistency: all driver offsets are measured relative to this chosen origin.

Important: For off-axis measurements, only a driver with offset (woofer in the example) will have a geometric delay added or subtracted. A driver at the origin (tweeter in the example) has no delay added or subtracted for off-axis angles — it remains the reference. This delay difference is then used to calculate interference patterns between drivers at off-axis angles.

How it works:

The driver offset introduces a geometric time-of-flight difference for off-axis measurements, calculated with the far-field approximation (parallel rays): the offset’s component along the direction of the microphone, divided by the speed of sound.

$$\Delta t = -\frac{x \cdot \sin\theta \cdot \cos\varphi + y \cdot \sin\varphi}{c}$$

Where:

  • \(x\) = horizontal driver offset (mm), positive toward positive horizontal angles
  • \(y\) = vertical driver offset (mm), positive up
  • \(\theta\) = horizontal measurement angle (degrees)
  • \(\varphi\) = vertical measurement angle (degrees), positive up
  • \(c\) = speed of sound ≈ 343,000 mm/s

The sign matters: a driver on the same side of the reference point as the microphone is closer to it, so its sound arrives earlier (negative \(\Delta t\)); a driver on the opposite side is farther and arrives later. This is what makes the off-axis lobing of a multi-way speaker asymmetric between, say, above and below the axis.

In practice (measurements in a single plane):

Since LinFIR only supports measurements in the horizontal plane (\(\theta \neq 0\), \(\varphi = 0\)) or vertical plane (\(\theta = 0\), \(\varphi \neq 0\)), the formula simplifies:

  • Horizontal plane: \(\Delta t = -\frac{x \cdot \sin\theta}{c}\) (only x offset matters)
  • Vertical plane: \(\Delta t = -\frac{y \cdot \sin\varphi}{c}\) (only y offset matters)

This geometric delay is added to the user-configured Delay before converting the FRD data to an impulse response. Since it can be negative, the Delay must be at least the largest advance the offset can cause, \(\sqrt{x^2 + y^2} / c\) (0.58 ms for a 200 mm offset): otherwise the angles where the driver is closest would need to start before 0 ms: their delay is clamped at 0 ms and their timing is then wrong. A ⚠ icon next to the offsets warns when the Delay is too short. The default 5 ms Delay covers offsets up to 1.7 m.

Example:

  • Tweeter at origin (0, 0): no geometric delay applied at any angle
  • Woofer offset: X = 0 mm, Y = -200 mm (200 mm below the tweeter)
  • Measurement at vertical -30° (microphone 30° below the axis, on the woofer’s side): the woofer is closer, \(\Delta t = -200 \times \sin(30°)/343000 \approx -0.291\) ms - it arrives 0.291 ms earlier
  • Measurement at vertical +30° (microphone above the axis): the woofer is farther, \(\Delta t \approx +0.291\) ms - it arrives 0.291 ms later
  • This delay difference creates the correct interference pattern between tweeter and woofer on both sides of the axis

Purpose and Far-Field Approximation:

⚠️ Purpose: Driver offsets are used to predict far-field interference patterns between drivers when the listener is in the far field (listening distance >> driver spacing).

Key insight: Since typical FRD data has its phase recalculated (constant delay removed), the original measurement conditions don’t matter. What matters is modeling the acoustic geometry at the listening position.

When to use driver offsets:

  • Listening distance ≥ 10× driver spacing (far-field condition for the listener)
  • Example: For drivers spaced 200 mm apart, listener at ≥ 2 meters
  • Typical home listening (2-4m) and studio monitoring (2-3m) scenarios
  • Predicting directivity and off-axis response in real-world use

Geometric assumption:

The formula assumes acoustic rays are parallel at the listening position:

  • Valid when listener distance >> driver spacing
  • Path difference depends only on driver offset and angle

Near-field listening considerations:

For close listening distances (< 1m), the parallel ray approximation becomes less accurate for the direct sound, and the predicted response will deviate more from reality as you get closer to the drivers.

However, the approximation remains valid for the reflected sound field since walls, floor, and ceiling are typically far enough that the acoustic path length is much larger than driver spacing. This is important because off-axis directivity affects how sound interacts with room boundaries.

Best practice:

  • Use driver offsets in most scenarios, including near-field listening
  • The approximation is excellent for far-field listening (≥ 2m)
  • For near-field use (< 1m), understand that direct sound predictions will be approximate, but reflected field modeling remains valid
  • Leaving offsets at 0 mm corresponds to a coaxial driver configuration (all drivers at the same point)

Display Parameters

These parameters control visualization only and do not affect the conversion.

IR Start / Stop Time

Range: 0.0 ms to impulse duration Purpose: Zoom into specific time region of the impulse response graph

Useful for examining:

  • Pre-ringing characteristics
  • Main peak detail

Frequency Min / Max

Range: 1 Hz to 48000 Hz Purpose: Set frequency range for magnitude and phase graphs

Allows focusing on:

  • Specific frequency bands of interest
  • Problem areas in the response
  • Comparison between original and interpolated data

Wrap Phase

Default: Disabled

Toggles between wrapped (-180° to +180°) and unwrapped phase display.

Wrapped:

  • Phase limited to -180° to +180° range
  • Shows discontinuities at ±180° boundaries
  • Familiar format for some users

Unwrapped:

  • Continuous phase (can exceed ±180°)
  • Shows true phase accumulation
  • Better for assessing group delay trends

Remove Delay Phase

Default: Disabled

Removes the linear phase component corresponding to the delay setting.

When enabled:

  • Subtracts linear phase = -360° × f × delay
  • Reveals underlying phase structure
  • Useful for comparing final phase response with the original one

Data Quality Assessment

The converter displays comprehensive quality metrics to help you evaluate the FRD data.

Coverage Metric

Format: “X / Y frequency points (Z% coverage)”

  • X: Number of frequency points in FRD file (within 0 Hz to Nyquist)
  • Y: Expected number of points for complete FFT coverage
  • Z: Coverage percentage = (X / Y) × 100

Quality indicators:

  • ✅ Good (≥ 50%): Green - Sufficient data density
  • ⚠️ Moderate (20-50%): Yellow - Acceptable but sparse
  • ❌ Low (< 20%): Red - Very sparse, heavy interpolation required

FFT bin calculation: Based on sample rate and FFT size (4× next power of 2)

Info Button - Detailed Diagnostics

Click the ℹ Info button to open the Data Quality Information window with detailed analysis.

Missing DC (0 Hz):

  • Impact: Low-frequency extrapolation required
  • Consequence: Uncertainty in bass response below lowest measured frequency
  • Solution: Use Roll-off extrapolation for DC

Missing Nyquist Data:

  • Impact: High-frequency extrapolation required
  • Consequence: Uncertainty in high-frequency response
  • Recommended: FRD should extend to at least Nyquist frequency

Sparse Frequency Data:

  • Threshold: < 50% coverage
  • Impact: Heavy interpolation between measured points
  • Risk: Artifacts from PCHIP interpolation of widely-spaced points
  • Note: Shows exact percentage of missing data points

Pre-ringing Detection:

Analyzed automatically after conversion. Three severity levels:

  • Minor (0.1% - 0.5% energy before peak):

    • Blue indicator
    • May indicate slight phase smoothing or measurement artifacts
    • Usually acceptable for most applications
  • Moderate (0.5% - 1.0% energy before peak):

    • Yellow/Orange warning
    • Phase data likely smoothed or contains wrapping errors
    • Consider minimum phase transformation
  • Significant (≥ 1.0% energy before peak):

    • Red warning
    • Severe phase corruption or non-physical characteristics
    • Strongly recommended: Enable Minimum Phase transformation
    • Will affect transient response and phase correction accuracy

Pre-ring duration: Time span from first significant energy to main peak

Physical interpretation: Real loudspeakers cannot produce energy before the stimulus arrives. Pre-ringing in FRD files indicates:

  • Phase data smoothing in measurement software
  • Phase wrapping/unwrapping errors
  • File export artifacts
  • Non-minimum phase processing applied to data

Impact Warnings

The Data Quality Information window provides context on how issues affect the conversion:

Missing Data Effects:

  • Artifacts in reconstructed impulse response
  • Estimated information through interpolation/extrapolation
  • Final impulse may not fully represent original system

Best Practices for FRD Files:

  • Include DC (0 Hz) measurement point
  • Extend data to at least Nyquist frequency
  • Aim for > 50% frequency coverage
  • Prefer linear frequency spacing over logarithmic
  • Avoid phase smoothing in export settings

Time-Domain Preference:

The converter emphasizes: When possible, import impulse responses (WAV files) instead of FRD.

Advantages of time-domain data:

  • No interpolation artifacts
  • Preserves time-of-flight information (with proper timing reference)
  • Essential for proper driver alignment in crossover design
  • Natural representation of system behavior

FRD limitations for crossover design:

  • Often lacks time-of-flight data
  • Driver motors may not be coplanar
  • Diaphragm geometry affects acoustic center
  • Horn loading adds group delay
  • Relative delays between drivers are essential

Visualization Graphs

The converter displays three synchronized graphs:

1. FRD Data (Original + Interpolated):

  • Left: Magnitude response
  • Right: Phase response
  • Red curve: Original FRD measurements
  • Dashed blue curve: PCHIP interpolated curve

2. Impulse Response:

  • Reconstructed time-domain impulse
  • Zoom using IR Start/Stop controls
  • Shows pre-ringing and overall IR structure

3. Reconstructed Frequency Response:

  • Left: Magnitude computed from impulse via FFT
  • Right: Phase computed from impulse via FFT
  • Validation: Should closely match interpolated FRD (with Remove Delay Phase button enabled)
  • Differences indicate reconstruction issues

Workflow

  1. Import FRD file - Converter window opens automatically
  2. Review quality metrics - Check coverage and warnings
  3. Adjust extrapolation - Set DC and HF modes as needed
  4. Set sample rate - Match or exceed project sample rate
  5. Configure delay - Ensure adequate pre-ringing buffer
  6. Enable minimum phase - If pre-ringing > 1% or phase corrupted
  7. Inspect graphs - Verify interpolation and reconstruction quality
  8. Click “Use This Impulse Response” - Apply to selected measurement angle

The converted impulse is automatically stored in the driver’s measurement at the specified horizontal/vertical angle.


Measurement Calibration

Microphone Calibration Selection Microphone Calibration Selection

Correct this driver’s measurements for the measurement chain itself: a microphone calibration and a soundcard calibration, selected independently (either, both, or none).

Calibration management:

  • Calibration libraries are managed in Settings → Measurement Calibration (see Measurement Calibration)
  • A default calibration of each kind can be set for new drivers
  • Each driver/measurement can use different calibrations or none at all

Microphone

Compensates for:

  • Frequency response deviation from ideal flat response
  • Sensitivity factor (dB conversion from microphone output to SPL)

Options:

  • None: No calibration applied (use for reference microphones or pre-calibrated measurements)
  • [Calibration file names]: All imported calibration files from Settings → Measurement Calibration

Soundcard

Compensates for the audio interface’s own response - magnitude and phase - measured through a loopback cable (see Measurement Calibration → Soundcard).

Options:

  • None: No soundcard correction
  • [Calibration names]: All calibrations measured in Settings → Measurement Calibration. Calibrations measured at another sample rate than this driver’s measurements are greyed out: a soundcard calibration only corrects measurements captured at its own sample rate. If the selected one doesn’t match, a warning is shown and it is not applied.

Behavior

  • Selection is saved with the project file, calibration data included
  • Changing the selection immediately recomputes the driver’s measurements and all filter responses

How Calibration is Applied

Processing pipeline:

  1. Calibration corrections applied (if selected) to each measurement’s impulse response, or to its spliced response - soundcard first, then microphone:
    • Soundcard: regularized inverse of the loopback response, timing preserved
    • Microphone: minimum-phase FIR filter created from frequency response data, sensitivity factor (dB) applied as gain adjustment, frequencies below 5 Hz filtered out before processing
  2. Measurement windowed (see Time Windowing)
  3. Corrected IR used for all subsequent filtering (crossovers, correction filters, etc.)

Phase behavior:

  • Microphone correction uses minimum-phase reconstruction, affecting both magnitude and phase - physically accurate for measurement microphones, which exhibit mainly minimum-phase behavior
  • Soundcard correction uses the interface’s measured phase

Real-time updates:

  • Corrections are computed once per measurement and reused when you change the windowing parameters
  • Filter responses update automatically when you change the calibration selection

When to Use Calibrations

Apply a microphone calibration when:

  • Using consumer or measurement microphones with non-flat response
  • You have calibration data from the manufacturer or third-party calibration service
  • Measurements were taken with the same microphone used for the calibration file

Apply a soundcard calibration when:

  • Measurements were taken through the interface, channels, and sample rate the calibration was measured with

Use “None” when:

  • Measurements were taken with an already-flat reference microphone
  • Importing measurements already compensated externally

Per-Driver vs. Default Calibration

Per-driver assignment (this window):

  • Overrides any default set in Settings
  • Useful when combining measurements from different microphones or interfaces in one project
  • Saved with the project file

Default calibration (Settings → Measurement Calibration):

  • Automatically applied to newly created drivers/measurements
  • Does not affect existing drivers
  • See Measurement Calibration for configuration

Time Windowing

Isolate the direct sound from an impulse response and exclude reflections or noise.

Note: Time windowing is not available in Room Calibration mode. This is intentional: Room Calibration mode is designed to capture the full speaker-plus-room response, including reflections and room decay. Applying a time window would produce an anechoic-like impulse response — corrections derived from it would be wrong for the actual listening environment — what you hear is the direct sound from the speakers combined with all the reflections that follow, and the correction filters must account for that full response.

IR Windowing and Delay Compensation IR Windowing and Delay Compensation

Parameters

Start Time

Beginning of the time window in milliseconds.

  • Purpose: Remove pre-ringing or early noise
  • Typical: 0.0 to 5.0 ms before main peak
  • Effect: Sets the beginning of the extracted portion

Stop Time

End of the time window in milliseconds.

  • Purpose: Exclude late reflections or room decay
  • Typical: 5.0 to 100.0 ms after main peak
  • Effect: Sets the end of the extracted portion

Duration Display

Window duration (Stop Time - Start Time).

Start and Stop are independent — neither one drags the other. If you bring them within a taper of each other (or cross them), the fade-in and the fade-out simply multiply: the window becomes a smooth sub-unity bump rather than a malformed shape. With the default 0.5 ms taper, 4.0 ms / 4.5 ms already gives a clean triangular window (the fade-in reaches full amplitude exactly where the fade-out starts).

Time Reference

Start Time and Stop Time are defined on the raw impulse response — the measurement exactly as captured or imported, before any gain, IIR/FIR filtering, physical time delay, or delay compensation. A Start of 0 means “keep the measurement from its very first sample”; the values never change meaning as you build up filters and delays on the driver.

The Impulse Response and Step Response graphs, on the other hand, show the processed driver signal, and the red window-envelope preview (see Preview) is drawn on top of that processed curve. Since processing shifts the signal along the time axis, the window’s position on the graph is offset from the number you entered:

Processing applied to the driverWhere the window appears on the graph
Crossover / correction FIR filtershifted later by the filter’s own delay (the position of its impulse peak)
Time Delay (see Driver Processing)shifted later by that amount (real zero-padding of the response)
Delay Compensation (above)shifted earlier by that amount (display-only offset)

For example, with a 2 ms Time Delay on the driver and no delay compensation, a window Start of 0 ms shows its fade-in at the 2 ms mark: the window has not moved — the displayed impulse has been delayed by 2 ms, and the overlay follows it so the two stay aligned. Remove every filter and set both delays to zero and the overlay lines up exactly with the entered value.

The overlay is deliberately drawn relative to the curve beneath it, so it always shows what the window does to the response you are actually looking at rather than to an abstract time axis. Note also that with Adaptive IR display on (Graphs settings), the graph zooms to the signal and may crop the region before the impulse — if your Start sits in that cropped area, the overlay simply enters from the left edge already open.

No need to do the arithmetic yourself: hovering Start or Stop shows exactly where that value lands on the graph, with the shift broken down by cause (FIR delay / Time Delay / Delay Compensation). Whenever that shift is non-zero, an On Graph row also appears right under Window Duration, showing both shifted values at a glance — e.g. 2.00 ➡ 12.00 ms for a Start/Stop of 0 / 10 ms with a 2 ms Time Delay. This readout always uses the raw Start/Stop values as the source of truth (they never change meaning), it only translates where they currently show up.

Auto Set Window

Click “Auto Set Window” to automatically detect and configure optimal window boundaries.

How It Works:

The algorithm analyzes the on-axis measurement (0°, 0°) and automatically sets the start and stop times:

  1. Detect main peak: Locates the largest absolute amplitude in the impulse response
  2. Compute Hilbert envelope: Calculates the amplitude envelope for robust reflection detection
  3. Adaptive threshold: Adjusts detection sensitivity based on signal-to-noise ratio (3-8% of peak)
  4. Set start time: Places window start 3 ms before the main peak (clamped to 0.0 minimum)
    • This margin accounts for off-axis measurements where the sound path may be shorter (gives a margin of ~1m)
    • Prevents truncation of the direct sound in off-axis measurements
  5. Search for reflections: Scans the envelope for the first significant reflection/echo after the main peak:
    • Must occur at least 3 ms after the main peak
    • Must exceed the adaptive threshold
    • Must be a local maximum in the envelope
  6. Set stop time: Places window stop 0.5 ms before the first detected reflection

If no significant reflection is detected, the stop time is set to the end of the search window or IR length.

Detection Method:

The algorithm uses Hilbert envelope analysis to detect reflections. This provides more robust detection than simple amplitude analysis by following the overall energy contour of the signal, making it less sensitive to oscillations within the waveform.

Window Margins:

  • Start margin (3 ms): Ensures off-axis measurements are not truncated when rotating large loudspeakers. At the speed of sound (~343 m/s), 3 ms corresponds to approximately 1 meter of path length difference. During rotation, drivers may move closer to or further from the microphone—this margin provides sufficient safety for rotations of large cabinet.
  • Stop margin (0.5 ms): Small margin before the detected reflection to avoid including the beginning of the echo.

Best Use Cases:

  • ✅ Quasi-anechoic measurements: Ideal for measurements with clear, isolated reflections (e.g., outdoor, treated rooms, gated measurements)
  • ✅ Controlled environments: Works well when the direct sound is clearly separated from reflections
  • ✅ Multi-angle measurements: The 3ms start margin prevents truncation of off-axis measurements
  • ✅ Time-saving: Quick initial window setup that can be manually refined if needed

Limitations:

  • ❌ Reverberant environments: Not suitable for highly reflective rooms where reflections arrive continuously
  • ❌ Dense reflection patterns: May not detect the first reflection correctly if multiple reflections arrive in quick succession
  • ❌ Room measurements: For full-room measurements including reflections, manual windowing is more appropriate

Recommendation:

Use “Auto Set Window” as a starting point in quasi-anechoic conditions, then verify and adjust the window boundaries manually while observing the impulse response graph. In reverberant environments, set window parameters manually based on your measurement conditions.

Windowing Purpose

  • Anechoic approximation: Simulate anechoic conditions from room measurements
  • Reflection gating: Remove floor, ceiling, and wall reflections
  • Crossover and correction design: Essential for accurate filter design using measured data
  • Clean response: Isolate direct driver response

Window Function

LinFIR uses a Tukey window (tapered cosine/raised cosine) for smooth fade-in and fade-out transitions. This prevents spectral artifacts and high-frequency ringing caused by abrupt signal truncation.

Windowing Convention:

The fade-out starts at the stop parameter:

  • Fade-in: [start → start + taper]
  • Full signal: [start + taper → stop]
  • Fade-out: [stop → stop + taper]

The applied window is the product of the fade-in and the fade-out envelopes, so if start and stop are within a taper of each other the two overlap gracefully into a smooth sub-unity bump instead of a broken shape — no minimum gap is enforced.

No fade at the extremes: a fade exists only to smooth a discontinuity created by truncating real signal — a start of 0 truncates nothing before it (see Time Reference), so there is no fade-in at all in that case: the window opens at full amplitude from the very first sample. The stop side needs no equivalent special case: once stop reaches the measurement’s own duration (its maximum allowed value), every real sample already falls before it, so the fade-out ramp naturally has nothing left to attenuate.

Taper Duration: 0.5 ms fixed for simple windowing. For adaptive windowing, the taper is frequency-adaptive: each band gets a half-period taper centered on its center frequency (half of 1/frequency), with a floor at 0.5 ms. This means high frequencies use ~0.5 ms tapers while low frequencies use much longer tapers (e.g., 5 ms at 100 Hz, 10 ms at 50 Hz) to match the wavelength and avoid introducing ripples in the magnitude.

Preview

The impulse response graph shows the windowed result in real-time as you adjust start and stop times.

Whenever you change a windowing parameter (start/stop time, drag, “Auto Set Window”, “Reset Window”, or toggling Adaptive Window), the window envelope itself is briefly overlaid in red on both the Impulse Response and Step Response graphs, scaled to line up with the peak of the curve underneath. Alongside it, on the Impulse Response graph, the raw (un-windowed) impulse response of the measurement currently shown is drawn as a dashed line in the same colour as that driver’s impulse curve, so you can see directly what the window keeps and what it removes. Both fade together: fully visible for 3 seconds, then fading out over 2 seconds - changing a parameter again resets the timer. The overlay is only shown for the driver you’re currently editing, and only while its window is enabled.

You can also bring the overlay up at any time without changing anything by clicking the Show window button in the IR Windowing section.

The overlay (and the dashed reference) is positioned to match the processed curve on the graph, so its start/stop will not sit at the raw Start/Stop values you entered once the driver has filters or a time delay — see Time Reference above for why.

IR Window Envelope Preview IR Window Envelope Preview

With Adaptive Window enabled, the overlay instead draws a telescoping sequence of fade-out curves, one per frequency band: the shortest (darkest, treble) band’s complete window is drawn first, and each following, longer band picks up exactly where the previous one’s plateau ends and extends the shape further out, growing lighter as frequency decreases. Because bass bands extend their fade-out much further in time than treble bands, you’ll often only see the first few (darkest) steps within the graph’s visible range - the lower-frequency ones continue further right, beyond the current time axis.


Adaptive Window

Advanced frequency-dependent windowing that preserves low-frequency response while gating high-frequency reflections.

How It Works

When enabled, LinFIR uses a wavelet transform to apply different window lengths for different frequencies:

  • Start parameter: Applied uniformly to all frequencies
  • Stop parameter: Applied with frequency-dependent extensions
    • Lower frequencies get longer decay times
    • Higher frequencies use shorter windows

Examples of automatic extensions:

  • 30 Hz: +33 ms beyond stop time
  • 480 Hz: +2 ms beyond stop time
  • 7.5 kHz: +0.1 ms beyond stop time
  • 18 kHz: +0.06 ms beyond stop time

This reflects the physical reality that longer wavelengths make it difficult to temporally separate direct sound from reflections.

Benefits

  • Preserves bass response: Low frequencies automatically get the time they need
  • Avoids bass roll-off: Short windows don’t unnaturally cut off bass
  • Frequency-aware gating: Removes high-frequency reflections while keeping bass intact
  • No phase distortion: Maintains natural phase relationships

When to Use

Use Adaptive Window when:

  • Gating reflections but need to preserve bass response
  • Using short measurement windows where bass would be compromised
  • Simple windowing causes unnatural bass attenuation
  • You want frequency-dependent decay times matching physical acoustics

Don’t use Adaptive Window when:

  • Working with anechoic or quasi-anechoic measurements with very clean direct sound (simple window is cleaner)
  • You have sufficient window length for all frequencies uniformly
  • You prefer uniform windowing for consistency

Enabling

Check the “Adaptive Window” checkbox in the IR Windowing section.


Delay Compensation

Shift the impulse response earlier in time without truncating data.

How It Works

  • Non-destructive: IR data remains intact in memory
  • Display offset: Delay applied as metadata for display and calculations
  • Purpose: Bring acoustic peak closer to time zero to flatten the phase

Auto Detect Delay

Click “Auto Detect Delay” to automatically detect and apply optimal delay compensation across all drivers:

Behavior:

  1. Detects the peak position for each driver (based on on-axis measurements)
  2. Finds the minimum detected delay across all drivers
  3. Applies this minimum delay to all drivers simultaneously

Advantages:

  • Preserves temporal alignment: All drivers maintain their relative timing relationships
  • Removes common delay: Eliminates the shared propagation delay from all measurements
  • Prevents errors: Ensures consistent delay compensation across all drivers automatically

Detection Method:

  • Locates the position of the main peak in the impulse response
  • Uses on-axis measurement (0°, 0°) as reference for each driver
  • Aligns all driver peaks precisely at time zero

Manual Adjustment

Manually enter delay value in milliseconds to fine-tune compensation for individual drivers.

Sync Toggle (enabled by default):

When the Sync toggle is enabled, any manual delay adjustment automatically applies to all drivers in the project. This ensures consistent compensation across all drivers without needing to adjust each one individually.

  • Enabled: Changes to the delay parameter propagate to all drivers automatically
  • Disabled: Changes only affect the current driver, allowing independent delay values
  • Activating Sync: If Sync is currently disabled and you enable it, an automatic delay detection is triggered to ensure all drivers have coherent delay values

When to use independently (Sync disabled):

  • Only when drivers were measured with significantly different microphone positions
  • Even then, prefer fixing microphone position and re-measuring rather than relying on delay compensation

Purpose and Limitations

What delay compensation is FOR:

  • Removing the time of flight of sound from the measurement (optional, depends on personal preference)
  • Correcting for different microphone positions between measurements

What delay compensation is NOT for:

  • ❌ Time-aligning drivers during crossover design (this is handled separately by the Time Delay parameter)
  • ❌ A tool for precise multi-driver coherence (proper crossover phase design is required instead)

Important: Microphone Position Corrections

Delay compensation can correct for microphone position differences, but this method has significant limitations:

⚠️ High-frequency measurement errors scale with wavelength:

  • 10 cm microphone position difference → Errors above ~3400 Hz
  • 5 cm microphone position difference → Errors above ~6900 Hz
  • Ultra-short wavelengths (high frequencies) amplify measurement uncertainties

Best practice:

  • ✅ Prefer re-measuring with fixed microphone placement rather than compensating for position differences
  • ✅ Maintain consistent microphone position across all measurements when possible
  • ✅ Delay compensation cannot replace careful measurement technique

Off-Axis Measurements:

  • The selected delay compensation applies uniformly to all off-axis measurements (cannot vary by angle)
  • This affects the relative timing between different measurement angles consistently

Measurement Notes

Section: Collapsible header (default closed) Purpose: Document measurement conditions and hardware setup

Measurement Notes Measurement Notes

Overview

The Measurement Notes field provides a space to record important information about your measurement setup, hardware configuration, environmental conditions, and any other relevant details.

Features

  • Multi-line text editor: Supports up to 1000 characters
  • Auto-save: Notes are saved with the project
  • Hint text: Helpful placeholder text suggests what information to include
  • Character counter: Live display of character count (e.g., “127/1000 characters”)

What to Document

Hardware configuration:

  • Microphone model and serial number
  • Audio interface model and settings
  • Amplifier configuration
  • Cable connections and routing

Measurement conditions:

  • Date and time of measurement
  • Room conditions (temperature, humidity if relevant)
  • Microphone position and distance
  • Driver orientation and mounting

Reference information:

  • Calibration file version used
  • Sample rate and sweep settings
  • Any unusual conditions or observations
  • Version of measurements for tracking

Example Notes

Microphone: UMIK-1 (S/N: 123456) with cal file v2.3
Interface: Focusrite Scarlett 2i2 (48kHz, 512 buffer)
Distance: 1m on-axis, driver mounted in baffle
Room: Semi-anechoic (windows gated at 10ms)
Date: 2025-12-14
Notes: First measurement after driver break-in period

Best Practices

  • Be specific: Include model numbers and serial numbers when relevant
  • Date your measurements: Track when measurements were taken
  • Note calibration: Record which calibration file was used
  • Document changes: If re-measuring, note what changed
  • Reference conditions: Record anything that might affect comparisons

Exporting Impulse Responses

Impulse responses can be exported individually or in batch using two methods:

Spliced measurements: if a near-field / far-field splice is active (see Near-Field / Far-Field Splicing), the export dialog adds a Raw capture / Spliced (anechoic) choice. “Spliced” writes the blended anechoic IR (and adds a _spliced marker to the filename). “Include distortion” can be combined with either choice — it prepends the distortion tail measured at capture time to whichever main response you export (marker becomes _spliced_dist when both apply). The choice defaults to “Spliced” when the measurement being exported has a spliced version.

Individual Export (Per-Measurement)

For each measurement (horizontal and vertical angles):

  1. Click the ⬇ (Export) button next to the measurement angle
  2. Export dialog appears with format options
  3. Choose export format (WAV or TXT) and options
  4. File is saved with automatic angle suffix

File naming format:

  • Format: DriverName_v{vertical}h{horizontal}.extension
  • Examples:
    • On-axis (0°, 0°): Driver 1_v0h0.wav
    • Horizontal +30°: Driver 1_v0h30.wav
    • Vertical -15°: Driver 1_v-15h0.wav
    • Horizontal -45°: Driver 1_v0h-45.wav

Room Calibration mode (no angles):

  • Format: MeasurementName.extension
  • Example: Measurement 1.wav

Batch Export (All Measurements)

Button: ⬇ Export All (above “Measurement angle” field)

Process:

  1. Click “⬇ Export All” button
  2. Select output directory in folder picker
  3. All measurements exported simultaneously as WAV files
  4. Files use consistent v{vertical}h{horizontal} naming

Format (batch export):

  • All files exported as WAV (32-bit float, mono)
  • Sample rate matches project sample rate
  • “Include distortion” option applies to all files
  • No format selection (always WAV for batch)

Benefits:

  • Fast export of complete measurement sets
  • Consistent naming for re-import compatibility
  • Files can be re-imported via batch import with automatic angle detection
  • Compatible with external tools

Use cases:

  • Archiving complete measurement sets
  • Sharing measurements with collaborators
  • External processing (FIR Designer, Matlab, REW)
  • Backing up measurements before making changes

Export Format Options

When you click the export button, a dialog presents two format options:

WAV Format

File format:

  • Channels: Mono
  • Bit depth: 32-bit PCM float
  • Sample rate: Project sample rate

Include Distortion Metadata option:

When checked:

  • Exports full deconvolved IR plus custom ‘dist’ metadata chunk
  • File name automatically gets _dist.wav suffix
  • Enables THD computation when re-imported into LinFIR
  • Contains sweep parameters: start frequency, end frequency, duration

When unchecked:

  • Exports only the active (cropped/windowed) working IR
  • Standard WAV file without metadata
  • Cannot be used for THD computation upon re-import

TXT Format

File format:

  • One sample per line in scientific notation (e.g., 1.234567e-03)
  • Metadata stored as comment lines starting with #:
    • # fs=<value> - Sample rate in Hz
    • # IR data: - Marks the start of sample data
  • Compatible with external tools (e.g., Matlab, Python)
  • Can be re-imported into LinFIR

Include Distortion option:

TXT export does NOT support distortion export:

  • The “Export as TXT” button is disabled when “Include distortion” is checked
  • TXT format can only export the cropped IR (main impulse only)
  • For distortion data export, use WAV format which supports embedded metadata

THD Availability

Total Harmonic Distortion (THD) graphs are only available when:

  • IR was captured directly via LinFIR’s built-in sweep, or
  • IR was imported from WAV with ‘dist’ metadata chunk (exported with “Include dist.” option in LinFIR)

Plain WAV files without ‘dist’ chunk or TXT files cannot produce THD curves.


Best Practices

For Captures

  • Use proper gain staging to avoid clipping
  • Monitor levels during sweep - aim for -6 dB to -12 dB peak
  • Save captures with “Include dist.” for future THD analysis

For Windowing

  • Use anechoic or quasi-anechoic measurements when possible
  • Apply windowing before designing correction filters
  • Check impulse response graphs to verify proper window placement
  • Use Adaptive Window cautiously - verify bass response is realistic

For File Management

  • Use descriptive IR names for organization
  • Export with distortion metadata if you need THD analysis later
  • Keep original unprocessed captures as backups
  • Document measurement conditions (position, distance, etc.)

Quick Reference

ActionResult
Import WAVLoad IR from WAV file (with or without ‘dist’ metadata)
Import FRDConvert frequency response data to impulse response
Capture SweepBuilt-in measurement with automatic THD support
Time WindowingExtract portion of IR, exclude reflections
Adaptive WindowFrequency-dependent windowing for bass preservation
Delay CompensationShift IR in time (non-destructive)
Export WAVSave IR to WAV (with optional distortion metadata)
Export TXTExport coefficients to text file