Skip to content

Releases: GareBear99/FreeEQ8

v2.3.1

Choose a tag to compare

@github-actions github-actions released this 31 Jul 10:57

FreeEQ8 v2.3.1

First release with macOS, Windows and Linux artifacts from a single tag, each
validated by pluginval at strictness level 10.

On release history, for accuracy: v1.0.0 did ship a Windows ZIP, and it was
the more popular download of that release — 68 downloads versus 8 for the macOS
DMG. Windows then regressed, and every release from v1.1.0 through v2.3.0 was
macOS-only. Linux had never shipped at all. So this release restores Windows
and introduces Linux, rather than being the first Windows build.


⚠ ProEQ8 in this release is a demo that cannot be unlocked

ProEQ8 is bundled in the macOS DMG. Do not use it for real work in v2.3.1.

  • No working purchase path. The configured checkout host does not resolve and
    the Stripe products appear not to exist, so no license key can be issued. Demo
    mode cannot be exited by any means.
  • Demo mode interrupts audio — 2 minutes clean, then a 30-second mute window,
    repeating. Offline export is disabled entirely.
  • Known shelf defect. ProEQ8 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 shelves were corrected
    in this release and are bounded at every Q; ProEQ8 shelves were not.
  • macOS only. ProEQ8 builds and validates on Windows and Linux but is not
    packaged for them.

Use FreeEQ8 instead. It is unrestricted during real-time playback, has no nag
screens, and its shelf response is measured monotonic at every Q.

All four points are targeted for v2.3.2.


Audio fixes (FreeEQ8)

Shelf filter NaN. RBJ's shelving slope parameter S is defined only for
0 < S <= 1 but was clamped to [0.1, 4.0]. Above S = 1 the square-root
argument can go negative, producing NaN that poisoned the filter state and
reached the output permanently.

Present in every release from v0.3.0 through v2.3.0, reachable on 11.3% of the
exposed parameter space (3,914,000 of 34,774,500 combinations) from Q = 3.80
upward. It affected real-time playback, not only offline export.

There was no effective ceiling: at Q = 8 the response overshoots by 1.80 dB at
+6 dB gain, 7.01 dB at +12 dB, 14.25 dB at +13.5 dB, then goes NaN at +14 dB.

Shelves are now monotonic at every Q (measured 0.00 dB overshoot) with exact
asymptotes. Behaviour at Q <= 2 is bit-identical to prior releases, so presets
in that range are unchanged — and all 25 factory-preset shelves sit at Q = 1.00,
so no factory preset changes.

Band-link propagation race. Re-entrancy was guarded by a plain bool, which
is only sufficient if parameterChanged is single-threaded. Under concurrent
parameter changes the guard failed and setValueNotifyingHost re-entered the
APVTS write path, aborting with EDEADLK. Now an atomic claim via
compare_exchange_strong, so only the winning thread propagates and only that
thread releases.


Build and validation

  • Linux: ProEQ8 sets JUCE_USE_CURL=1 but never linked libcurl, so the VST3
    target failed with undefined curl_* references. Now linked via
    find_package(CURL).
  • Windows: the job hung for six hours to the runner timeout, immediately
    after FreeEQ8_VST3 linked, at removing moduleinfo.json — the signature of
    juce_vst3_helper.exe failing to return. VST3_AUTO_MANIFEST is now disabled;
    the manifest is optional metadata. The job now completes in under 6 minutes.
  • Linux: pluginval segfaulted at its Editor tests because a JUCE editor
    needs an X display and the runner is headless. Now runs under xvfb-run.
  • macOS: pluginval's auval test shells out to auvaltool with
    -strict STRESS -v, which hangs on hosted runners. Excluded via
    --disabled-tests; auval now runs as a separate non-blocking step.
  • macOS: DMG creation failed with hdiutil: create failed - Resource busy.
    package_macos.sh now detaches stale volumes, syncs, and retries with backoff.

Tests

Adds two shelf regression tests that run in CI, covering 34,774,500 parameter
combinations across 6 filter types, 5 sample rates and the full frequency, Q and
gain ranges. They assert no non-finite coefficients or output, and that shelf
response stays bounded by the set gain with correct asymptotes.


Downloads

Platform File
macOS (universal) FreeEQ8-v2.3.1-macOS.dmg — VST3, AU, Standalone, plus the ProEQ8 demo
Windows (x86_64) FreeEQ8-v2.3.1-Windows.zip — VST3, Standalone
Linux (x86_64) FreeEQ8-v2.3.1-Linux.tar.gz — VST3, Standalone

Full detail, including measured per-release shelf behaviour, is in
docs/SHELF_RESPONSE.md.

Co-Authored-By: Oz oz-agent@warp.dev


Known limitation — linear phase and narrow low-frequency bands

Linear phase mode cannot accurately render narrow bands at low frequencies. The
FIR is 4096 taps, giving roughly 10.8 Hz of frequency resolution at 44.1 kHz, and
a bell at 100 Hz with Q 16 is only about 6 Hz wide — narrower than the kernel can
represent. The displayed curve will show a deeper cut than you actually get.

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

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 not a regression; the behaviour is unchanged from earlier releases and is
a general property of FIR linear-phase EQ. It is documented here with numbers for
the first time. The full-length Hann window was investigated as a cause and ruled out. Measured
error at 100 Hz / Q 16 by window: full Hann +8.73 dB, Tukey 25% +7.40 dB, Tukey
10% +6.85 dB, Tukey 5% +6.71 dB, no window at all +6.48 dB. Removing the window
entirely recovers only 2.25 dB, so kernel length is the real constraint. The
window is deliberately left unchanged, since altering it would change
linear-phase character for every user while still leaving a ~6.5 dB error.

A fix requires a longer FIR at proportionally higher latency (16384 taps would
give ~2.7 Hz resolution at ~186 ms instead of 46 ms) and is tracked for v2.4.0.

Two automatic compensation layers (both active)

Neither analyses spectral content or makes recommendations — that is the separate
Smart EQ layer, which is not wired into this release.

  • Proportional Q (UI: Adaptive Q) — 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 moves
    automatically narrow. Standard console behaviour, usually called proportional Q.
    Responds to the gain setting, not to the audio.
  • Auto Gain Compensation (UI: Auto Gain) — per-block input/output RMS
    matching, 20*log10(inRms/outRms) clamped to ±24 dB, applied through a ~100 ms
    one-pole smoother. Genuinely signal-driven, so bypass stays level-neutral and
    A/B comparisons are not biased by loudness.

Smart EQ is not active in this release

ResonanceDetector, IntentMode and FrequencyExplainer are implemented and
independently evaluated (F1 0.947, PR-AUC 0.985, precision 1.000 with zero false
positives against committed ground truth), but nothing in PluginProcessor or
PluginEditor references them. There are no suggestion nodes, no hover
explanations and no one-click apply in v2.3.1.

The intent_mode parameter is registered and host-automatable, but it is never
read — automating it has no effect. Host integration is tracked for v2.4.0.


Co-Authored-By: Oz oz-agent@warp.dev

FreeEQ8 v2.3.0

Choose a tag to compare

@GareBear99 GareBear99 released this 29 May 14:04

FreeEQ8 v2.3.0 stable release.\n\nHighlights:\n- macOS DMG includes FreeEQ8 and ProEQ8 (VST3/AU plus FreeEQ8 Standalone).\n- CI/CD fixes for macOS, Windows, and Linux builds.\n- Expanded Smart EQ and real-time safety/security documentation.\n- Public README cleanup with BaisMaed trademark sound embedded.\n\nmacOS DMG SHA-256:\n6c11ffdc050d34932a7121e979e442fac869f23842588b1bb8c44b3e904361f6\n\nCo-Authored-By: Oz oz-agent@warp.dev

FreeEQ8 v2.1.0

Choose a tag to compare

@GareBear99 GareBear99 released this 25 Mar 17:21

FreeEQ8 v2.1.0

⬇️ Downloads

Platform Format Status
macOS DMG (VST3 + AU + Standalone + ProEQ8) ✅ Available now
Windows ZIP (VST3 + Standalone) 🔜 Coming — CI pending
Linux tar.gz (VST3 + Standalone) 🔜 Coming — CI pending

Windows/Linux users: you can build from source right now — git clone --recursive and run build_windows.ps1 or build_linux.sh.

What's New

  • Standalone app included in all platform packages
  • Hardened ProEQ8 license system:
    • Device-bound activation (2 systems per key)
    • Periodic server re-verification (7-day check, 30-day offline grace)
    • Obfuscated signing secret
    • Server /verify endpoint
  • FreeEQ8 is completely free — no activation, no limits, no demo mode
  • Fixed JUCE 7.0.12 API compatibility

Installation (macOS)

  1. Open the DMG
  2. Drag FreeEQ8.vst3 → ~/Library/Audio/Plug-Ins2. Drag FreeEQ8.vst3→~/Library/Audio/Plug-Ins2. Drag Fres/Components/
  3. Drag 4. Drag 4. Drag 4. Drag (standalone)
  4. Rescan plugins in your DAW

ProEQ8 ($20)

Included in the DMG. Requires a license key — purchase via the repo. Without a key it runs in demo mode (mutes 30s every 5min).

FreeEQ8 v2.0.0 — Online Activation + Bug Fixes

Choose a tag to compare

@GareBear99 GareBear99 released this 25 Mar 12:12
72b4661

What's New in v2.0.0

Online License Activation (ProEQ8)

  • 2-device-per-purchase enforcement — each ProEQ8 license can be activated on up to 2 machines
  • Device fingerprinting — stable hardware-based device ID (macOS, Windows, Linux)
  • Activation server — Cloudflare Worker with KV-backed license state
  • Deactivation support — free up a device slot when moving to a new machine
  • Async activation dialog — network call on background thread with progress UI

Bug Fixes

  • Spectrum analyzer blank in Reaper (#10) — FIFOs now reset on prepareToPlay() so the analyzer recovers after offline/online cycles
  • Thread safety — SpectrumFIFO::fifoWriteIndex is now std::atomic<int>
  • Linear phase disables features silently (#12) — drive, dynamic EQ, M/S, oversampling controls are now greyed out when linear phase is active
  • **We- **We- **We- **We- **We- pl- **We- **We- **We- **We- **ne- **We- **We- **We- **We- **We- pl- **We- **We- **We- **We- *roughout

Full Feature List (FreeE### Full Fea

  • 8-band parametric EQ (Be- 8-band parametric EQ (Be- 8-band parametric EQ (Be- 8-band parametric EQ (Be- 8-band parametric Ese- 8-band parametric EQ (Be- 8-band parametric EQ (Be- 8-band parametric EQ (Bereference → auto-correct)
  • Per-band saturation/drive
  • Mid/Side processing with pe- Mid/Side processing with pe (1x/2x/4x/8x)
  • Band linking (groups A/B)
  • Adaptive- Adaptive- Adaptive- Adaptive- Adaptive- Adaptive- Adaptive- Adaptive- Adaptive- Resizable UI

ProEQ8 ($20) — Included in Download

  • 24 bands
  • 4 saturation modes (Tanh, Tube, Tape, Transistor)
  • A/B comparison
  • Piano roll overlay
                    • (- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - yo- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (- - - - - - - - - - - - - - - - - - - - - - copy to ~/.vst3/

Then rescan plugins in your DAW.

FreeEQ8 v1.1.0 + ProEQ8

Choose a tag to compare

@GareBear99 GareBear99 released this 14 Mar 00:05
7980312

What's New in v1.1.0

FreeEQ8 (Free)

  • Bandpass filter type added
  • 30 factory presets (genre-specific: Vocal, Kick, Guitar, Bass, Drums, Broadcast, EDM, Lo-Fi, and more)
  • Tooltips on all controls
  • Update checker (notifies when new version available)
  • Auto-gain bypass (RMS-matched loudness compensation)
  • Bug fixes: spectrum analyzer, state restoration, thread safety, linear phase optimization

ProEQ8 (Commercial - $20)

  • 24 fully independent bands (vs 8 in FreeEQ8)
  • 4 saturation modes per band: Tanh, Tube, Tape, Transistor
  • A/B comparison: instant snapshot toggle with Copy A→B / B→A
  • Piano roll overlay: C1–C8 note frequency reference on response curve
  • Collision detection: amber warning when bands overlap within 1/3 octave
  • License activation: offline HMAC-SHA256-signed keys, demo mode (mute 30s every 5min)
  • Stripe checkout integration (Cloudflare Worker)

Downloads

  • macOS DMG (x86_64): includes both FreeEQ8 + ProEQ8 (VST3 + AU)
  • Windows and Linux builds will be added via CI when tagged on the release workflow

Full### Full### Full### Full### Full### Full### Full### Full### Full### Full### Full### Full### For complete details.

FreeEQ8 v1.0.0

Choose a tag to compare

@github-actions github-actions released this 26 Feb 06:39

FreeEQ8 v1.0.0 — Full-Featured Free Parametric EQ

FreeEQ8 Screenshot

The only free EQ plugin that combines linear phase + dynamic EQ + match EQ + per-band drive + band linking.

📥 Downloads

Platform File Size
macOS (Intel + Apple Silicon) FreeEQ8-v1.0.0-macOS.dmg 13.5 MB
Windows (64-bit) FreeEQ8-v1.0.0-Windows.zip 1.2 MB

Install

  • macOS: Open DMG → drag VST3 to ~/Library/Audio/Plug-Ins/VST3/ and AU to ~/Library/Audio/Plug-Ins/Components/
  • Windows: Extract ZIP → copy FreeEQ8.vst3 to C:\Program Files\Common Files\VST3\
  • Rescan plugins in your DAW

✨ What's New in v1.0.0

  • Linear Phase Mode — symmetric FIR, overlap-add FFT convolution (4096-tap, 2048-sample latency)
  • Dynamic EQ — per-band envelope follower with sidechain bandpass, threshold, ratio, attack & release
  • Band Linking — groups A/B propagate freq (ratio), gain & Q (delta) changes
  • Per-Band Saturation — gain-compensated tanh waveshaper (0–100%)
  • Undo / Redo — via juce::UndoManager integrated with APVTS
  • Match EQ — capture reference spectrum, compute & apply per-bin FFT correction

🎛️ Full Feature Set

  • 8 bands × 6 filter types × 3 slopes (12/24/48 dB/oct)
  • Mid/Side processing with per-band channel routing
  • Oversampling 1× / 2× / 4× / 8×
  • Adaptive Q (auto-widens with gain)
  • Real-time spectrum analyzer (4096-pt FFT, pre/post toggle)
  • Stereo level meter (peak hold + RMS)
  • Preset system with 8 factory presets
  • Resizable dark UI (750×550 to 1400×900)

⚡ Coming Soon: ProEQ8 ($20)

Love FreeEQ8? ProEQ8 takes everything further — 24 bands, 4 saturation modes (Tube · Tape · Transistor · Tanh), A/B comparison, auto-gain bypass, piano roll overlay, collision detection, and 30+ factory presets.

See the full comparison →


⭐ Star the repo · 🐛 Report bugs · 💝 Sponsor