• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

LinFIR – DSP Software for FIR/IIR Filter Design and Speaker Correction

LinFIR v1.1.14 is now available.

This is a major UI/analysis update with several long-requested features and internal refactoring.

Added
  • Theme selector moved to Settings > General > Appearance for a cleaner and more consistent UI
  • New “Time-centered Phase” mode (toggle + shortcut C)
    • Removes the linear phase component to make driver alignment clearer
    • Applies in Speakers view to all visible curves
    • Optional default in Settings
  • Customizable magnitude plot bounds
    • Adjustable dB range for driver magnitude plots
    • Adjustable lower bound for FIR/IIR magnitude plots (down to -200 dB)
Improved
  • Internal project data fully refactored into a unified structure
    • Legacy migration ensures backward compatibility
    • Prepares the ground for future features
  • Phase and GD truncation now uses a magnitude threshold (in dB) instead of octave-based margins
    • Separate thresholds per context (Speakers, IIR, FIR, combined)
    • Default: -50 dB, configurable in Settings
Removed
  • “View” menu, now redundant — appearance controls are all in Settings
Fixed
  • Phase display no longer applies fractional octave smoothing
    • Fixes visual artifacts and slope irregularities
    • Phase is now shown raw and correct; GD smoothing unchanged
  • IIR and FIR+IIR GD now always derived from unwrapped phase
    • Eliminates wrap-induced artifacts
    • “Unwrap Phase” is now purely visual
This update greatly improves the clarity of phase-related plots, customizability of visual scaling, and overall project robustness.

Let me know if you run into any issues or have feature requests.
 
LinFIR v1.1.17 is now available.

This is a major update focused on phase correction, visualization flexibility, and robustness.

Added
  • New direct phase correction algorithm
    • Works directly with unwrapped phase (no GD integration)
    • Removes linear phase before smoothing for more stable correction
    • Better impulse symmetry without arbitrary offsets
    • Reproducible results across parameter sets
    • Band-limited correction with constant phase continuation outside the working band
    • Cleaner behavior at band edges
  • Phase offset control for correction
    • Continuous slider from –180° to +180°
    • Replaces binary polarity inversion
    • Allows fine control of acoustic polarity and pre-ringing symmetry
    • Applied after correction and before spectral synthesis
  • Detached graph windows
    • Right-click any plot → “Open in separate window”
    • Multiple independent windows supported
    • Live-updating, resizable, closeable (Cmd/Ctrl+W)
    • Each window preserves the display mode captured at detachment
  • Automatic phase alignment in unwrapped view
    • Removes relative offsets for clearer comparison
    • Works with or without time-centered phase
    • Speakers mode: aligns all drivers to the Sum curve
    • FIR/IIR modes: aligns filters to the first active one
    • Median-based passband alignment (robust to noise)
    • Makes crossover continuity immediately visible
Improved
  • Smart directional truncation for phase and group delay
    • Truncation now depends on active filter types
    • HP only → truncate low end
    • LP only → truncate high end
    • Both → truncate both sides
    • None → no truncation (e.g., PEQ-only)
    • Applies across all contexts (FIR, IIR, combined, speakers, global)
Fixed
  • Undo/Redo no longer affects visualization toggles or display settings
  • FRD import crash
    • Fixed overflow during impulse rotation with excessive GD
    • Proper bounds checking and safer handling of pathological files
  • FRD phase extrapolation artifacts
    • Now uses average GD for out-of-band extrapolation
    • Prevents divergence and negative GD
    • Eliminates impulse artifacts at extension edges
Let me know if you encounter any issues or have feature suggestions.
 
Work in progress! :D

Capture d’écran 2025-11-28 à 17.18.47.png
 
I’m hoping to release v1.2.0 soon, it’s a big update with plenty of new features.

The new Directivity module (sonograms, DI, off-axis measurements, etc.) will be available as a one-time license.

On the other hand, the new Room Calibration mode will remain free. It automatically time-aligns and averages multiple measurements to reduce the impact of room modes on EQ.

The target curves have also been improved, and there’s now a dedicated tool to easily shape your preferred target.

Capture d’écran 2025-12-11 à 15.25.36.png
 
I’m glad to announce LinFIR v1.2.0, a major update that introduces new analysis modes, new processing tools, and significant internal changes.

The two main additions in this release are the new Room Calibration mode and the Directivity Analysis tools.

Room Calibration mode complements the existing Loudspeaker Design mode and is intended for in-room measurements and correction work. Multiple measurements are automatically time-aligned using the GCC-PHATalgorithm with subsample accuracy, then averaged to reduce the impact of room modes before filter generation. Loudspeaker Design mode remains unchanged and continues to offer the full crossover, phase, and system design workflow.

The Directivity Analysis tools (available as an optional licensed module) add off-axis response visualization, predicted Directivity Index (DI) curves, and vertical and horizontal sonograms. Directivity predictions account for driver interaction and filtering choices and require impulse responses that preserve time of flight, making them suitable for crossover development and radiation control analysis. All other LinFIR features remain free.

This release also integrates a full-featured FRD-to-IR Converter directly into LinFIR. FRD import is no longer a black box: the converter provides PCHIP interpolation, reconstruction error analysis, phase handling options (wrapped, unwrapped, time-centered), and optional minimum-phase transformation. Converted impulses are injected directly into the project, replacing the previous simplified import path.

Beyond new features, v1.2.0 includes performance, memory, and file-size optimizations, as well as fixes related to phase correction during resampling and high-frequency phase centering.

Because this version introduces deep changes to the project structure, signal-processing pipeline, and UI logic, there may still be edge cases or regressions that haven’t been caught yet. LinFIR is developed and maintained by a single person, so real-world testing and feedback are extremely valuable. If something looks off or behaves unexpectedly, please report it. Your feedback directly helps improve the software.

Thanks to everyone who has tested LinFIR, shared measurements, and provided thoughtful feedback. It genuinely helps push the project forward.
 
Back
Top Bottom