Skip to content

Releases: averagenative/0xFX

v1.3.1

20 Apr 13:59

Choose a tag to compare

Maintenance release — signed and Apple-notarized macOS builds.

🍎 macOS

  • Signed + notarized — no more Gatekeeper workaround. Double-click the .pkg, follow the installer, done.
  • Same install layout as 1.3.0: /Applications/0xFX.app plus /Library/Audio/Plug-Ins/{CLAP,VST3,Components}/.

🐛 Fixes rolled up from post-1.3.0 work

  • Factory presets now load on macOS (.app chdirs to Contents/Resources/).
  • "Open recording folder" creates the folder first so the button works before the first recording.
  • DMG replaced by a proper .pkg installer that handles standalone + all three plug-in formats in one flow.

Other platforms

No changes from 1.3.0. Linux/Windows users should stay on 1.3.0 — same binaries.

v1.3.0

19 Apr 18:01

Choose a tag to compare

Download (pick your platform):

  • Linux x640xFX-1.3.0-linux-x64.tar.gz or 0xFX-1.3.0-linux-x86_64.AppImage
  • Linux ARM64 (Chromebook / RasPi)0xFX-1.3.0-linux-arm64.tar.gz or 0xFX-1.3.0-linux-aarch64.AppImage
  • Windows x640xFX-1.3.0-windows-x64-setup.exe (installer) or .zip
  • Windows ARM640xFX-1.3.0-windows-arm64-setup.exe (installer) or .zip
  • macOS (Universal — Apple Silicon + Intel)0xFX-1.3.0-macos-universal.pkg (installer, recommended) or .zip (portable)

Optional — Cab IR pack:

  • 650-assorted-cabinet-impulses.zip (~12 MB) — mirrored public-domain cabinet IR pack (zoyd's release, musical-artifacts.com/artifacts/252). 651 .wav impulse responses. Unzip anywhere, then in 0xFX use Import IR... → Folder (bulk, recursive)... and point it at the unzipped folder to load the whole set into your custom cab library.

🍎 macOS install

Double-click 0xFX-1.3.0-macos-universal.pkg and follow the installer. The installer places:

  • App/Applications/0xFX.app
  • CLAP/Library/Audio/Plug-Ins/CLAP/0xFX.clap
  • VST3/Library/Audio/Plug-Ins/VST3/0xFX.vst3
  • Audio Unit/Library/Audio/Plug-Ins/Components/0xFX.component

Click Customize in the installer UI if you only want certain plug-in formats.

Gatekeeper workaround (one-time, until notarization ships)

This build is not yet Apple-notarized, so Gatekeeper will block both the .pkg and the installed app on first launch.

Installer: right-click the .pkgOpenOpen (bypass the "from an unidentified developer" warning).

App (after install): macOS will block 0xFX.app the first time you launch it. Either:

  • Option A (GUI): open System Settings → Privacy & Security, scroll to the Security section, and click "Open Anyway" next to the 0xFX warning.
  • Option B (Terminal):
    xattr -cr /Applications/0xFX.app
    xattr -cr /Library/Audio/Plug-Ins/CLAP/0xFX.clap
    xattr -cr /Library/Audio/Plug-Ins/VST3/0xFX.vst3
    xattr -cr /Library/Audio/Plug-Ins/Components/0xFX.component

You only have to do this once per install. Notarization is on the roadmap so future releases won't need the workaround.

🔁 Looper

  • 9-slot looper module (TASK-363) — keyboard-driven grid for live/practice use. Record, overdub, undo, clear, play/pause per slot. Tab cycles through all slots, ? shows the full keybind cheat sheet.
  • Docked panel + global keybinds — looper lives in its own strip above the signal chain; Space toggles record/play on the focused slot, number keys 1–9 focus a slot from anywhere in the app.
  • RT-safe looper audio — buffer allocation is done off the audio thread so the engine never blocks during RECORDING state. Fixed an issue where looper pads could drop clicks during record arming.
  • Slot import/export — save individual loops out and bring your own audio in.
  • Master-volume bypass fix — looper playback now correctly respects the master volume fader (was ignoring it in dual-chain mode).

🎨 Theme System

  • 11 color palettes — Worn Grime (default), Hacker Green, Cyberpunk Neon, Studio Pale, Blueprint, Vaporwave, Nature Dirt, Toxic Slime, Blood Moon, Amber CRT, Molten Forge.
  • Per-session persistence — last selected theme restores on next launch.

📦 Custom Cab Library

  • User .wav IR upload (TASK-369) — bring your own cabinet impulse responses via a visible "Load IR..." button next to the cab dropdown. Name and optional image per custom cab.
  • Shared user library across instances — JSON-backed, mutex-protected so the standalone app and multiple plugin instances see the same custom cab list.
  • Bulk import — recursive folder scan for batch IR loading. Invalid files are skipped with toast feedback.
  • Auto-downscale oversized user images + procedural fallback icon when no image is provided.

🖼 App Icon + Toolbar Refresh

  • SVG master icon — flat orange "0xFX" monogram, rasterized to all target sizes via rsvg-convert + tools/generate_icons.sh. Replaces the older neon glow logo.
  • OS window metadata — standalone (SDL2) and plugin windows (Win32 HICON, X11 _NET_WM_ICON) now display the new icon in taskbars, alt-tab, window corners.
  • Toolbar wordmark — in-app top bar uses the gradient "0xFX" wordmark instead of the old logo asset. Cleaner left-align, correct spacing against the tuner.
  • Refreshed README screenshots showing the new look across multiple themes.

🐛 Fixes

  • Multi-instance plugin crash on close — NULL deref in ImGui OpenGL3 backend when tearing down a second plugin instance (fixed).
  • Cab-label lookup on chain B — was pulling chain A's labels in dual-chain mode.
  • UX polish — X close buttons, popup overlap drag fix, "recording saved" dialog, resizable plugin window.
  • macOS factory presets.app now chdirs to Contents/Resources/ on launch so bundled factory presets load.
  • macOS "Open recording folder" — creates the folder first so the button works before the first recording.
  • 1.3.0 audit fixes — shell-safe open_folder, dropped imgui_internal, assorted RT-safety nits.

🔜 Next up (1.4.0)

  • AI tone matching (BYOK) — later-phase work on profile-from-reference against a user-supplied LLM key.
  • macOS notarization — once Apple Developer enrollment completes, the Gatekeeper workaround above will no longer be needed.

v1.2.0

18 Apr 18:17

Choose a tag to compare

Download (pick your platform):

  • Linux x640xFX-1.2.0-linux-x64.tar.gz or 0xFX-1.2.0-linux-x86_64.AppImage
  • Linux ARM64 (Chromebook)0xFX-1.2.0-linux-arm64.tar.gz or 0xFX-1.2.0-linux-aarch64.AppImage
  • Windows x640xFX-1.2.0-windows-x64-setup.exe (installer) or .zip
  • Windows ARM640xFX-1.2.0-windows-arm64-setup.exe (installer) or .zip

🎸 Sound

  • Real measured cab IRs — 4 public-domain impulse responses from the 650 Assorted pack replace the previous parametric synthesis for every stock cab (TASK-368). Synthetic models remain as a fallback. Users report "this is actually what cabinets sound like."
  • Fixed cab IR normalization — cabs used to vary 6–10 dB in output depending on which one you picked. Now peak-normalized to −0.4 dBFS so swapping cabs keeps your level consistent.
  • Fixed cab-swap audio race — rapid scrolling through cabs could crash the audio thread mid-convolution. Now waits 20 ms between marking the old IR unloaded and freeing its buffers so in-flight callbacks exit cleanly.

🎛 Standalone UX

  • Input gain trim + −20 dB pad (TASK-367) — slider in audio settings, also mirrored next to the input meter in the status bar for quick adjustments without opening settings. Saves per-session.
  • Scroll-wheel + right-click on faders — hover any input-gain or master-volume fader: scroll wheel nudges in fine steps, right-click resets to 0. Works on all three faders (settings + status bar + master).
  • PipeWire mic detection fixed (TASK-365) — native Fedora 43/44 with PipeWire now reliably enumerates USB interfaces (iRig, Scarlett). Monitor sources are filtered out.
  • Audio device change mid-session — switching output device no longer requires an app restart.

📦 Distribution

  • Multi-arch release packaging (TASK-352) — ./scripts/packaging/package_release.sh 1.2.0 auto-detects installed toolchains and builds every arch it can. --arch x64|arm64|all lets you restrict scope.
  • Containerized Linux ARM64 — first release to ship real Linux ARM64 binaries. Built inside an aarch64 Fedora container via podman + qemu-user-static, so no fiddly sysroot setup required on the host. Works on Chromebooks, RasPi, etc.
  • Packaging robustness — script now uses set -o pipefail and wipes stale cross-compile build dirs, so a silent configure failure can't sneak stale binaries into a release.
  • Windows smoke-test Wine bottle (TASK-366) — scripts/wine/{setup,install-0xfx,launch-0xfx,install-reaper}.sh scripts bring up a dedicated Wine prefix on Linux for validating the NSIS installer and plugin scanning before shipping. See scripts/wine/README.md.

🐛 Other fixes

  • Preset delete flow, preset name collisions, Ctrl+S save behavior
  • Pedal "remove" X moved to an overlay on the pedal image (TASK-343)
  • AppImage aarch64 + fuse3 runtime (TASK-364) — prerequisite for this release's real Linux ARM64 support

🔜 Next up (1.3.0)

  • Looper module with keyboard-driven 9-slot grid for live/practice use (TASK-363)
  • Custom cab IR upload button (TASK-369) so you can bring your own .wav IRs

v1.1.0 — Multi-Architecture Support

26 Mar 23:04

Choose a tag to compare

v1.1.0 — Multi-Architecture Support

ARM64 builds for Windows and Linux. macOS universal binary with CLAP, VST3, and AU plugins.

New platforms

  • Windows ARM64 — Native ARM64 build for Surface Pro, Snapdragon laptops, etc. Cross-compiled via llvm-mingw.
  • Linux ARM64 — Native aarch64 build for Raspberry Pi 4/5, Pine64, ARM Chromebooks, etc.
  • macOS Universal — Fat binary (arm64 + x86_64) for Intel and Apple Silicon Macs. Includes CLAP, VST3, and AU plugins.

Downloads

Platform Architecture File
Windows x64 0xFX-1.1.0-windows-x64.zip
Windows ARM64 0xFX-1.1.0-windows-arm64.zip
Linux x64 0xFX-1.1.0-linux-x64.tar.gz
Linux ARM64 0xFX-1.1.0-linux-arm64.tar.gz
macOS Universal (Intel + Apple Silicon) 0xFX-1.1.0-macos-universal.dmg / .zip

macOS notes

  • DMG contains the standalone app with drag-to-Applications installer
  • ZIP includes standalone app + CLAP, VST3, and AU plugin bundles
  • Unsigned — clear Gatekeeper quarantine: xattr -cr /Applications/0xFX.app
  • Requires SDL2: brew install sdl2
  • See Plugins/INSTALL_PLUGINS.txt in the ZIP for plugin installation paths

Changes

  • ARM64 cross-compilation toolchains (llvm-mingw for Windows, aarch64-linux-gnu for Linux)
  • Cross-compiled SDL2 2.30.12 for ARM64 Windows and Linux
  • Architecture-aware VST3 bundle paths (arm64-win, aarch64-linux)
  • Compiler-aware static linking (Clang vs GCC)
  • VST3 proper bundle directory structure on all platforms
  • macOS universal binary support via CMAKE_OSX_ARCHITECTURES
  • macOS CLAP/VST3/AU proper .bundle structure with Info.plist + codesigning
  • AUv2 plugin via CPLUG (aufx type, loads in Logic Pro, GarageBand, etc.)
  • Ad-hoc codesigning placeholder (CODESIGN_IDENTITY cmake option)
  • AppImage .desktop file for Linux desktop integration

Build from source

# macOS (universal binary)
brew install sdl2 cmake
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(sysctl -n hw.ncpu)

# Windows ARM64 (from Linux)
LLVM_MINGW_PREFIX=~/tools/llvm-mingw-* cmake -B build_win_arm64 \
  -DCMAKE_TOOLCHAIN_FILE=cmake/llvm-mingw-arm64.cmake -DCMAKE_BUILD_TYPE=Release
cmake --build build_win_arm64 -j$(nproc)

# Linux ARM64 (from x64 Linux)
cmake -B build_linux_arm64 \
  -DCMAKE_TOOLCHAIN_FILE=cmake/aarch64-linux-gnu.cmake -DCMAKE_BUILD_TYPE=Release
cmake --build build_linux_arm64 -j$(nproc)

Full Changelog: v1.0.0...v1.1.0

Linux AppImage

AppImages provide a portable, no-install format that runs on most Linux distributions.

Architecture File
x86_64 0xFX-1.1.0-x86_64.AppImage
aarch64 0xFX-1.1.0-aarch64.AppImage

Both AppImages use the type2-runtime which supports FUSE 2 and FUSE 3.

FUSE requirements: Running an AppImage requires FUSE to be available on the host system.

  • Fedora/RHEL: sudo dnf install fuse3
  • Debian/Ubuntu: sudo apt install libfuse2 (for FUSE 2) or sudo apt install fuse3 (for FUSE 3)
  • Arch: sudo pacman -S fuse3

No FUSE available? Use the extract-and-run workaround:

APPIMAGE_EXTRACT_AND_RUN=1 ./0xFX-1.1.0-x86_64.AppImage

This extracts the AppImage to a temporary directory and runs directly without mounting.

v1.0.0

25 Mar 00:44

Choose a tag to compare

0xFX v1.0.0

Guitar amp simulator & effects pedalboard — standalone app + CLAP/VST3 plugins.

Downloads

Platform File Description
Windows 0xFX-1.0.0-windows-x64-setup.exe Installer (standalone + plugins + presets)
Windows 0xFX-1.0.0-windows-x64.zip Portable zip
macOS 0xFX-1.0.0-macos-x64.dmg Disk image (drag to Applications)
macOS 0xFX-1.0.0-macos-x64.zip Zip with app + plugins
Linux 0xFX-1.0.0-linux-x64.tar.gz Standalone + plugins + presets
Linux 0xFX-1.0.0-x86_64.AppImage Single-file standalone (double-click to run)

Installation

Windows

Installer (recommended): Run 0xFX-1.0.0-windows-x64-setup.exe. It installs the standalone app, CLAP plugin, and VST3 plugin automatically. Includes Start Menu and Desktop shortcuts.

Portable zip: Extract anywhere and run 0xfx_gui.exe. To use plugins in your DAW, copy manually:

CLAP:  Copy 0xFX.clap to C:\Program Files\Common Files\CLAP\
VST3:  Copy 0xFX.vst3 to C:\Program Files\Common Files\VST3\0xFX.vst3\Contents\x86_64-win\

macOS

DMG: Open the disk image and drag 0xFX to Applications.

Zip: Extract and copy 0xFX.app to /Applications.

Plugin installation:

mkdir -p ~/Library/Audio/Plug-Ins/CLAP
mkdir -p ~/Library/Audio/Plug-Ins/VST3
cp Plugins/0xFX.clap ~/Library/Audio/Plug-Ins/CLAP/
cp -r Plugins/0xFX.vst3 ~/Library/Audio/Plug-Ins/VST3/

Gatekeeper (unsigned app): macOS may block the app with "cannot be opened because the developer cannot be verified". Fix by running in Terminal:

# For the standalone app:
xattr -cr /Applications/0xFX.app

# For the CLAP plugin:
xattr -cr ~/Library/Audio/Plug-Ins/CLAP/0xFX.clap

# For the VST3 plugin:
xattr -cr ~/Library/Audio/Plug-Ins/VST3/0xFX.vst3

Or go to System Settings > Privacy & Security and click "Allow Anyway" after attempting to open.

Requires: SDL2 (brew install sdl2)

Linux

AppImage (easiest):

chmod +x 0xFX-1.0.0-x86_64.AppImage
./0xFX-1.0.0-x86_64.AppImage

tar.gz: Extract and run ./0xfx_gui. Plugin installation:

# CLAP plugin
mkdir -p ~/.clap
cp 0xFX.clap ~/.clap/

# VST3 plugin
mkdir -p ~/.vst3/0xFX.vst3/Contents/x86_64-linux
cp 0xFX.vst3 ~/.vst3/0xFX.vst3/Contents/x86_64-linux/

Requires: SDL2 (sudo apt install libsdl2-2.0-0 on Ubuntu/Debian)

Plugin Paths Reference

Format Windows macOS Linux
CLAP C:\Program Files\Common Files\CLAP\ ~/Library/Audio/Plug-Ins/CLAP/ ~/.clap/
VST3 C:\Program Files\Common Files\VST3\ ~/Library/Audio/Plug-Ins/VST3/ ~/.vst3/

After copying plugins, restart your DAW and rescan.

Highlights

Amps & Cabs

  • 12 circuit-modeled amp models — bilinear transform digitization (Fender, Marshall, Vox, Mesa, Orange, Sunn, Peavey topologies)
  • Circuit-accurate tone stacks (Fender TMB, Marshall TMB, Vox Cut, Tilt EQ)
  • Dual amp chains with independent amp/cab/mic per chain and mix control
  • 10 microphone models — dynamic, ribbon, condenser with distance/angle/position controls

Effects

  • 41 effect pedals — overdrive, distortion, fuzz, delay, reverb, modulation, wah, compression, pitch, experimental
  • 9 rack processors — FET/optical/VCA compressors, passive/parametric EQ, tape/tube saturation, limiter, room sim
  • Pre/post pedal sections with drag-and-drop reorder

MIDI & Automation

  • 137 automatable parameters — full DAW automation via CLAP + VST3
  • MIDI CC control with MIDI learn mode
  • Chromatic tuner — MPM pitch detection

Recording

  • WAV (16/24-bit), MP3 (192/320kbps), FLAC (16/24-bit)
  • Timestamped filenames

Presets

  • 32 factory presets — organized by genre (Classic, 80s, 90s, Modern, Heavy, Experimental)
  • Open .0xfx JSON format — human-readable, shareable, version-controllable

GUI

  • Skeuomorphic design — photorealistic amp/pedal/rack graphics, interactive knobs
  • "Worn grime" visual aesthetic — beat-up, scuffed, road-worn gear

Architecture

  • Pure C99 DSP engine — zero dependencies, real-time safe
  • Public API boundary — GUI never touches engine internals
  • Native plugin GUI — Win32+WGL (Windows), X11+GLX (Linux), no SDL2 in plugins
  • Thread-safe multi-instance — run multiple 0xFX instances in the same DAW session
  • Multi-plugin coexistence — 0xFX + 0x808 + 0xSYNTH can all run simultaneously

Building from Source

# Linux
sudo apt install libsdl2-dev libgl-dev g++
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)

# macOS
brew install sdl2 cmake
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(sysctl -n hw.ncpu)

# Windows (cross-compile via MinGW)
cmake -B build_win -DCMAKE_TOOLCHAIN_FILE=cmake/mingw-w64.cmake
cmake --build build_win -j$(nproc)