THE FREEEQ8 MANIFESTO: A NEW STANDARD FOR AUDIO DSP

June 30, 2026 Β· View on GitHub

πŸŽ›οΈ Part of the TizWildin Plugin Ecosystem β€” 20+ free audio plugins, creator tools, lists, deconstructed-loop routers, and release surfaces.

FreeEQ8 Β· FreeVox8 Β· XyloCore Β· Instrudio Β· Therum Β· BassMaid Β· SpaceMaid Β· GlueMaid Β· MixMaid Β· MultiMaid Β· MeterMaid Β· ChainMaid Β· PaintMask Β· WURP Β· AETHER Β· WhisperGate Β· RiftWave Β· FreeSampler Β· VF-PlexLab Β· PAP-Forge-Audio

🎧 SoundCloud: TizWildin on SoundCloud β€” original music, remixes, VIP mixes, experimental drops, and underground releases.

🎁 Free Packs & Samples β€” jump to free packs & samples

🎡 Awesome Audio β€” My (FREE) Awesome Audio Dev List

▢️ YouTube β€” music, visuals, demos, and releases
🌊 Voxel Audio β€” free RGB waveform visualizer and audio export tool
πŸ“˜ Facebook Page β€” TizWildin / GareBearProductionz updates and Media

🎧 Awesome Audio Lists β€” even more audio lists, submission routes, and promotional directories

⭐ Featured / submitted on β€” full tracker β†’
Listed on Awesome Audio Plugins Dev List Listed on webprofusion/OpenAudio Listed on ad-si/awesome-music-production Covered by Rekkerd.org Covered by AudioApp.cn Covered by Midifan.com FreeEQ8 submission tracker
Typing SVG

Build status

Download latest release

GPL-3.0 Formats Platform JUCE 7.0.12 Tested in Ableton Live 10+ GitHub stars

Sponsor Buy Me a Coffee Ko-fi

FreeEQ8 is a professional-grade EQ8 / EQ Eight inspired parametric equalizer, free and open-source 8-band parametric EQ plugin for macOS, Linux, and Windows. Linear phase, dynamic EQ, match EQ, per-band drive, band linking, M/S processing, oversampling, and a real-time spectrum analyzer β€” all in a single, zero-cost plugin. Built with JUCE for VST3 and AU.

ProEQ8 is one of the most advanced EQs available, competing directly with top tools like ZL EQ and TDR Nova.

Works with Reaper! Tested and built on Ableton 10+

πŸ—‚οΈ Release Vault β€” official monetized releases, distributed tracks, and catalog proof
πŸ—‚οΈ Release Vault Repo: https://github.com/GareBear99/TizWildin-Release-Vault

⬇️ Download Now β€” Free

Download macOS Download Windows Download Linux

FabFilter Pro-Q alternative for $0–$20

2min Demo ProEQ8 is included!

All releases β†’

Is FreeEQ8/ProEQ8 the "Best"?

Yes, it is the best value EQ under $50, and arguably the best all-in-one creative EQ for budget-conscious producers. However, it is not the absolute best for pure surgical precision or workflow speed compared to industry standards "Best", Yet...

When factoring in the Pro version (ProEQ8 24Bands), the answer of quality shifts: FreeEQ8 is no longer the "best" for professional, unrestricted workflows, but the $20 upgrade makes the combined package arguably the best value EQ under $50, though it still trails paid industry standards in band count.

COMING SOON!!!

πŸ”Š Trademark Sound

BaisMaed β€” play / download Collab sound with - YUME/GR!EF

πŸ’« Thanks to our supporters

Stargazers

Final Verdict (June 2026)

Free Version: Currently Close But Not the absolute best yet. The 8-band limit and export cap make ZL Equalizer 2 the superior choice for zero-cost professional work. Pro Version ($20): The Best Value. By unlocking the 24-band SVF engine, it becomes the most capable "all-in-one" mixing tool for under $50. It is the best choice for producers who want to replace both their main EQ and a saturation plugin with a single $20 purchase. The Next engine will support a new form of quantum processing that will make it the 'Best' and that is why I put these here..

Is ProEQ8 ($20) the Best Value? Yes.

The ProEQ8 upgrade fundamentally changes the plugin's standing by unlocking the 24-band engine. 24-Band Architecture: The Pro version switches to a SIMD-vectorized State Variable Filter (SvfBandArray.h with AVX2/SSE2/Neon), matching the band count of FabFilter Pro-Q 4 and ZL Equalizer 2.

Unique Feature Set:

It is the only EQ under $50 combining:

  • 24 Bands (Dynamic & Static)
  • Linear Phase mode
  • Per-Band Saturation (Tube, Tape, Transistor, Tanh)
  • Match EQ, Band Linking, and Collision Detection

Value:

At $20, it offers a feature set that rivals plugins costing $199, making it the best budget all-in-one mixing tool (EQ + Saturation + Dynamics).

πŸ“Š Current Status
ProductFreeEQ8 β€” free/open-source 8-band parametric EQ
FormatsVST3 Β· AU Β· Standalone
PlatformsmacOS (universal) Β· Windows Β· Linux
Versionv2.3.0 (stable)
LicenseGPL-3.0

Tested in: Ableton Live 10+, REAPER, Logic Pro, FL Studio, Bitwig

Featured by: Rekkerd.org Β· AudioApp.cn Β· Midifan.com

Listed on: OpenAudio Β· awesome-music-production Β· Awesome Audio Dev List

THE FREEEQ8 MANIFESTO: A NEW STANDARD FOR AUDIO DSP

For decades, the audio software industry has been trapped in a loop of diminishing returns. Companies repackage the same foundational digital signal processing, wrap it in a sleek user interface, and market it as a groundbreaking revolution. It is the same math, dressed up nice enough to capture a following - a cycle that has largely dominated the industry standard since the release of Serum.

FreeEQ8 breaks that cycle.

FreeEQ8 isn't just another equalizer; it is an open disruption that redefines the relationship between product development, academic transparency, and commercial value in the audio space.


  1. RADICALLY TRANSPARENT MATHEMATICS

While commercial developers guard their algorithms behind proprietary black boxes to justify steep price tags, FreeEQ8 lays its architecture completely bare.

  • Open-Source Academics: Every equation, filter coefficient derivation, and DSP optimization is provided with rigorous, in-depth academic clarity.
  • The New Baseline: By giving this math away for free, the baseline for what a consumer should expect out of a professional audio utility has been permanently elevated.

  1. PEAK ENGINE TOPOLOGY

FreeEQ8 is engineered using the absolute peak of known mathematical constants implemented in tandem with high-performance, deterministic engine topology states. It represents the logical ceiling of standard digital equalization.

THE NEW MARKET REALITY: To charge money for an equalizer moving forward, a developer can no longer just copy the classics. They now have to prove their software is mathematically superior to the industry giants (the GOATs) AND superior to the baseline established by FreeEQ8. If it isn't, it doesn't deserve a price tag.


  1. A FOUNDATION FOR PIONEERS

This project is an explicit challenge to the audio engineering community to stop repeating the past. By open-sourcing a peak-tier DSP framework, the groundwork is officially laid for the next generation of pioneers to push the boundaries of sound.

Instead of wasting time rebuilding the wheel and re-dressing old concepts, developers can finally take this foundation and leap forward into genuine audio innovation.

πŸ“° Press & Coverage

OutletArticle
Rekkerd.orgFREE: FreeEQ8 parametric EQ effect plugin by Gary Doman
AudioApp.cn福利:Gary Doman ζŽ¨ε‡Ί FreeEQ8 免费开源参量均葑器
Midifan.comFreeEQ8 免费开源参量均葑器

πŸ“„ Publications

TitleVenueStatus
Real-Time State-Space Parameterization in Digital EQDAFx / AESπŸ“ Preprint

🏫 DAFx26 Demo Track (MIT, September 2026) β€” Submitted May 29, 2026 (#109)

🎁 TizWildin Hub

Create Account View Docs

Tracking our first 1,200 users β€” at 1,000 we'll run giveaways (ProEQ8 keys, sample packs, early access).

Full submission tracker: docs/FEATURED_ON.md Β· docs/SUBMISSIONS_2026.md

FreeEQ8 in Ableton Live

πŸ†š How FreeEQ8 Compares

FeatureFreeEQ8FabFilter Pro-Q 4ZL Equalizer 2TDR Nova
PriceFree$199FreeFree
Open SourceGPL-3.0β€”AGPL-3.0β€”
Bands824244 + HP/LP
Dynamic EQβœ“ (thresh / ratio / atk / rel)βœ“βœ“βœ“
Linear Phaseβœ“βœ“βœ“β€”
Match EQβœ“βœ“βœ“ (WIP)β€”
Mid/Sideβœ“ (per-band)βœ“βœ“β€” (free)
Per-Band Driveβœ“ (tanh saturation)β€”β€”β€”
Band Linkingβœ“ (groups A/B)β€”β€”β€”
Oversamplingβœ“ (1×–8Γ—)internalβ€”β€”
Adaptive Qβœ“β€”β€”β€”
Spectrum Analyzerβœ“ (4096-pt FFT)βœ“βœ“βœ“
Level Meterβœ“ (peak + RMS)β€”β€”β€”
Undo / Redoβœ“βœ“βœ“β€”
Collision Detectionβœ“ (Pro)βœ“βœ“β€”
Surround / Atmosβ€”βœ“β€”β€”
FormatsVST3, AUVST3, AU, AAX, CLAPVST3, AU, LV2VST3, AU, AAX

FreeEQ8 is the only free EQ that combines linear phase + dynamic EQ + match EQ + per-band saturation + band linking in one plugin.

⚑ ProEQ8 β€” Available Now ($20)

Love FreeEQ8? ProEQ8 takes everything further.

Buy ProEQ8

ProEQ8 is the commercial big brother of FreeEQ8 β€” same rock-solid DSP engine, massively expanded. Included in the latest release download.

FreeEQ8 (Free)ProEQ8 ($20)
Bands824
Saturation ModestanhTube Β· Tape Β· Transistor Β· Tanh
A/B Comparisonβ€”βœ“ (instant snapshot toggle)
Auto-Gain Bypassβ€”βœ“ (RMS-matched)
Piano Roll Overlayβ€”βœ“ (note frequency reference)
Collision Detectionβ€”βœ“ (overlapping band warnings)
Factory Presets3030+ (genre-specific)
Dynamic EQβœ“βœ“
Linear Phaseβœ“βœ“
Match EQβœ“βœ“
Mid/Sideβœ“βœ“
Oversamplingβœ“βœ“
Band Linkingβœ“βœ“
FormatsVST3, AUVST3, AU

ProEQ8 is included in the macOS DMG download. A license key is required to unlock it β€” purchase through the link above to receive your key via email. Without a license, ProEQ8 runs in demo mode: 2 minutes of clean playback, then a 30-second mute window (repeats).

🧠 Smart EQ Layer (shipped v2.2.3–2.2.4)

FreeEQ8 includes a real-time decision layer on top of the existing 8-band engine β€” not to replace surgical control, but to make getting to a clean mix faster than most paid EQs.

Shipped:

  • Source/DSP/ResonanceDetector.h β€” log-frequency peak finder that produces up to 4 ranked suggestion bands with recommended frequency, cut-gain, Q, confidence score, and a semantic label ("mud", "boxiness", "harshness", "sibilance" …).
  • Source/DSP/IntentMode.h β€” behavioural biasing: None / Vocal Clean / Drum Punch / Guitar Space / Master Polish. Each mode shifts the detector’s scoring curve toward the frequency zones that matter for that source, without forcing preset bands.
  • Source/DSP/FrequencyExplainer.h β€” static frequency β†’ semantic description map powering the Explain-on-hover UX (β€œCutting mud (320 Hz)” / β€œAdding air (12 kHz)”).
  • intent_mode APVTS parameter β€” host-automatable, wired to editor dropdown.
  • Glowing suggestion-node overlay on the response curve (amber rings, confidence-scaled opacity).
  • One-click β€œapply suggestion” β€” drops a detected peak into the next unused band via APVTS (undo-able).
  • Explain-on-hover popup when mousing over any band or suggestion node.
  • Pre-ring warning overlay when DrumPunch + Linear Phase are active simultaneously.
  • Deterministic, allocation-free, UI-thread safe β€” piggybacks on the existing triple-buffered SpectrumFIFO.

Coming next:

  • Zero-Lag auto-switch between linear-phase (precision) and minimum-phase (real-time)

No other free open-source 8-band EQ currently combines intent-aware resonance detection + explain-on-hover + one-click apply. See docs/SMART_EQ_LAYER.md for the full algorithm and status matrix.

πŸ” Code Audit

A full line-by-line audit of the DSP, threading, and restriction system is published at AUDIT.md. Summary: FreeEQ8 has zero feature locks and zero nag interruptions during real-time playback. Offline export is limited to 4 minutes 30 seconds (ProEQ8 removes this limit). All bug fixes through v2.2.5 are documented with root cause analysis.

πŸ“Š Benchmarks & RT-safety

FreeEQ8 / ProEQ8 v2.2.5 ships with a proven real-time-safe DSP engine:

  • Zero heap allocation on the audio thread for any user action (pooled oversamplers).
  • Canonical swap-chain triple-buffer for both the spectrum FIFO and the linear-phase FIR kernel β€” verified under concurrent stress (3 runs Γ— 400 ms, ~600 M samples, 0 tears).
  • Linear-phase FIR rebuild on a dedicated juce::Thread β€” no FFT work on the audio thread.
  • MatchEQ chunking handles DAW blocks of any size (previously dropped on n > fftSize).

Full evidence and numbers:

✨ Features

Core EQ

  • 8 Independent Bands β€” full parametric control (frequency, Q, gain)
  • 6 Filter Types per band: Bell, Low Shelf, High Shelf, High Pass, Low Pass, Bandpass
  • Multiple Slopes β€” 12 / 24 / 48 dB/oct via cascaded biquad stages
  • Per-Band Enable/Disable & Solo for A/B comparison and audition
  • Parameter Smoothing (20ms linear interpolation, coefficients refreshed every 16 samples during parameter automation; every sample when Dynamic EQ is active)

Advanced Processing

  • Linear Phase Mode β€” symmetric FIR from combined biquad magnitude, overlap-add FFT convolution (2048-sample latency when active)
  • Dynamic EQ β€” per-band envelope follower with sidechain bandpass, threshold, ratio, attack & release
  • Per-Band Saturation / Drive β€” gain-compensated tanh waveshaper (0–100%)
  • Mid/Side Processing β€” M/S encode/decode with per-band channel routing (Both / L-Mid / R-Side)
  • Oversampling β€” 1x / 2x / 4x / 8x using JUCE polyphase IIR half-band filters
  • Band Linking β€” link groups A/B propagate frequency (ratio), gain & Q (delta) changes
  • Match EQ β€” capture a reference spectrum, analyze current signal, compute & apply per-bin correction via FFT
  • Adaptive Q β€” automatically widens Q with increasing gain

Visualization & UI

  • Real-Time Spectrum Analyzer β€” 4096-point FFT, Hann window, pre/post EQ toggle
  • Interactive Response Curve β€” composite + per-band colored curves with dB/frequency grid
  • Draggable Band Nodes β€” click-drag for freq/gain, shift+drag for Q, right-click context menu
  • Stereo Level Meter β€” peak hold + RMS display
  • Selected-Band Paradigm β€” 8 colored band buttons, single set of controls rebound per selection
  • Dark Theme β€” resizable UI (750Γ—550 to 1400Γ—900)

Global Controls

  • Output Gain (-24 dB to +24 dB)
  • Scale (0.1x to 2x) β€” scales all band gains simultaneously
  • Preset System β€” save / load / delete, 30 factory presets
  • Undo / Redo β€” integrated with JUCE UndoManager via APVTS
  • State Save/Restore β€” all settings persist in your DAW project

DSP Specifications

  • Stereo processing (or Mid/Side)
  • Sample rates: 44.1 kHz to 192 kHz+
  • Dual filter topology: RBJ TDF-II biquad (FreeEQ8) + Simper SVF via trapezoidal integration (ProEQ8) β€” modulation-stable Dynamic EQ
  • Double-precision (64-bit) internal arithmetic, float I/O
  • Zero latency in minimum-phase mode; linear phase adds 2048 samples
  • 0.62% single-core CPU budget at 44.1 kHz (SVF 8-band stereo, 161Γ— headroom)
  • Low CPU usage (disable unused bands, lower oversampling to reduce load)

Compatibility

  • macOS: 10.13 High Sierra and later (universal binary: Intel + Apple Silicon)
  • Linux: Debian/Ubuntu 20.04+ (VST3 only; see build instructions for dependencies)
  • Windows: 10 and later (64-bit)
  • DAWs tested: Ableton Live 10+, Logic Pro, FL Studio, Bitwig, REAPER
  • Formats: VST3, AU (macOS), Standalone (all platforms)

πŸš€ Quick Start

macOS

git clone --recursive https://github.com/GareBear99/FreeEQ8.git
cd FreeEQ8
./build_macos.sh

Linux (Debian/Ubuntu)

git clone --recursive https://github.com/GareBear99/FreeEQ8.git
cd FreeEQ8
./build_linux.sh          # installs deps via apt, then builds

Windows

git clone --recursive https://github.com/GareBear99/FreeEQ8.git
cd FreeEQ8
.\build_windows.ps1

Plugins will be automatically installed to your system plugin directories.

πŸ“‹ Build Instructions

Prerequisites

macOS

  • Xcode Command Line Tools: xcode-select --install
  • CMake 3.15+: brew install cmake

Linux (Debian/Ubuntu)

  • GCC 9+ or Clang 10+
  • CMake 3.15+
  • JUCE system dependencies (installed automatically by build_linux.sh): libasound2-dev libjack-jackd2-dev libfreetype6-dev libx11-dev libxcomposite-dev libxcursor-dev libxext-dev libxfixes-dev libxinerama-dev libxrandr-dev libxrender-dev libwebkit2gtk-4.0-dev

Windows

  • Visual Studio 2019+ with C++ build tools
  • CMake 3.15+

Detailed Build Steps

1. Clone with JUCE Submodule

git clone --recursive https://github.com/GareBear99/FreeEQ8.git
cd FreeEQ8

If you already cloned without --recursive:

git submodule update --init --recursive
cd JUCE && git checkout 7.0.12 && cd ..

2. Build

macOS:

chmod +x build_macos.sh
./build_macos.sh

Linux:

chmod +x build_linux.sh
./build_linux.sh

Windows:

.\build_windows.ps1

3. Plugin Installation

macOS (automatic):

  • VST3: ~/Library/Audio/Plug-Ins/VST3/FreeEQ8.vst3
  • AU: ~/Library/Audio/Plug-Ins/Components/FreeEQ8.component

Linux (manual):

  • Copy build/FreeEQ8_artefacts/Release/VST3/FreeEQ8.vst3 to ~/.vst3/

Windows (manual):

  • Copy build\FreeEQ8_artefacts\Release\VST3\FreeEQ8.vst3 to:
    • C:\Program Files\Common Files\VST3\

4. Rescan in Your DAW

  • Ableton Live: Preferences β†’ Plug-ins β†’ Rescan
  • Logic Pro: Automatic detection
  • FL Studio: Options β†’ Manage plugins β†’ Find plugins

πŸŽ›οΈ Usage Guide

Parameter Ranges

ParameterRangeScaleDescription
Frequency20 Hz – 20 kHzLogarithmicCenter/cutoff frequency
Q0.1 – 24LogarithmicBandwidth (0.1 = wide, 24 = narrow)
Gain-24 dB to +24 dBLinearBoost/cut amount
Slope12 / 24 / 48 dB/octDiscreteFilter steepness (1/2/4 cascaded stages)
Drive0 – 100 %LinearPer-band tanh saturation amount
ChannelBoth / L-Mid / R-SideDiscretePer-band channel routing
Link Group-- / A / BDiscreteBand linking group
Dyn Threshold-60 dB to 0 dBLinearDynamic EQ threshold
Dyn Ratio1:1 – 20:1LogarithmicDynamic EQ compression ratio
Dyn Attack0.1 – 100 msLogarithmicDynamic EQ attack time
Dyn Release1 – 1000 msLogarithmicDynamic EQ release time
Output-24 dB to +24 dBLinearMaster output level
Scale0.1x – 2xLinearGlobal gain multiplier

Common EQ Techniques

Surgical EQ (Problem Frequency Removal)

Band: Bell filter
Q: 6-12 (narrow)
Gain: -6 to -12 dB

Musical EQ (Broad Tonal Shaping)

Band: Bell/Shelf filter
Q: 0.5-2 (wide)
Gain: Β±3 to Β±6 dB

High-Pass Filtering

Band: HighPass filter
Freq: 20-120 Hz (depends on source)
Q: 0.7 (standard)

Example Settings

Kick Drum:

  • Band 1: Bell @ 60Hz, Q=1.5, +4dB (sub thump)
  • Band 2: Bell @ 200Hz, Q=3, -3dB (cardboard removal)
  • Band 3: Bell @ 3kHz, Q=2, +2dB (beater click)

Acoustic Guitar:

  • Band 1: HighPass @ 80Hz (rumble removal)
  • Band 2: Bell @ 200Hz, Q=1.5, -2dB (boominess)
  • Band 3: Bell @ 3kHz, Q=1, +3dB (presence)
  • Band 4: HighShelf @ 8kHz, +2dB (air)

Vocals:

  • Band 1: HighPass @ 80Hz (rumble)
  • Band 2: Bell @ 250Hz, Q=2, -3dB (muddiness)
  • Band 3: Bell @ 1kHz, Q=1, +2dB (body)
  • Band 4: Bell @ 5kHz, Q=2, +3dB (clarity)

πŸ”§ Technical Details

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚               FreeEQ8 Audio Processor                β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Input Buffer (Stereo)                               β”‚
β”‚          ↓                                           β”‚
β”‚  Spectrum FIFO (pre-EQ) ──→ UI spectrum display      β”‚
β”‚          ↓                                           β”‚
β”‚  β”Œβ”€β”€β”€ IF linear_phase ───┐  β”Œβ”€β”€ ELSE (min-phase) ──┐│
β”‚  β”‚ Build composite mag   β”‚  β”‚ Oversampling ↑ (opt.) β”‚β”‚
β”‚  β”‚ response from biquads β”‚  β”‚       ↓               β”‚β”‚
β”‚  β”‚       ↓               β”‚  β”‚ M/S Encode (optional) β”‚β”‚
β”‚  β”‚ FIR convolution       β”‚  β”‚       ↓               β”‚β”‚
β”‚  β”‚ (overlap-add FFT,     β”‚  β”‚ Per-band loop Γ—8:     β”‚β”‚
β”‚  β”‚  4096-tap, 8192 FFT,  β”‚  β”‚  β”œ Dyn EQ envelope    β”‚β”‚
β”‚  β”‚  2048-sample latency) β”‚  β”‚  β”œ Smooth + update    β”‚β”‚
β”‚  β”‚       ↓               β”‚  β”‚  β”‚  coefficients      β”‚β”‚
β”‚  β”‚ Output Gain           β”‚  β”‚  β”œ Cascaded biquads   β”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚  β”‚  (1/2/4 stages)    β”‚β”‚
β”‚                              β”‚  β”” Drive (tanh)       β”‚β”‚
β”‚                              β”‚       ↓               β”‚β”‚
β”‚                              β”‚ Output Gain & Scale   β”‚β”‚
β”‚                              β”‚       ↓               β”‚β”‚
β”‚                              β”‚ M/S Decode (optional) β”‚β”‚
β”‚                              β”‚       ↓               β”‚β”‚
β”‚                              β”‚ Oversampling ↓ (opt.) β”‚β”‚
β”‚                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚          ↓                                           β”‚
β”‚  Match EQ correction (FFT overlap-add, optional)     β”‚
β”‚          ↓                                           β”‚
β”‚  Spectrum FIFO (post-EQ) ──→ UI spectrum display     β”‚
β”‚          ↓                                           β”‚
β”‚  Output Metering (peak hold + RMS)                   β”‚
β”‚          ↓                                           β”‚
β”‚  Output Buffer (Stereo)                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

DSP Implementation

  • Filter Structure: Transposed Direct Form II biquad (Biquad.h) + Simper SVF (SvfBiquad.h) with tan() pre-warp
  • Coefficient Calculation: RBJ Audio EQ Cookbook (FreeEQ8) / Cytomic SVF (ProEQ8)
  • Smoothing: Linear interpolation over 20ms
  • Update Rate: Coefficients refreshed every sample when Dynamic EQ is active; every 16 samples during parameter smoothing (amortised cost). Variable-cadence engine (v2.2.3) batches to 4-sample intervals during stable envelopes.
  • Precision: Double-precision (64-bit) coefficients and internal state; float I/O
  • Linear Phase: 4096-tap symmetric FIR, 8192-point FFT, overlap-add convolution
  • Dynamic EQ: One-pole envelope follower with sidechain bandpass at band frequency
  • Spectrum: 4096-point FFT, Hann window, lock-free SPSC FIFO
  • SIMD Scaffold: SvfBandArray<8> with AVX2/SSE2/Neon dispatch (v2.2.4)

Project Structure

FreeEQ8/
β”œβ”€β”€ Source/
β”‚   β”œβ”€β”€ PluginProcessor.h/.cpp     # Main audio processor
β”‚   β”œβ”€β”€ PluginEditor.h/.cpp        # UI editor & layout
β”‚   β”œβ”€β”€ Config.h                   # Product config (FreeEQ8 vs ProEQ8)
β”‚   β”œβ”€β”€ DSP/
β”‚   β”‚   β”œβ”€β”€ Biquad.h               # RBJ biquad filter (FreeEQ8 path)
β”‚   β”‚   β”œβ”€β”€ SvfBiquad.h            # Simper SVF filter (ProEQ8 path)
β”‚   β”‚   β”œβ”€β”€ SvfBandArray.h         # SIMD-vectorised SVF (AVX2/SSE2/Neon)
β”‚   β”‚   β”œβ”€β”€ EQBand.h               # EQ band with smoothing, drive & dynamic EQ
β”‚   β”‚   β”œβ”€β”€ SpectrumFIFO.h         # Lock-free SPSC triple-buffer FFT FIFO
β”‚   β”‚   β”œβ”€β”€ LinearPhaseEngine.h    # FIR-based linear-phase EQ engine
β”‚   β”‚   β”œβ”€β”€ NaturalPhaseEngine.h   # 256-tap natural-phase mode
β”‚   β”‚   β”œβ”€β”€ MatchEQ.h              # Reference capture & correction curve
β”‚   β”‚   β”œβ”€β”€ ResonanceDetector.h    # Allocation-free resonance peak finder
β”‚   β”‚   β”œβ”€β”€ IntentMode.h           # Vocal/Drum/Guitar/Master weighting
β”‚   β”‚   └── FrequencyExplainer.h   # Semantic frequency β†’ label map
β”‚   β”œβ”€β”€ UI/
β”‚   β”‚   β”œβ”€β”€ ResponseCurveComponent.h/.cpp  # EQ curve + spectrum + nodes
β”‚   β”‚   └── LevelMeter.h           # Stereo peak/RMS level meter
β”‚   β”œβ”€β”€ Presets/
β”‚   β”‚   └── PresetManager.h/.cpp   # Preset save/load system
β”‚   β”œβ”€β”€ UpdateChecker.h            # GitHub releases update checker
β”‚   └── LicenseValidator.h         # License + demo + export limit
β”œβ”€β”€ Tests/
β”‚   β”œβ”€β”€ BiquadTest.cpp             # RBJ coefficient correctness
β”‚   β”œβ”€β”€ SvfTest.cpp                # SVF correctness (11 assertions)
β”‚   β”œβ”€β”€ AuditRegressionTest.cpp    # Triple-buffer + chunking stress tests
β”‚   └── AuditBench.cpp             # RT-safety micro-benchmarks
β”œβ”€β”€ server/
β”‚   β”œβ”€β”€ stripe-webhook.js          # Cloudflare Worker for Stripe β†’ license
β”‚   β”œβ”€β”€ wrangler.toml              # Wrangler deployment config
β”‚   └── package.json               # Server dependencies (wrangler)
β”œβ”€β”€ PAPER.md                       # Technical paper (DAFx/AES submission)
β”œβ”€β”€ BENCHMARK.md                   # Full benchmark results & methodology
β”œβ”€β”€ AUDIT.md                       # Line-by-line code audit report
β”œβ”€β”€ ROADMAP_2_5_PLUS.md            # Long-horizon roadmap through v2.3.0
β”œβ”€β”€ STRIPE_SETUP.md                # ProEQ8 Stripe deployment guide
β”œβ”€β”€ FeatureBench.cpp               # Standalone benchmark suite (no JUCE)
β”œβ”€β”€ CMakeLists.txt                 # CMake config (FreeEQ8 + ProEQ8 targets)
β”œβ”€β”€ docs/                          # Screenshots & assets
β”œβ”€β”€ JUCE/                          # JUCE framework (submodule)
└── build/                         # Build output (ignored)

πŸ›£οΈ Roadmap

v0.4.0

  • Real-time spectrum analyzer
  • Interactive frequency response curve display
  • Draggable band nodes on curve
  • Adaptive Q implementation
  • Band solo/audition mode
  • Preset management system

v0.5.0

  • Multiple filter slopes (12/24/48 dB/oct) via cascaded biquads
  • Mid/Side processing mode with M/S encode/decode
  • Per-band channel routing (Both / L-Mid / R-Side)
  • Oversampling options (1x, 2x, 4x, 8x)
  • Output metering with peak hold and RMS
  • Resizable UI (700Γ—500 to 1400Γ—900)

v1.0.0

  • Linear phase mode (FIR convolution via overlap-add FFT)
  • Dynamic EQ capabilities (per-band envelope follower with threshold/ratio/attack/release)
  • Band linking (link groups A/B with delta-based freq/gain/Q propagation)
  • Per-band saturation/drive (gain-compensated tanh waveshaper)
  • Undo/Redo system (integrated with APVTS UndoManager)
  • Match EQ functionality (capture reference spectrum, compute & apply correction)

v2.0.0

  • Online license activation (2 devices per key) with Stripe checkout
  • ProEQ8 commercial target (24 bands, 4 saturation modes, A/B, auto-gain)
  • Cloudflare Worker license server + Resend email delivery
  • Demo mode for unactivated ProEQ8 (2 min clean + 30 s mute cycle)

v2.1.0

  • Standalone app included in all platform packages
  • Hardened ProEQ8 license: device-bound activation, 7-day re-verify, 30-day offline grace
  • Server /verify endpoint for periodic re-validation
  • Obfuscated signing secret in binary
  • Fixed JUCE 7.0.12 API compatibility

v2.2.0

  • Real-time safety: zero heap allocation on the audio thread for any user action (Milestone A / A1)
  • SpectrumFIFO + LinearPhaseEngine kernel on canonical swap-chain triple-buffer (A4 / A5)
  • Linear-phase FIR rebuild moved to a dedicated juce::Thread worker (A5)
  • MatchEQ::applyCorrection handles arbitrarily large DAW blocks instead of silent early-return (A3)
  • Editor modal dialogs + license HTTP callbacks are lifetime-safe via juce::WeakReference (A2)
  • Demo cadence: 2 minutes of clean playback + 30-second mute window
  • getTailLengthSeconds reports the MatchEQ overlap-add tail for offline renders (A7)

v2.2.1–2.2.2

  • Transistor saturation gain bug fixed (ProEQ8)
  • Dynamic EQ zero-lag coefficient update when dynEnabled
  • MatchEQ `correctionGain[]$ \text{precompute} (3 \times \text{throughput} \text{improvement})
  • [\text{x}] \text{Simper} \text{SVF} \text{engine} ($SvfBiquad.h`) β€” modulation-stable SVF, trapezoidal integration

v2.2.3–2.2.4

  • Variable-cadence Dynamic EQ (75% CPU savings on sustained signals)
  • intent_mode APVTS parameter + editor dropdown
  • ResonanceDetector wired to UI timer at 30 Hz
  • Suggestion overlay (glowing amber nodes on response curve)
  • One-click β€œapply suggestion” into next unused band
  • Explain-on-hover popup on band + suggestion nodes
  • Compact / mini-window mode (identical coordinate mapping)
  • Pre-ring warning overlay (DrumPunch + Linear Phase)
  • Oversampling crossfade buffer (128-sample, eliminates pop)
  • SvfBandArray SIMD scaffold (AVX2/SSE2/Neon)
  • NaturalPhaseEngine (256-tap, 128-sample latency)
  • pluginval CI (strictness-level 10)

v2.2.5

  • Transistor saturation invD*d no-op bug fixed in shipped code
  • MatchEQ hot-path pow() eliminated β€” correctionGain[] precompute
  • SvfTest.cpp correctness suite (11 assertions, all passing)
  • FreeEQ8 export limit (4:30 offline render)
  • Version consistency across all docs (no fake v2.4/v2.5/v3.0 refs)
  • PAPER.md section numbering fixed (Β§6 Benchmarks, Β§8 Compact View, Β§9 Future Work)

v2.3.0 (Current Release) β€” Stable Release

  • Version alignment (CMakeLists.txt + Config.h both 2.3.0)
  • Get Pro button for FreeEQ8 (opens ProEQ8 checkout)
  • Full codebase audit completed
  • Smart EQ layer documentation expanded in PAPER.md
  • CI/CD fixes (Linux webkit2gtk-4.1, Windows MSVC lambda capture, macOS retry)
  • Build verified (AU, VST3, Standalone) on all platforms

v2.4.0 (Planned) β€” ProEQ8 Launch

  • SVF wired into EQBand via #if PROEQ8
  • 24-band layout
  • Zero-Lag auto-switch between linear-phase and minimum-phase modes
  • Stripe checkout live
  • Cross-instance ARC-Core spine

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Development Guidelines

  • Follow existing code style
  • Add comments for complex DSP algorithms
  • Test on both macOS and Windows if possible
  • Update documentation for new features

Areas for Contribution

  • 🎨 UI/UX improvements
  • πŸ”Š Additional filter types
  • πŸ› Bug fixes and optimizations
  • πŸ“š Documentation improvements
  • πŸ§ͺ Unit tests

πŸ“ Changelog

See CHANGELOG.md for the full version history with detailed per-file changes.

πŸ“„ License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

Note: JUCE has its own licensing requirements. For commercial use, you may need a JUCE license. See JUCE Licensing for details.

FreeEQ8 is an original implementation of a parametric EQ plugin. It is:

  • NOT affiliated with, endorsed by, or derived from Ableton AG
  • NOT a clone of Ableton's EQ Eight
  • An independent, open-source project
  • Built using public-domain DSP algorithms (RBJ Audio EQ Cookbook)

πŸ“Š Benchmarks

Every feature claim is backed by a reproducible standalone benchmark suite. All features pass at >10x CPU headroom at 44.1 kHz / 512-sample blocks.

Key numbers (g++ -O3, x86-64, median of 16 trials):

Featurens/sampleHeadroom
Single biquad band (Bell)5.1>2200x
8-band stereo full path41.5>273x
Dynamic EQ (per-sample, zero-lag)68.3>166x
Linear phase FIR rebuild36.5 Β΅s/eventbackground thread
Match EQ correction (v2.2.1)2.8>4000x
Match EQ correction (old naive pow)7.41527x
Mid/Side encode+decode0.42>27,000x
SpectrumFIFO push (audio thread)0.66>17,000x
Oversampling 8x EQ cost213>53x
Tanh saturation (stereo)61.4>184x

β†’ Full results and methodology: BENCHMARK.md

Build and run the benchmarks yourself (no JUCE required):

g++ -std=c++17 -O3 -DNDEBUG -pthread Tests/FeatureBench.cpp -o FeatureBench -I.
./FeatureBench

πŸ› Known Issues

  • Changing oversampling mid-playback may cause a brief click (IIR half-band filter state differs between orders; reset on switch)
  • Linear phase mode adds 2048 samples of latency (reported to the DAW via setLatencySamples)
  • Match EQ capture is mono-summed; correction is applied per-channel
  • Linear phase mode does not apply M/S, per-band drive, or dynamic EQ β€” those features require per-sample biquad state and are on the minimum-phase path only. The oversampling selector and the affected controls are greyed out in the UI when linear phase is active

Fixed in v2.2.1:

  • Transistor saturation gain error (ProEQ8) β€” double-multiply bug caused ~dΓ— level at high drive; fixed
  • Dynamic EQ coefficient lag β€” up to 16-sample transient lag between envelope detection and filter response; now zero-lag when Dynamic EQ is enabled
  • Linear phase + oversampling undocumented interaction β€” behaviour now explicitly documented in source

Report issues at: https://github.com/GareBear99/FreeEQ8/issues

πŸ’‘ Tips & Tricks

Performance Optimization

  • Disable unused bands to reduce CPU load
  • Use wider Q values (lower numbers) for smoother processing
  • Enable adaptive Q for automatic gain-dependent Q adjustment

Mixing Workflow

  1. Start with subtractive EQ (cut problem frequencies)
  2. Use narrow Q to identify resonances
  3. Use wide Q for musical boosts
  4. Check your EQ in mono to avoid phase issues

Sound Design

  • Stack multiple bell filters at the same frequency with different Q values
  • Automate the scale parameter for dramatic filter sweeps
  • Use extreme Q values (>10) for creative resonances

πŸ™ Acknowledgments

  • JUCE Framework - Cross-platform audio plugin framework
  • Robert Bristow-Johnson - RBJ Audio EQ Cookbook
  • Audio Plugin Development Community - For knowledge sharing
  • Ableton - For inspiration (not affiliation)

πŸ’– Support the Project

FreeEQ8 is free and open source. If it's useful to you, consider supporting development:

GitHub Sponsors Buy Me a Coffee Ko-fi

Other ways to help:

  • ⭐ Star this repo β€” helps others find FreeEQ8
  • πŸ› Report bugs β€” open an issue
  • πŸ”€ Contribute β€” PRs are welcome
  • πŸ“£ Spread the word β€” tell a producer friend

πŸ“§ Contact


Other Projects by Me!

https://github.com/GareBear99/TizWildinEntertainmentHUB

https://github.com/GareBear99/awesome-audio-plugins-dev

https://github.com/GareBear99/PaintMask_Free-JUCE-Plugin

https://github.com/GareBear99/WURP_Toxic-Motion-Engine_JUCE

https://github.com/GareBear99/RiftWaveSuite_RiftSynth_WaveForm_Lite

https://github.com/GareBear99/AETHER_Choir-Atmosphere-Designer

https://github.com/GareBear99/WhisperGate_Free-JUCE-Plugin

https://github.com/GareBear99/Therum_JUCE-Plugin

https://github.com/GareBear99/MixMaid

https://github.com/GareBear99/BassMaid

https://github.com/GareBear99/SpaceMaid

https://github.com/GareBear99/GlueMaid

https://github.com/GareBear99/XyloCore

Built with ❀️ by Gary Doman (GareBear99/TizWildin)

"Great sound shouldn't cost anything"

footer banner

TizWildin FREE sample packs

PackDescription
TizWildin-Aurora3-segment original synth melody pack with loops, stems, demo renders, and neon/cinematic phrasing
TizWildin-ObsidianDark cinematic sample pack with choir textures, menu loops, transitions, bass, atmosphere, drums, and electric-banjo extensions
TizWildin-Skyline30 BPM-tagged synthwave and darkwave loops with generator snapshot and dark neon additions
TizWildin-ChromaMulti-segment game synthwave loop sample pack from TizWildin Entertainment
TizWildin-ChimeMulti-part 88 BPM chime collection spanning glass, void, halo, reed, and neon synthwave lanes
Free Violin Synth Sample KitPhysical-model violin sample kit rendered from the Instrudio violin instrument
Free Dark Piano Sound Kit88 piano notes + dark/cinematic loops and MIDI
Free 808 Producer Kit94 hand-crafted 808 bass samples tuned to every chromatic key
Free Riser Producer Kit115+ risers and 63 downlifters - noise, synth, drum, FX, cinematic
Phonk Producer ToolkitDrift phonk starter kit - 808s, cowbells, drums, MIDI, templates
Free Future Bass Producer KitLoops, fills, drums, bass, synths, pads, and FX
  • VF-PlexLab - VocalForge PersonaPlex Lab starter repo for a JUCE plugin + local backend + HTML tester around NVIDIA PersonaPlex.
  • PAP-Forge-Audio - Procedural Autonomous Plugins runtime for generating, branching, validating, and restoring plugin projects from natural-language sound intent.

Tester Call

FreeEQ8 is looking for real-world DAW testers.

Please test the latest release in your DAW and report compatibility feedback here:

https://github.com/GareBear99/FreeEQ8/issues/new?template=tester-feedback.yml

Helpful feedback includes OS, DAW, plugin format, what worked, what broke, and steps to reproduce.

See the full tester call:

https://github.com/GareBear99/FreeEQ8/blob/main/docs/testing/TESTER_CALL.md