🎛️ 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
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
FabFilter Pro-Q alternative for $0–$20
2min Demo ProEQ8 is included!
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!!!
BaisMaed — play / download Collab sound with - YUME/GR!EF
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
| Product | FreeEQ8 — free/open-source 8-band parametric EQ |
| Formats | VST3 · AU · Standalone |
| Platforms | macOS (universal) · Windows · Linux |
| Version | v2.3.1 (stable) |
| License | GPL-3.0 |
Tested in: Ableton Live 10+, REAPER, Logic Pro, FL Studio, Bitwig
Featured by: Rekkerd.org · AudiArtist.com · AudioApp.cn · Midifan.com
Listed on: StudioRack · OpenAudio · awesome-music-production · 孤狼音频 / guaud.com · geekaifree / BookShelf — plus a self-maintained index
Packaged for Linux by: Audinux — independently packaged for Fedora as freeeq8 (2.1.0-1, 2.2.0-1, 2.3.0-1)
Install via StudioRack: studiorack plugin install garebear99/freeeq8
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.
- 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.
- 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.
- 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.
Details
Ten verified third-party pickups. **Every link below returned HTTP 200 on 2026-07-31.** Self-maintained pages are labelled as such and are not counted as third-party validation.| Outlet | Article | Lang |
|---|---|---|
| Rekkerd.org | FREE: FreeEQ8 parametric EQ effect plugin by Gary Doman | EN |
| AudiArtist.com | FreeEQ8: Free Dynamic EQ VST3 for Mixing — most detailed write-up to date; covers dynamic EQ, linear-phase limits, Match EQ caveats, M/S and oversampling | EN |
| Midifan.com | FreeEQ8 免费开源参量均衡器 — major Chinese audio-technology outlet | 中文 |
| AudioApp.cn | 福利:Gary Doman 推出 FreeEQ8 免费开源的参量均衡器效果插件 | 中文 |
| Registry | Entry | Lang |
|---|---|---|
| StudioRack / Open Audio Stack | Plugin registry page — FreeEQ8 v2.3.0, GPL-3.0, Equalizer tag, with demo audio and image assets |
EN |
| webprofusion / OpenAudio | Audio Plugins | EN |
| ad-si / awesome-music-production | Apps — PR #197 merged 2026-03-16 | EN |
| 孤狼音频 / guaud.com | Curated free 64-bit VST3 effects — FreeEQ8 (8 段参量动态均衡器), listed alongside ZL Equalizer 2 and Pultec / API 550A / LA-2A / Fairchild 660 emulations |
中文 |
| geekaifree / BookShelf | music-production.md — 免费开源 8 段参量均衡插件 (VST3/AU) |
中文 |
| Distributor | Detail |
|---|---|
| Audinux (Fedora COPR) | audinux.github.io — packaged independently as freeeq8; pages/news.md records 2.1.0-1, 2.2.0-1 and 2.3.0-1. Packaged by the Audinux maintainers, not submitted by us |
Install via StudioRack:
studiorack plugin install garebear99/freeeq8-
What Makes FreeEQ8/ProEQ8 Unique? No single plugin in this price bracket combines all of these features in one window: Per-Band Drive / Saturation: Placing discrete saturation modeling (Tube, Tape, Transistor, Tanh) on individual EQ nodes so you can boost 3 kHz on a vocal and saturate only that boosted band.Match EQ & Resonance Suggestions: Scanning incoming signals against references or detecting mix collisions/boxiness dynamically.Linear Phase + Dynamic EQ + M/S simultaneously: Having dynamic threshold controls alongside linear phase processing on a per-band basis.
-
The Direct Competitors (Where do they win or lose?)
A. FabFilter Pro-Q 3 / Pro-Q 4 ($199)How it compares: Pro-Q is the industry gold standard for visual mixing workflow, collision detection, and multi-channel/Atmos support.Where Pro-Q wins: Cleanest, most fluid GUI in the industry, unlimited bands, and unmatched workflow speed.Where FreeEQ8/ProEQ8 wins: Cost ($0 / $20 vs $199), plus Pro-Q lacks integrated per-band analog saturation modeling (you have to pair Pro-Q with FabFilter Saturn to get a similar effect).
B. Tokyo Dawn Labs (TDR) Nova (Free / $60 GE)How it compares: The benchmark for free dynamic EQs.Where TDR Nova wins: Exceptionally high DSP accuracy, ultra-clean crossover network, and proven stability across complex mastering tasks.Where FreeEQ8/ProEQ8 wins: TDR Nova Free is limited to 4 bands + HP/LP filters. FreeEQ8 gives you 8 bands, linear phase modes, Match EQ, and saturation directly in the box.
C. ToneBoosters Equalizer 4 (~$50)How it compares: One of the closest commercial alternatives under $50.Where ToneBoosters wins: Supports up to 16 bands, AI-assisted spectral suggestions, and immersive audio formats.Where FreeEQ8/ProEQ8 wins: Fully open-source codebase (GPL-3.0), zero DRM, and per-band drive circuits.
D. ZL Equalizer 2 (Free / Open Source)How it compares: The closest open-source rival.Where ZL Equalizer wins: Pure surgical utility—24 bands out-of-the-box for $0, lower CPU footprint, and filter slopes up to 96 dB/octave. Where FreeEQ8/ProEQ8 wins: Creative features (saturation, piano roll overlay, match EQ, and adaptive sound design features).
The two strongest signals here — the Audinux Fedora packaging and the Open Audio Stack registry entry — both came from third parties adopting the plugin on their own. Neither came from the submission campaign, which produced zero merges between 2026-04-23 and 2026-07-31.
Chinese-language coverage is the largest non-English share at four pickups (Midifan.com, AudioApp.cn, guaud.com, geekaifree/BookShelf). No Japanese or Korean coverage exists. FreeEQ8 is also not listed on KVR Audio, AlternativeTo, VST4Free, Plugins4Free or Audio Plugins For Free — those remain open opportunities rather than existing wins.
One further index exists at GareBear99 / awesome-audio-plugins-dev, but it is self-maintained and is deliberately excluded from the counts above.
Full evidence, per-item verification notes and the pending-submission tracker:
docs/FEATURED_ON.md.
| Title | Venue | Status |
|---|---|---|
| Real-Time State-Space Parameterization in Digital EQ | DAFx / AES | 📝 Preprint |
🏫 DAFx26 Demo Track (MIT, September 2026) — Submitted May 29, 2026 (#109)
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
| Feature | FreeEQ8 | FabFilter Pro-Q 4 | ZL Equalizer 2 | TDR Nova |
|---|---|---|---|---|
| Price | Free | $199 | Free | Free |
| Open Source | GPL-3.0 | — | AGPL-3.0 | — |
| Bands | 8 | 24 | 24 | 4 + 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 | — | ✓ | — | — |
| Formats | VST3, AU | VST3, AU, AAX, CLAP | VST3, AU, LV2 | VST3, AU, AAX |
FreeEQ8 is the only free EQ that combines linear phase + dynamic EQ + match EQ + per-band saturation + band linking in one plugin.
Read this before trying ProEQ8 from the v2.3.1 download.
The ProEQ8 bundled in the v2.3.1 macOS DMG is a demo that cannot currently be unlocked, and it should not be used for real work. Specifically:
- There is no working purchase path. The configured checkout host does not resolve, so no license key can be obtained. Demo mode cannot be exited.
- Demo mode interrupts audio — 2 minutes of clean playback, then a 30-second mute window, repeating. Offline export is disabled entirely.
- Known shelf defect. ProEQ8's SVF shelves overshoot the set gain by up to 24 dB at high Q. A +12 dB shelf at Q 24 peaks near +36 dB. FreeEQ8's shelves were corrected in v2.3.1 and are bounded; ProEQ8's have not been yet.
- macOS only. ProEQ8 is built and validated on Windows and Linux but is not packaged there.
Use FreeEQ8 instead. It is unrestricted in real time, has no nag screens, and its shelf response is measured monotonic at every Q.
All four points are targeted for v2.3.2. Until then treat ProEQ8 in this release as a preview of the feature set, not a usable plugin.
ProEQ8 is the commercial counterpart to FreeEQ8 — same DSP engine, expanded feature set. The comparison below describes the intended product. It is not currently purchasable, and the demo bundled in v2.3.1 has the limitations listed above.
| FreeEQ8 (Free) | ProEQ8 ($20) | |
|---|---|---|
| Bands | 8 | 24 |
| Saturation Modes | tanh | Tube · 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 Presets | 30 | 30+ (genre-specific) |
| Dynamic EQ | ✓ | ✓ |
| Linear Phase | ✓ | ✓ |
| Match EQ | ✓ | ✓ |
| Mid/Side | ✓ | ✓ |
| Oversampling | ✓ | ✓ |
| Band Linking | ✓ | ✓ |
| Formats | VST3, AU | VST3, AU |
ProEQ8 is included in the macOS DMG download only. A license key is required to unlock it. As of v2.3.1 no key can be issued — see the notice at the top of this section. Without a license ProEQ8 runs in demo mode: 2 minutes of clean playback, then a 30-second mute window (repeats), with offline export disabled.
The goal is a real-time decision layer on top of the existing 8-band engine — not to replace surgical control, but to reach a clean mix faster. This layer is not active in any current build. The pieces below exist as standalone, unit-testable components, but they are not yet connected to the audio path or the UI, so they have no effect on how the plugin sounds or behaves today.
Implemented as standalone components (not yet wired in):
Source/DSP/ResonanceDetector.h— log-frequency peak finder producing 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 curves:None/Vocal Clean/Drum Punch/Guitar Space/Master Polish, shifting detector scoring toward the frequency zones that matter for a given source.Source/DSP/FrequencyExplainer.h— static frequency → semantic description map intended to power an explain-on-hover UX.
Partially present:
intent_modeAPVTS parameter is registered and host-automatable, but nothing currently reads it. Automating it has no audible effect.
Still to build before this layer does anything:
- Instantiate the detector in
PluginProcessorand feed it the existingSpectrumFIFOdata - Thread-safe suggestion hand-off from the analysis path to the editor
- Suggestion-node overlay on the response curve
- One-click apply into the next unused band via APVTS (undo-able)
- Explain-on-hover popup
- Read
intent_modeand route it into the detector
See docs/SMART_EQ_LAYER.md for the algorithm design.
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.
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:
- Milestone A report — math, benchmarks, stress-test results, sonic-impact analysis.
- v2.2.0 release readiness — what's verified green/yellow/red.
Tests/AuditBench.cpp— reproducible micro-benchmarks (clang -O3 -DNDEBUG -pthread).Tests/AuditRegressionTest.cpp— concurrent-stress invariants for the triple-buffer + chunking patterns.
- 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)
- 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
Both reduce manual correction, and both are active in v2.3.1. Neither analyses spectral content or makes recommendations — that is the separate Smart EQ layer, which is not yet wired in.
- Proportional Q (UI label: Adaptive Q) — Q scales with the absolute gain
setting,
Q_eff = Q * (1 + |gain_dB| * 0.12), clamped to[0.1, 24]. A Q of 1.0 at +12 dB becomes 2.44, so larger boosts and cuts automatically narrow. This matches the classic console behaviour usually called proportional Q. It responds to your gain knob, not to the audio. - Auto Gain Compensation (UI label: Auto Gain) — measures input and output
RMS per block, computes
20*log10(inRms/outRms)clamped to ±24 dB, and applies it through a one-pole smoother with a ~100 ms time constant. This one is signal-driven: it measures the actual audio, so bypassing stays level-neutral and A/B comparisons are not biased by loudness.
- 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)
- 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
- 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)
- 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)
git clone --recursive https://github.com/GareBear99/FreeEQ8.git
cd FreeEQ8
./build_macos.shgit clone --recursive https://github.com/GareBear99/FreeEQ8.git
cd FreeEQ8
./build_linux.sh # installs deps via apt, then buildsgit clone --recursive https://github.com/GareBear99/FreeEQ8.git
cd FreeEQ8
.\build_windows.ps1Plugins will be automatically installed to your system plugin directories.
- Xcode Command Line Tools:
xcode-select --install - CMake 3.15+:
brew install cmake
- 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
- Visual Studio 2019+ with C++ build tools
- CMake 3.15+
git clone --recursive https://github.com/GareBear99/FreeEQ8.git
cd FreeEQ8If you already cloned without --recursive:
git submodule update --init --recursive
cd JUCE && git checkout 7.0.12 && cd ..macOS:
chmod +x build_macos.sh
./build_macos.shLinux:
chmod +x build_linux.sh
./build_linux.shWindows:
.\build_windows.ps1macOS (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.vst3to~/.vst3/
Windows (manual):
- Copy
build\FreeEQ8_artefacts\Release\VST3\FreeEQ8.vst3to:C:\Program Files\Common Files\VST3\
- Ableton Live: Preferences → Plug-ins → Rescan
- Logic Pro: Automatic detection
- FL Studio: Options → Manage plugins → Find plugins
| Parameter | Range | Scale | Description |
|---|---|---|---|
| Frequency | 20 Hz – 20 kHz | Logarithmic | Center/cutoff frequency |
| Q | 0.1 – 24 | Logarithmic | Bandwidth (0.1 = wide, 24 = narrow) |
| Gain | -24 dB to +24 dB | Linear | Boost/cut amount |
| Slope | 12 / 24 / 48 dB/oct | Discrete | Filter steepness (1/2/4 cascaded stages) |
| Drive | 0 – 100 % | Linear | Per-band tanh saturation amount |
| Channel | Both / L-Mid / R-Side | Discrete | Per-band channel routing |
| Link Group | -- / A / B | Discrete | Band linking group |
| Dyn Threshold | -60 dB to 0 dB | Linear | Dynamic EQ threshold |
| Dyn Ratio | 1:1 – 20:1 | Logarithmic | Dynamic EQ compression ratio |
| Dyn Attack | 0.1 – 100 ms | Logarithmic | Dynamic EQ attack time |
| Dyn Release | 1 – 1000 ms | Logarithmic | Dynamic EQ release time |
| Output | -24 dB to +24 dB | Linear | Master output level |
| Scale | 0.1x – 2x | Linear | Global gain multiplier |
Band: Bell filter
Q: 6-12 (narrow)
Gain: -6 to -12 dB
Band: Bell/Shelf filter
Q: 0.5-2 (wide)
Gain: ±3 to ±6 dB
Band: HighPass filter
Freq: 20-120 Hz (depends on source)
Q: 0.7 (standard)
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)
┌──────────────────────────────────────────────────────┐
│ 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) │
└──────────────────────────────────────────────────────┘
- 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)
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)
- Real-time spectrum analyzer
- Interactive frequency response curve display
- Draggable band nodes on curve
- Adaptive Q implementation
- Band solo/audition mode
- Preset management system
- 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)
- 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)
- 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)
- 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
- Real-time safety: zero heap allocation on the audio thread for any user action (Milestone A / A1)
-
SpectrumFIFO+LinearPhaseEnginekernel on canonical swap-chain triple-buffer (A4 / A5) - Linear-phase FIR rebuild moved to a dedicated
juce::Threadworker (A5) -
MatchEQ::applyCorrectionhandles 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
-
getTailLengthSecondsreports the MatchEQ overlap-add tail for offline renders (A7)
- Transistor saturation gain bug fixed (ProEQ8)
- Dynamic EQ zero-lag coefficient update when
dynEnabled - MatchEQ
correctionGain[]precompute (3× throughput improvement) - Simper SVF engine (
SvfBiquad.h) — modulation-stable SVF, trapezoidal integration
- Variable-cadence Dynamic EQ (75% CPU savings on sustained signals)
-
intent_modeAPVTS parameter registered (host-automatable) - Compact / mini-window mode (identical coordinate mapping)
- Oversampling crossfade buffer (128-sample, eliminates pop)
- SvfBandArray SIMD scaffold (AVX2/SSE2/Neon)
- NaturalPhaseEngine (256-tap, 128-sample latency)
- pluginval CI (strictness-level 10)
Corrected 2026-07-31. The following were previously listed here as complete but
are not implemented. ResonanceDetector, IntentMode and FrequencyExplainer
exist as standalone, unit-tested components, but nothing in PluginProcessor or
PluginEditor references them, so the layer does not execute in the plugin. The
intent_mode parameter is registered and host-automatable but is never read.
-
intent_modeconnected to an editor dropdown and routed into the detector - ResonanceDetector instantiated and fed from
SpectrumFIFO - Thread-safe suggestion hand-off from analysis path to editor
- Suggestion overlay on the response curve
- One-click “apply suggestion” into next unused band
- Explain-on-hover popup on band + suggestion nodes
- Pre-ring warning overlay (DrumPunch + Linear Phase)
- Transistor saturation
invD*dno-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)
- 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)
- Shelf filter NaN fixed — RBJ slope parameter
Sconstrained to its defined(0, 1]domain. Affected 11.3% of the parameter space from Q 3.80 upward in every release from v0.3.0 onward. Shelves now monotonic at every Q;Q <= 2bit-identical to prior releases, so no factory preset changes - Band-link propagation race fixed — atomic claim replaces a plain
boolguard that failed under concurrent parameter changes (EDEADLKabort) - Linux release job builds — ProEQ8 now links libcurl
- Windows release job builds —
VST3_AUTO_MANIFESTdisabled; was hanging six hours onjuce_vst3_helper.exe. Restores Windows support last shipped in v1.0.0 - Linux pluginval runs under
xvfb(headless editor tests) - macOS AU validation — pluginval's
auvaltest excluded;auvalnon-blocking - macOS DMG packaging hardened against
hdiutil"Resource busy" - Two shelf regression tests in CI (34,774,500 parameter combinations)
- Five previously-unbuilt test sources wired into CMake and CI
- First release with macOS, Windows and Linux artifacts from one tag
The ProEQ8 shipped in v2.3.1 is a demo that cannot be unlocked and has a known shelf defect. These four items are what make it a real product rather than a preview:
- Working checkout — the configured host (
proeq8-checkout.tizwildin.workers.dev) does not resolve, and the Stripe products do not exist. Full verified assessment of the backend, auth and checkout state, including a live unauthenticated account-read issue that should be fixed first, is indocs/BACKEND_STATE.md - Bounded SVF shelf response — ProEQ8 shelves overshoot the set gain by up to
24 dB at high Q (measured). Two bounded variants have been measured; neither
applied. See
docs/SHELF_RESPONSE.md - ProEQ8 packaged for Windows and Linux — already built and validated on both, but discarded rather than bundled
- Rotate the license signing secret and move to asymmetric signing. The current HMAC secret is embedded in this public repository under XOR-0x5A obfuscation, so it must be treated as published and every key issued under it as forgeable
- Smart EQ host integration (see corrected v2.2.3–2.2.4 list above)
- Zero-Lag auto-switch between linear-phase and minimum-phase modes
- Cross-instance ARC-Core spine
The engine is frozen at 4096 taps for v2.3.2 and v2.4.0. The defect is disclosed rather than partly patched, because every candidate fix either changes latency for existing users or changes the linear-phase character while still leaving a multi-dB error. See Known Issues for the measurements.
- Selectable FIR quality tier — 16384 taps gives ~2.7 Hz resolution at ~186 ms latency instead of 46 ms, opt-in so the default never moves
- Per-band realisability check — flag bands narrower than the active kernel can represent, with the predicted error, instead of failing silently
- Ruled out: a gentler taper than the full-length Hann. Removing the window entirely recovers only 2.25 dB of an 8.73 dB error while doubling out-of-centre impulse energy, so kernel length is the real constraint
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow existing code style
- Add comments for complex DSP algorithms
- Test on both macOS and Windows if possible
- Update documentation for new features
- 🎨 UI/UX improvements
- 🔊 Additional filter types
- 🐛 Bug fixes and optimizations
- 📚 Documentation improvements
- 🧪 Unit tests
See CHANGELOG.md for the full version history with detailed per-file changes.
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)
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):
| Feature | ns/sample | Headroom |
|---|---|---|
| Single biquad band (Bell) | 5.1 | >2200x |
| 8-band stereo full path | 41.5 | >273x |
| Dynamic EQ (per-sample, zero-lag) | 68.3 | >166x |
| Linear phase FIR rebuild | 36.5 µs/event | background thread |
| Match EQ correction (v2.2.1) | 2.8 | >4000x |
| Match EQ correction (old naive pow) | 7.4 | 1527x |
| Mid/Side encode+decode | 0.42 | >27,000x |
| SpectrumFIFO push (audio thread) | 0.66 | >17,000x |
| Oversampling 8x EQ cost | 213 | >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-
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 — 46.44 ms at 44.1 kHz, 42.67 ms at 48 kHz. This is reported to the DAW via
setLatencySampleson toggle, on state restore, and inprepareToPlay, andgetTailLengthSeconds()declares the FIR tail, so the host delay-compensates correctly and mixes and bounces stay aligned. It is nonetheless far past the ~10 ms where latency stops being noticeable, so linear phase is unsuitable for live monitoring or tracking. Use minimum phase while playing -
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
-
Linear phase cannot render narrow low-frequency bands accurately. The FIR is 4096 taps, which at 44.1 kHz gives roughly 10.8 Hz of frequency resolution. A bell at 100 Hz with Q = 16 is only about 6 Hz wide — below what the kernel can represent — so the achieved cut falls well short of the displayed curve.
-
Raising the sample rate makes linear-phase accuracy worse, not better.
firLengthis a compile-time constant, so latency in samples is fixed while resolution is roughlyfs / firLength. The two move in opposite directions, which is the opposite of what most users would assume. Measured for a −12.00 dB bell at 100 Hz, Q = 16:Sample rate Latency Resolution Achieved Error 44.1 kHz 46.44 ms 10.77 Hz −3.27 dB +8.73 dB 48 kHz 42.67 ms 11.72 Hz −2.39 dB +9.61 dB 88.2 kHz 23.22 ms 21.53 Hz −1.09 dB +10.91 dB 96 kHz 21.33 ms 23.44 Hz −1.36 dB +10.64 dB 192 kHz 10.67 ms 46.88 Hz −1.18 dB +10.82 dB Moving a session from 44.1 kHz to 96 kHz roughly halves the latency and roughly doubles the error. For surgical low-frequency work use minimum phase at any sample rate.
Measured, target vs achieved at the band centre (Bell, −12 dB, 44.1 kHz):
Band Target Achieved Error 1 kHz, Q 1 −12.00 dB −12.00 dB 0.00 1 kHz, Q 8 −12.00 dB −11.71 dB +0.29 5 kHz, Q 16 −12.00 dB −11.94 dB +0.06 100 Hz, Q 8 −12.00 dB −5.78 dB +6.22 100 Hz, Q 16 −12.00 dB −3.27 dB +8.73 The full-length Hann window on the impulse response was investigated as a possible cause and ruled out. Measured error at 100 Hz / Q 16 by window choice:
Window Error Impulse energy beyond ±256 samples Full Hann (shipped) +8.73 dB 0.004% Tukey 25% +7.40 dB 0.007% Tukey 10% +6.85 dB 0.008% Tukey 5% +6.71 dB 0.008% None at all +6.48 dB 0.008% Removing the window entirely recovers only 2.25 dB of the 8.73 dB error, so the window is a minor contributor and kernel length is the actual constraint. The window is deliberately left as-is: changing it would alter linear-phase character for every user while still leaving a ~6.5 dB error.
A genuine fix needs a longer FIR, which costs latency — 16384 taps would give about 2.7 Hz resolution at roughly 186 ms instead of 46 ms. That is a real trade-off rather than a free win, which is why it is a planned item and not a patch.
Practical guidance: use linear phase for broad tonal shaping and mastering moves, where its phase behaviour is the point. For surgical low-frequency work, leave it off — the default minimum-phase path renders those bands accurately. This is a general property of FIR linear-phase EQ, not specific to FreeEQ8, but the numbers above are this implementation's.
Fixed in v2.2.1:
Transistor saturation gain error(ProEQ8) — double-multiply bug caused ~d× level at high drive; fixedDynamic EQ coefficient lag— up to 16-sample transient lag between envelope detection and filter response; now zero-lag when Dynamic EQ is enabledLinear phase + oversampling undocumented interaction— behaviour now explicitly documented in source
Report issues at: https://github.com/GareBear99/FreeEQ8/issues
- 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
- Start with subtractive EQ (cut problem frequencies)
- Use narrow Q to identify resonances
- Use wide Q for musical boosts
- Check your EQ in mono to avoid phase issues
- 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
- 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)
FreeEQ8 is free and open source. If it's useful to you, consider supporting development:
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
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: neovectr.inc@gmail.com
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"
| Pack | Description |
|---|---|
| TizWildin-Aurora | 3-segment original synth melody pack with loops, stems, demo renders, and neon/cinematic phrasing |
| TizWildin-Obsidian | Dark cinematic sample pack with choir textures, menu loops, transitions, bass, atmosphere, drums, and electric-banjo extensions |
| TizWildin-Skyline | 30 BPM-tagged synthwave and darkwave loops with generator snapshot and dark neon additions |
| TizWildin-Chroma | Multi-segment game synthwave loop sample pack from TizWildin Entertainment |
| TizWildin-Chime | Multi-part 88 BPM chime collection spanning glass, void, halo, reed, and neon synthwave lanes |
| Free Violin Synth Sample Kit | Physical-model violin sample kit rendered from the Instrudio violin instrument |
| Free Dark Piano Sound Kit | 88 piano notes + dark/cinematic loops and MIDI |
| Free 808 Producer Kit | 94 hand-crafted 808 bass samples tuned to every chromatic key |
| Free Riser Producer Kit | 115+ risers and 63 downlifters - noise, synth, drum, FX, cinematic |
| Phonk Producer Toolkit | Drift phonk starter kit - 808s, cowbells, drums, MIDI, templates |
| Free Future Bass Producer Kit | Loops, 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.
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


