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

System Processing

LinFIR provides global (system-wide) processing that applies corrections to the summed system response after all individual driver filters. This is available in both Loudspeaker Design and Room Calibration modes.

Global processing consists of two main components:

  • Global FIR Correction Filter: Magnitude and phase correction of the summed system response
  • Global IIR Filters: System-wide parametric EQ for room correction and final tuning

This page documents the global FIR correction filter. For global IIR filtering, see the corresponding section below.


Global FIR Correction Filter

The Global FIR Correction Filter corrects the summed system response using FIR filters. It applies after all individual driver filters are combined, providing final system-level magnitude and phase correction.

Access the global FIR correction window from the Drivers/Measurements column (Global FIR button in the Global Filters section).

Global FIR Correction Window Global FIR Correction Window

When to Use Global Correction

Loudspeaker Design Mode:

  • Correct summed driver response/entire loudspeaker
  • Align final system response to target curves (Flat, Harman, Custom)
  • Compensate for baffle diffraction effects on the combined response
  • Final system voicing and tuning

Room Calibration Mode:

  • Room correction applied to the averaged measurements
  • Correct combined room + speaker response
  • Export global correction for integration into DSP processors

💡 Tip: Use global correction for overall tonal balance, and system-wide frequency response issues. Use per-driver correction (in Loudspeaker Design mode) for individual driver resonances, breakup modes, or response irregularities.


Global FIR Filter Length

FIR Taps

  • Range: 32 to 65,536 taps
  • Controls: the length (and thus frequency resolution) of the global FIR correction filter

How to choose:

  • Higher tap counts → better low-frequency resolution, longer processing latency
  • Lower tap counts → lower latency, reduced low-frequency precision

⚠️ Latency Note: The global FIR filter’s latency depends on tap count, magnitude causality, and phase correction:

  • Causality = 1.0 (minimum-phase) + no phase correction: ~0 latency (impulse at t ≈ 0)
  • Causality = 0.0 (linear-phase): ~ntaps/2 samples latency (impulse centered)
  • Phase correction enabled: adds latency regardless of causality (shifts impulse to center)

For low-latency applications, use Causality = 1.0 and disable phase correction.

Export Padding

  • Range: 0 to 65,536 taps
  • Purpose: Add zero-padding to the exported FIR filter files only

Export padding does not affect internal processing—it only extends the exported FIR coefficients with zeros. This is useful for:

  • Meeting minimum FIR length requirements of external DSP platforms
  • Aligning export formats across multiple filters

Example: If the global FIR filter is 4096 taps and you set export padding to 512, the exported file will contain 4608 coefficients (4096 actual + 512 zeros).


FIR Compensation Delay

  • Range: -100 to +100 ms
  • Purpose: Fine-tune the alignment of the global FIR filter in the processing chain

This parameter shifts the global FIR filter in time relative to the driver FIR filters. It is not the primary timing alignment tool—use the Reference Timing feature for that.

Use Cases:

  • Compensate for small timing misalignments introduced by FIR processing
  • Adjust global FIR placement when mixing minimum-phase and linear-phase filters

💡 Tip: In most cases, leave this at 0 ms. Only adjust if you observe timing issues and ringing truncation in the impulse response.


Compensate FIR Delay on Graphs

  • Toggle: Shift the impulse response left in plots to remove visual delay

When enabled:

  • The impulse response plot shifts left by approximately ntaps/2 samples
  • The phase and group delay plots are also affected
  • Exported filters are not modified

Purpose:

  • Provides a clearer view of the aligned impulse response across drivers
  • Useful for comparing driver responses without the visual offset from FIR latency

When to enable:

  • When visually analyzing impulse alignment between drivers
  • When comparing group delay and phase between the individual drivers and the sum

When to disable:

  • When you need to see the true latency of the system

Magnitude Correction

The Magnitude Correction section corrects the frequency response (magnitude) of the summed system.

Enable Magnitude Correction

Toggle to enable/disable magnitude response correction independently from phase.

When disabled, magnitude correction settings are grayed out.


Calculation Point (Magnitude)

  • Options: pre-IIR or post-IIR
  • Purpose: Choose where to measure the system response for magnitude correction

pre-IIR:

  • Measures the system before global IIR filters
  • Corrects the summed driver response (FIR crossovers + driver FIR corrections + driver IIR)
  • Use when you want to correct the raw driver summation before applying IIR EQ

post-IIR:

  • Measures the system after global IIR filters
  • Corrects the final system response (drivers + global IIR)
  • Use for final system tuning or room correction that accounts for global IIR EQ

💡 Tip: For room calibration, use post-IIR to correct the final room + speaker response. For loudspeaker design, use pre-IIR to correct driver interactions before applying global voicing EQ.


Target Curve

  • Button: Configure
  • Purpose: Select and configure the target curve for magnitude correction

Clicking Configure opens the Target Curve Window where you can:

  • Select Flat or Harman as base curves
  • Add inflection points and shape the curve

The magnitude correction FIR filter will match the response to this target curve.

See the Target Curves section in the documentation for details on curve types and customization.


Resolution (Magnitude)

  • Options: 1/48 octave, 1/24 octave, 1/12 octave, 1/6 octave, 1/3 octave
  • Purpose: Control the smoothing applied to the magnitude correction

Lower fractions (e.g., 1/48 oct) → finer detail, corrects small ripples
Higher fractions (e.g., 1/3 oct) → broader smoothing, corrects only major trends

How to choose:

  • Room correction: Use 1/6 octave or 1/3 octave to avoid over-correcting room modes (which vary with position)
  • Loudspeaker design: Use 1/12 octave or 1/24 octave for detailed driver correction

⚠️ Warning: Very fine smoothing (1/48 oct) can lead to excessive correction of measurement noise. Use with caution.


Max Attenuation

  • Range: 0 to 30 dB
  • Default: 10 dB
  • Purpose: Limit the maximum attenuation (cut) applied by magnitude correction

This parameter “cuts from the top”—it limits how much the correction filter can reduce peaks in the frequency response.

Why limit attenuation?

  • Prevents excessive cuts that waste headroom
  • Avoids over-correcting narrow resonances (which may not be audible)
  • Maintains system efficiency

Example:

  • If the system has a +15 dB peak at 200 Hz and Max Attenuation is set to 10 dB, the correction will cut only 10 dB (leaving a +5 dB peak)

Recommended values:

  • Room correction: 10–15 dB (room modes can be large)
  • Loudspeaker design: 6–10 dB (driver peaks are typically smaller)

Correction Gain

  • Range: -20 to +20 dB
  • Default: 4 dB
  • Purpose: Add gain to the correction filter to compensate for attenuation and maintain system level

Magnitude correction typically attenuates peaks, which reduces overall loudness. Correction Gain adds a fixed boost to restore the level.

How to choose:

  • Set Correction Gain to approximately match the average attenuation applied
  • For example, if the correction cuts ~4 dB on average, set Correction Gain to +4 dB

💡 Tip: Adjust Correction Gain by observing the final system level after correction. Too much gain can cause clipping or driver damage; too little leaves the system quieter than before.


Kaiser β (Magnitude)

Range: 0.0 to 50.0
Default: 8.0

Kaiser windowing parameter for the magnitude correction FIR filter.

Effect:

  • Lower values (3-5): Sharper correction BUT may increase ringing
  • Moderate values (6-10): Good balance between precision and ringing suppression
  • Higher values (12-20): Smoother correction, reduced ringing, but less precise

Recommendation: Start with default 8.0, decrease to 1-2 if ringing is not problematic.


Frequency Range (Magnitude)

  • f_min (minimum frequency): Starting point for magnitude correction
  • f_max (maximum frequency): Ending point for magnitude correction
  • Fade-in/Fade-out: Smooth transitions at the boundaries

Purpose: Limit magnitude correction to a specific frequency range.

Example:

  • Set f_min = 40 Hz and f_max = 12,000 Hz to correct only mid-bass through mid-treble, leaving deep bass and extreme treble unaffected

💡 Tip: Avoid correcting frequencies outside the measurement’s reliable range. Measurement noise dominates at the extremes.


Causality (Magnitude)

Range: 0.0 (linear-phase) to 1.0 (minimum-phase)
Default: 1.0 (minimum-phase)

Controls the phase characteristic of the magnitude correction filter.

  • 0.0 (Linear-phase): Symmetric pre- and post-ringing, constant group delay
  • 1.0 (Minimum-phase): No pre-ringing, all energy is causal, variable group delay

Typical choice: 1.0 (minimum-phase) to avoid pre-ringing artifacts.

Why minimum-phase is preferred: Most acoustic and electronic systems are minimum-phase (magnitude and phase are coupled via Kramers-Kronig relations). Correcting magnitude with a minimum-phase filter automatically corrects the associated phase deviation, providing physically accurate correction. Use 0.0 (linear-phase) only if you specifically need constant group delay with a non-flat target curve and can tolerate pre-ringing.


Phase Correction

The Phase Correction section corrects the group delay and phase response of the summed system.

Enable Phase Correction

Toggle to enable/disable phase response correction independently from magnitude.

⚠️ Critical Limitation: Phase Correction vs. Low Latency

You cannot have both near-zero latency FIR filters AND active phase correction. This is a fundamental limitation, not a software bug.

Why this incompatibility exists:

Even if you configure your FIR magnitude correction with causality = 1.0 (minimum-phase, low latency), which positions the FIR impulse peak near t=0 (left-aligned), enabling phase correction will shift the combined FIR impulse peak to the center (around ntaps/2), introducing significant latency.

The reason is fundamental:

  • Phase correction = temporal correction: Phase distortion is fundamentally a time-domain problem (different frequencies arriving at different times)
  • To correct temporal defects, you need time: The filter needs temporal “space” before and after the main impulse to reposition frequency components correctly
  • This requires centering the impulse: Phase correction filters must have headroom both before (pre-ringing) and after (post-ringing) the main signal to perform time-domain manipulations
  • Result: The combined FIR impulse peak moves from t≈0 (low latency) to t≈ntaps/2 (high latency)

Practical impact:

  • Without phase correction: Causality=1.0 filters → impulse peak at t≈0 → latency ≈ 0 samples
  • With phase correction enabled: Impulse peak moves towards t≈ntaps/2 → latency ≈ ntaps/2 samples (e.g., 2048 samples at 48kHz = 42.7ms)

Recommended approach:

  • For low-latency applications (live sound, PA, monitoring): Use causality = 1.0 on crossover/magnitude filters, disable phase correction, accept phase as-is
  • For high-fidelity applications (studio monitors, reference systems): Use causality = 0.0 on crossover, 1.0 on magnitude filters, enable phase correction if needed, accept the latency
  • For hybrid approach: Use moderate causality (0.3-0.7) for reduced latency with some phase correction capability (but still expect significant latency when phase correction is active)

Calculation Point (Phase)

  • Options: pre-IIR or post-IIR
  • Purpose: Choose where to measure the system response for phase correction

pre-IIR:

  • Measures phase before global IIR filters
  • Corrects driver phase interactions (crossover phase shifts, driver delays)
  • Use when global IIR has minimal phase impact

post-IIR:

  • Measures phase after global IIR filters
  • Corrects final system phase (including IIR phase shifts)
  • Use for complete system phase linearization

💡 Tip: Phase and magnitude correction can use different calculation points. For example, use pre-IIR for magnitude (correct drivers) and post-IIR for phase (linearize final system).


Resolution (Phase)

  • Options: 1/48 octave, 1/24 octave, 1/12 octave, 1/6 octave, 1/3 octave
  • Purpose: Control the smoothing applied to phase correction

Same principle as magnitude resolution:

  • Finer smoothing (1/48 oct) → corrects small phase variations
  • Coarser smoothing (1/3 oct) → corrects only major phase trends

Recommended values:

  • Room correction: 1/6 or 1/3 octave
  • Loudspeaker design: 1/12 or 1/24 octave

Intensity

  • Range: 0% to 100%
  • Default: 100%
  • Purpose: Control the strength of phase correction

100%: Full phase correction (matches measured phase to target)
0%: No phase correction
50%: Half-strength correction (blend between measured and target phase)

Use Cases:

  • Reduce intensity (e.g., 70–80%) if full phase correction introduces audible artifacts
  • Use partial correction to preserve some driver phase characteristics

💡 Tip: Start with 100% and reduce intensity if the correction sounds unnatural.


Phase Offset

Range: -180° to +180°
Default:

Phase offset applied to the filter’s phase response.

Purpose: Controls the symmetry of the impulse response by adjusting the phase offset. This allows fine-tuning the balance between pre-ringing and post-ringing in the time-domain response.

How it works:

  • : Default even symmetric behavior
  • Positive/Negative offset: Shifts impulse response characteristics towards odd symmetry

Use case: Advanced parameter for optimizing impulse response symmetry in multi-driver systems.

Recommendation: Leave at 0° unless you have specific symmetry requirements and understand impulse response trade-offs.


Kaiser β (Phase)

Range: 0.0 to 50.0
Default: 1.0

Kaiser windowing parameter for the phase correction FIR filter.

Effect:

  • Lower values (3-5): Sharper phase correction BUT may cause more ringing
  • Moderate values (6-10): Good balance between precision and ringing artifacts
  • Higher values (12-20): Reduced ringing BUT may introduce magnitude artifacts elsewhere in the spectrum

Recommendation: Start with default 1.0, increase to 12-15 if too much ringing appears.


Frequency Range (Phase)

  • f_min (minimum frequency): Starting point for phase correction
  • f_max (maximum frequency): Ending point for phase correction

Purpose: Limit phase correction to a specific frequency range.

Example:

  • Set f_min = 100 Hz and f_max = 10,000 Hz to correct only mid-bass through treble phase, leaving deep bass phase untouched

Use Cases:

  • Avoid correcting phase at frequencies where group delay measurements are unreliable
  • Avoid correcting phase outside speaker’s frequency response

Global IIR Filtering

In addition to global FIR correction, LinFIR provides Global IIR Filters for system-wide parametric EQ.

When to Use Global IIR

  • Room correction EQ: Parametric filters to address specific room modes
  • Final system tuning: Overall tonal balance adjustments (bass/treble tilt, voicing)
  • Low taps count: IIR filters require less processing power, allowing easier low end correction with small DSP processors

💡 Tip: Use global IIR for low end corrections and global FIR for high frequencies correction.

Access Global IIR Window

Access the global IIR window from the Drivers/Measurements column (Global IIR button in the Global Filters section).

Manual vs. Auto EQ Tabs

The Global IIR window has two tabs, identical to the per-driver IIR system:

Manual Tab:

  • Manually add/edit parametric filters (PEQ, low shelf, high shelf, etc.)
  • Full control over frequency, gain, Q
  • Lock individual filters to prevent Auto EQ from modifying them

Auto EQ Tab:

  • Automatically generates IIR filters to match the system to a target curve
  • Same parameters as driver Auto EQ:
    • Gain Offset: Adjust overall target level
    • EQ Boost Cap: Prevent excessive boost
    • Frequency range, Q range, Filter count

Auto EQ (Global)

Global Auto EQ works on the summed system response after driver processing:

  • Measures the final system (drivers + global FIR + global IIR)
  • Generates IIR filters to match the selected target curve (Flat, Harman, Custom)
  • Applies to the entire system (not per-driver)

Use Cases:

  • Room correction: Auto EQ generates filters to correct room + speaker response
  • Final voicing: Quick tonal adjustments without regenerating FIR filters

Locked Filters (🔒):

Individual filters can be locked to preserve them during operations:

  • Lock toggle: Click the 🔓/🔒 icon next to any filter to lock/unlock it
  • Protected from Clear: Locked filters are not deleted when clicking “Clear Filters”
  • Protected from Auto EQ: Locked filters are not removed when regenerating Auto EQ
  • Integration into Auto EQ:
    • locked filters are integrated into the Auto EQ target curve
    • The optimizer respects their frequency response instead of trying to compensate

Use Cases:

  • Set a protective high-pass filter, lock it, then let Auto EQ optimize the rest
  • Lock a low-pass filter for driver protection while auto-correcting midrange
  • Preserve manually tuned filters while regenerating Auto EQ corrections
  • Combine manual protective filters with automatic room correction

Example Workflow:

  1. Switch to Auto EQ tab
  2. Add protective filters (e.g., -24 dB/oct HP at 60 Hz, room mode notches) using ➕ Add Filter
  3. Lock them using the 🔒 icon
  4. Configure target curve (Flat, Harman, Custom)
  5. Click “Generate” to run Auto EQ optimization
  6. Review and adjust: Edit any auto-generated filter directly (frequency, gain, Q)
  7. Lock refined filters: Lock manually adjusted filters to preserve them
  8. Iterate: Regenerate Auto EQ as many times as needed—locked filters stay in place
  9. Result: Auto EQ creates corrective filters while respecting locked protective filters

📖 For detailed Auto EQ parameter descriptions, see the Driver Processing page (Auto EQ section). Global Auto EQ uses identical parameters.


Workflow Recommendations

Loudspeaker Design Mode

  1. Design individual driver filters (FIR crossovers, FIR corrections, IIR EQ)
  2. Verify summed system response (check for phase cancellations, comb filtering)
  3. Apply global FIR correction if needed:
    • Correct driver interaction issues (dips, peaks from crossover summing)
    • Match system to target curve (Flat, Harman)
  4. Add global IIR filters for final voicing (bass/treble tilt, room-specific adjustments)
  5. Export filters for DSP platform

Room Calibration Mode

  1. Measure room response at listening position
  2. Apply global FIR correction:
    • Set resolution to 1/6 or 1/3 octave (avoid over-correcting room modes)
    • Limit frequency range (e.g., 500–18,000 Hz)
    • Set Max Attenuation to 10–15 dB
  3. Add global IIR filters for specific room modes (parametric notches)
  4. Re-measure and iterate if needed
  5. Export global correction filters for room DSP processor

💡 Best Practice: In room calibration mode, avoid excessive correction of room modes and deep nulls. Boosting these regions by more than 6-10 dB risks clipping, increased distortion, driver overexcursion, and potential damage. Use acoustic treatment for problematic modes instead of EQ.


  • Driver Processing: Per-driver FIR/IIR filtering (loudspeaker design mode)
  • Global Settings: Application-wide filter processing defaults
  • Target Curves: Configuring Flat, Harman, and Custom curves
  • Export: Exporting filters for DSP platforms (input FIR vs. output FIR)

Summary

Global FIR Correction provides system-level magnitude and phase correction for:

  • Loudspeaker Design: Correcting summed driver interactions and final system voicing
  • Room Calibration: Correcting room + speaker response at the listening position

Key Features:

  • Independent magnitude and phase correction with separate calculation points (pre-IIR/post-IIR)
  • Adjustable resolution, frequency range, and causality for flexible correction strategies
  • FIR compensation delay and graph compensation for fine-tuning alignment and visualization

Global IIR Filtering complements FIR correction with:

  • Manual parametric EQ for precise corrections
  • Auto EQ for automatic target curve matching
  • Locked filters for hybrid manual/automatic workflows

Use global processing after per-driver processing to achieve final system performance targets.