Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. iir1

iir1

MITC++1.11.0

A high-performance, header-only C++ library for realtime IIR digital signal processing with Butterworth, Chebyshev, and RBJ filters.

Visit WebsiteGitHubGitHub
779 stars161 forks0 contributors

What is iir1?

IIR1 is a C++ library for infinite impulse response (IIR) digital signal processing, providing realtime sample-by-sample filtering. It implements common filter types like Butterworth, Chebyshev, and RBJ filters for lowpass, highpass, bandpass, and bandstop applications. The library is designed for high performance and memory safety, using template-based header-only code to avoid runtime allocations.

Target Audience

Developers and engineers working on realtime DSP applications, such as audio processing, sensor data filtering, embedded systems, and scientific computing where low-latency filtering is required.

Value Proposition

IIR1 offers a combination of realtime performance, memory safety, and ease of integration through its header-only design. Unlike many DSP libraries, it avoids dynamic memory allocation entirely, making it suitable for safety-critical and embedded environments while supporting cross-platform development.

Overview

DSP IIR realtime filter library written in C++

Use Cases

Best For

  • Realtime audio filtering in C++ applications
  • Embedded systems requiring deterministic memory usage
  • Sensor data stream processing with low latency
  • Educational projects teaching IIR filter implementation
  • Prototyping filters with Python (SciPy) and deploying in C++
  • Cross-platform DSP applications on Linux, Windows, or macOS

Not Ideal For

  • Projects requiring FIR filters or non-IIR DSP techniques, as the library is exclusively focused on IIR implementations.
  • Applications with dynamic filter order requirements at runtime, since memory allocation is fixed at compile time via templates.
  • Teams seeking out-of-the-box GUI tools or visual filter design interfaces, as IIR1 relies on code configuration and external Python scripts.

Pros & Cons

Pros

Header-Only Integration

All filter code is in header files, enabling seamless compiler optimization and eliminating linking overhead, as stated in the README.

Compile-Time Memory Safety

Uses C++ templates to allocate memory at compile time, preventing runtime allocations and memory leaks, crucial for embedded and realtime systems.

Cross-Platform Support

Tested on Linux, Windows, and macOS with GCC, Clang, and Visual Studio, ensuring reliability across different development environments.

Python Coefficient Import

Can import filter coefficients generated by SciPy's signal module, facilitating easy design in Python and efficient deployment in C++, as shown in the demo code.

Cons

Template Complexity

Heavy use of C++ templates can increase compile times and require advanced knowledge, making it less accessible for developers unfamiliar with template metaprogramming.

Limited Advanced Filter Designs

Lacks built-in support for elliptic filters and other optimized designs; users must rely on Python integration for custom coefficients, as the README admits with the removal of optimization-based methods.

Exception-Based Error Handling

Default error handling via exceptions may introduce overhead in realtime loops, and disabling it requires manual configuration with IIR1_NO_EXCEPTIONS, which isn't always straightforward.

Frequently Asked Questions

Quick Stats

Stars779
Forks161
Contributors0
Open Issues0
Last commit1 day ago
CreatedSince 2012

Tags

#signal-processing#dsp#osx#c-plus-plus#audio-processing#cplusplus#linux#cross-platform#filters#header-only

Built With

C
CMake
C
C++

Links & Resources

Website

Included in

C/C++70.6k
Auto-fetched 1 day ago

Related Projects

DSPFiltersDSPFilters

A Collection of Useful C++ Classes for Digital Signal Processing

Stars2,078
Forks414
Last commit3 years ago
kissfftkissfft

a Fast Fourier Transform (FFT) library that tries to Keep it Simple, Stupid

Stars2,000
Forks369
Last commit1 day ago
wavelibwavelib

C Implementation of 1D and 2D Wavelet Transforms (DWT,SWT and MODWT) along with 1D Wavelet packet Transform and 1D Continuous Wavelet Transform.

Stars447
Forks138
Last commit10 months ago
fCWTfCWT

The fast Continuous Wavelet Transform (fCWT) is a library for fast calculation of CWT.

Stars403
Forks84
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub