Skip to content

Releases: Vulpus-Labs/vxn-1

VXN 0.2.0

Choose a tag to compare

@poetix poetix released this 29 Aug 22:29

vxn-2 and VXN1b now ship as one release. Until now they versioned and released separately — vxn-2 on the bare semver tag, VXN1b on vxn-1b-<version>. From 0.2.0 they share a version and a release page; this one carries both products' binaries. (vxn-1b-0.2.0 is kept as a signpost and holds the same VXN1b builds.)


vxn-2

Mostly about operator level: the amplitude path was rebuilt around a single log-domain accumulator, and a series of long-standing deviations from the DX7 were found and fixed. Patches will sound different — in most cases markedly closer to the hardware.

Operator level, rebuilt

  • One log-domain level accumulator for operator amplitude (0323). Level, key scaling, velocity and the EG now combine in one place, in the domain the hardware uses, instead of being multiplied together in linear space at three different points.
  • Velocity is a signed level offset, not a multiplier (0324) — the DX7's behaviour. Velocity now shifts an operator up or down the level ladder, so it changes timbre and not merely loudness.
  • The rendered-level ceiling was raised to give velocity its headroom (0325).
  • The EG's L-values join the level ladder, knee and all, rather than running on a separate curve.

DX7 fidelity fixes

  • The feedback ladder was 2× the hardware at every step. Feedback-heavy patches were substantially over-driven.
  • Key level scaling barely did anything — the DX7's curve is now ported properly, so the control has its real range.
  • The attack law is corrected, restoring the strike on percussive patches.
  • Pitch EG and vibrato depth are calibrated against the hardware.
  • Detune joins the note; ratio stays rational (0327).

Factory bank

Hand-designed rather than bulk-converted: 44 presets across 8 categories, including a new Brass category and two re-voiced brass ensembles, and Electric Boogaloo — an E.PIANO 1 with a stack chorus. The whole bank was re-levelled against the new level law, and the tool that levels it was fixed too (0326).

FX and web

  • Phaser stereo spread with a faceplate ping-pong toggle (0280); phaser Stereo now sits between Feedback and Mix, where it belongs.
  • Web user presets, state autosave and patch import/export (0159).

VXN1b

Faster

  • The filter cook and the mod matrix are vectorised. Both were running scalar in the per-voice hot path; the matrix is evaluated for every voice on every control block, so it was the obvious next target after the kernels.
  • cross_mod_type is read once per block rather than per sample — a runtime enum match inside the lane loop was defeating the vectoriser around it.

Shared DSP

VXN1b now uses the shared FdnReverb from the extracted vxn-core-dsp layer rather than its own copy. WetFade::reset was fixed to un-prime as part of the move: after a reset the wet mix now snaps to the incoming patch value instead of gliding from the old one, which had been audible as a brief swell on patch load.

Fixes

  • Lighting a key must never cost the note. Visual key feedback shared a path with note handling; under load that could cost the note itself.
  • Object.hasOwn dropped from the two JS handler tables — it excluded otherwise-capable older browsers from the web build for no gain.
  • The cross-language tables are now bound, or collapsed. The Rust and JS sides each carried a table that had to agree; they are now checked against each other rather than trusted to stay in step.

The parameter table is unchanged — still 185 host params, Layer 2's CLAP id still a Layer 1 id + 75. No automation re-checking needed; projects saved with 0.0.3 carry over as-is. README · parameter reference


Shared

  • A shared vxn-core-dsp layer was extracted (ADR 0002) so the two synths stop carrying two copies of the same kernels, with an asm-check codegen guard that fails the build if a hot loop stops vectorising.
  • Shared on-screen piano (shows the split, lights keys played from any source) and CPU meter.
  • rebuild() no longer resets every parameter (0296); the MIDI decoder is capability-aware (0294).

Windows VST3

0.1.1's Windows VST3s shipped hollow/OPT:REF stripped the whole-archived engine straight back out, and the link reported success. That fix (/INCLUDE:clap_entry, plus the archive as a link input) is now in the tree, so these are the first Windows VST3s the workflow produces correctly on its own.


Downloads

Product Platform CLAP VST3
vxn-2 macOS (universal) VXN2-macOS-universal.clap.zip VXN2-macOS-universal.vst3.zip
vxn-2 Windows (x64) VXN2-windows-x64.clap VXN2-windows-x64.vst3.zip
VXN1b macOS (universal) VXN1b-macOS-universal.clap.zip VXN1b-macOS-universal.vst3.zip
VXN1b Windows (x64) VXN1b-windows-x64.clap VXN1b-windows-x64.vst3.zip

Unzip and drop into your plug-in folder:

  • macOS CLAP — ~/Library/Audio/Plug-Ins/CLAP/
  • macOS VST3 — ~/Library/Audio/Plug-Ins/VST3/
  • Windows CLAP — %LOCALAPPDATA%\Programs\Common\CLAP\
  • Windows VST3 — %LOCALAPPDATA%\Programs\Common\VST3\

The macOS builds are unsigned and unnotarised; Gatekeeper will need the usual right-click → Open, or xattr -dr com.apple.quarantine on the bundle.

Note

Existing vxn-2 patches will sound different. The level, velocity, feedback and key-scaling changes are corrections toward the hardware, but they are not backward-compatible voicings — a patch saved under 0.1.1 will not render identically here. The factory bank has been re-levelled to match; your own patches may want a pass. VXN1b patches are unaffected.

Both synths also run in the browser: vxn-2 · VXN1b

VXN1b 0.2.0 → superseded by VXN 0.2.0

Choose a tag to compare

@poetix poetix released this 29 Aug 22:30

→ Superseded by VXN 0.2.0

VXN1b and vxn-2 now ship as one release. From 0.2.0 the two products share a version and a release page, so there is no separate vxn-1b-* line any more.

Get VXN1b 0.2.0 from the VXN 0.2.0 release →

This release is kept, not deleted: its four assets are still attached and every existing download link still resolves. They are byte-identical to the VXN1b binaries on 0.2.0 — both tags point at the same commit (16cf179), so nothing is lost by using either. New links should point at 0.2.0.

The earlier vxn-1b-0.0.1vxn-1b-0.0.3 releases are untouched: they are real, independent releases from when VXN1b genuinely shipped on its own line.


The release notes for this version, and the vxn-2 half of the same release, are on VXN 0.2.0.

VXN1b 0.0.3

Choose a tag to compare

@poetix poetix released this 26 Aug 12:04

Third VXN1b release, and a substantial one: 49 commits on top of
0.0.2.

Browser port

VXN1b now runs in a browser. The same engine compiles to wasm and runs in an
AudioWorklet behind the same faceplate, with a main-thread controller over the
C-ABI opcode surface, IndexedDB persistence (autosave, patch import/export),
MIDI and computer-keyboard input, and a one-command servable bundle:

cargo run -p vxn1b-xtask -- web --serve

Also new

  • Stack Pos mod-matrix source — a voice's position within its stack,
    unscaled by the Spread knob, so it stays usable as a routing source
    independent of how wide the stack is set.
  • On-screen piano and CPU meter, both shared components.
  • Reset layer — restore the edit layer to the factory patch.
  • BPM control for the web build.

Downloads

Platform CLAP VST3
macOS (universal, arm64 + x86_64) VXN1b-macOS-universal.clap.zip VXN1b-macOS-universal.vst3.zip
Windows (x64) VXN1b-windows-x64.clap VXN1b-windows-x64.vst3.zip

Unzip and drop into your plug-in folder:

  • macOS CLAP — ~/Library/Audio/Plug-Ins/CLAP/
  • macOS VST3 — ~/Library/Audio/Plug-Ins/VST3/
  • Windows CLAP — %LOCALAPPDATA%\Programs\Common\CLAP\
  • Windows VST3 — %LOCALAPPDATA%\Programs\Common\VST3\

The macOS builds are unsigned and unnotarised; Gatekeeper will need the usual
right-click → Open, or xattr -dr com.apple.quarantine on the bundle.

Notes

  • The parameter table grew: 185 host params, up from 181, from two new
    per-layer Voice params. Existing automation is unaffected, but Layer 2's CLAP
    ids have shifted (a Layer 1 id + 75, previously + 73) — re-check Layer 2
    automation lanes
    in projects saved with 0.0.1 or 0.0.2.
  • README
    and the parameter reference.
  • clap-validator clean on the macOS bundle (0 failed; 3 skips are the optional
    preset-discovery draft factory).

VXN1b 0.0.2

Choose a tag to compare

@poetix poetix released this 24 Aug 15:48

Second VXN1b release. Fixes and one voicing feature on top of
0.0.1.

Changes

  • Stack start-phase depth and lane distribution — control over where the
    lanes of a stacked voice begin in their cycle, and how that spread is
    distributed across the stack.
  • Per-frame pan re-cook keeps level_comp — the level compensation was
    being dropped when pan was re-cooked mid-frame.
  • Windows VST3 link fix, carried in source from the start of this tag.
    0.0.1's Windows .vst3 asset was repaired in place after release; this is
    the first VXN1b tag that never contained the broken build.

Downloads

Platform CLAP VST3
macOS (universal, arm64 + x86_64) VXN1b-macOS-universal.clap.zip VXN1b-macOS-universal.vst3.zip
Windows (x64) VXN1b-windows-x64.clap VXN1b-windows-x64.vst3.zip

Unzip and drop into your plug-in folder:

  • macOS CLAP — ~/Library/Audio/Plug-Ins/CLAP/
  • macOS VST3 — ~/Library/Audio/Plug-Ins/VST3/
  • Windows CLAP — %LOCALAPPDATA%\Programs\Common\CLAP\
  • Windows VST3 — %LOCALAPPDATA%\Programs\Common\VST3\

The macOS builds are unsigned and unnotarised; Gatekeeper will need the usual
right-click → Open, or xattr -dr com.apple.quarantine on the bundle.

Notes

  • README
    and the parameter reference.
    The parameter table is unchanged from 0.0.1 — patches and automation carry over.
  • clap-validator clean on the macOS bundle (0 failed; 3 skips are the optional
    preset-discovery draft factory).

VXN1b 0.0.1

Choose a tag to compare

@poetix poetix released this 24 Aug 12:48

First release of VXN1b — a sibling of VXN1, not a version of it. Same sound
engine; an entirely different modulation surface.

VXN1's fixed Pitch Mod / PWM Mod / Filter Mod / Mod Wheel / Pitch Wheel panels
are replaced by a 16-slot mod matrix per layer. Each slot is a
source → destination pair with a depth, a curve (linear, exponential,
logarithmic, bipolar), and a secondary scale source acting as a per-route VCA.

  • Sources — Env 1/2, LFO 1/2, velocity, key, mod wheel, pitch wheel,
    aftertouch, per-note random, stack spread.
  • Destinations — pitch, cross-mod sweep, cross-mod amount, PWM (both
    oscillators or each alone), cutoff, resonance, HPF cutoff, amp, pan,
    Env 1/2 time scale, Env 1/2 sustain, LFO 1 rate.

A patch is two independent layers, each with its own matrix, playing
together or split. The DSP is VXN1's vxn-dsp crate used directly rather than
copy-adapted, so it is the same code: 2 oscillators + sub + noise, hard-sync /
PM / ring cross-modulation, a 4-pole ZDF ladder with switchable HPF, two ADSRs,
two LFOs, and the chorus / phaser / delay / reverb / dynamics chain.

VXN1b installs alongside VXN1 under its own plugin id (labs.vulpus.vxn1b);
neither reads the other's presets.

Downloads

Platform CLAP VST3
macOS (universal, arm64 + x86_64) VXN1b-macOS-universal.clap.zip VXN1b-macOS-universal.vst3.zip
Windows (x64) VXN1b-windows-x64.clap VXN1b-windows-x64.vst3.zip

Unzip and drop into your plug-in folder:

  • macOS CLAP — ~/Library/Audio/Plug-Ins/CLAP/
  • macOS VST3 — ~/Library/Audio/Plug-Ins/VST3/
  • Windows CLAP — %LOCALAPPDATA%\Programs\Common\CLAP\
  • Windows VST3 — %LOCALAPPDATA%\Programs\Common\VST3\

The macOS builds are unsigned and unnotarised; Gatekeeper will need the usual
right-click → Open, or xattr -dr com.apple.quarantine on the bundle.

Notes

  • Documentation: README
    and the full parameter reference
    (181 host parameters: 73 per layer × 2, plus 35 globals).
  • VXN1b versions independently of the shared 0.x line that VXN1 and VXN2 ride,
    and tags vxn-1b-<version>.
  • clap-validator is clean on the macOS bundle (18 passed, 0 failed; the 3
    skips are the optional preset-discovery draft factory). It does flag
    scan-time above its 100 ms budget on a cold first load — VXN1 does the same,
    and it warms to well under budget on subsequent scans.

vxn-1 + vxn-2 0.1.1

Choose a tag to compare

@poetix poetix released this 24 Jul 23:12

Highlights

  • vxn-2 now ships a VST3 alongside the CLAP (macOS universal + Windows x64), via the clap-wrapper pipeline ported from vxn-1 (0170). VST3-only hosts are now supported.

Artifacts

  • macOS (universal): VXN1 CLAP+VST3, VXN2 CLAP+VST3
  • Windows (x64): VXN1 CLAP+VST3, VXN2 CLAP+VST3
  • vxn-1 manual (PDF)

Built and attached automatically by the release workflow.


2026-08-24 — Windows VST3 assets replaced. The VXN1-windows-x64.vst3.zip
and VXN2-windows-x64.vst3.zip originally attached here contained no engine and
would not have loaded in a host: the Rust staticlib was whole-archived into the
module and then stripped straight back out by /OPT:REF, because nothing
references the CLAP entry point at link time. The link reported success, so it
went unnoticed.

Both zips have been rebuilt from this exact tag plus that one link fix
(/INCLUDE:clap_entry, plus adding the archive as a link input) and re-uploaded.
No other source change is in them, and the tag is unmoved. The CLAP builds and
both macOS VST3s were never affected — macOS does not dead-strip by default,
which is why only Windows was hollow.

vxn-1 + vxn-2 0.1.0

Choose a tag to compare

@poetix poetix released this 08 Jul 00:02

Release build of vxn-1 (CLAP + VST3) and vxn-2 (CLAP), macOS-universal and Windows x64. Binaries are attached by CI once the build jobs finish.

vxn-1

  • Tiered poly voice-steal — released tails sacrificed before held notes.
  • Toggle declick — FX-bypass and OS-change crossfades to kill switching clicks (E035).

vxn-2

  • EG-rate mod-matrix destinations — per-lane amp + pitch envelopes with decorrelation.
  • Key scaling — full-keyboard reach with true exponential curve.
  • DX7-calibrated EG: measured decay/release rates, qrate mod-4 downward factor, two-operator feedback fix for algos 4 & 6.
  • Factory bank groom — full names, −6 dBFS peak-level pass, held-voice silence on preset load.

Artifacts

Plugin macOS (universal) Windows (x64)
vxn-1 CLAP + VST3 CLAP + VST3
vxn-2 CLAP CLAP

Plus the vxn-1 manual PDF.

macOS bundles are zipped with ditto — unzip and drop into ~/Library/Audio/Plug-Ins/{CLAP,VST3}/.

VXN1 0.0.8

Choose a tag to compare

@poetix poetix released this 09 Jun 09:07

What's new

  • Manual: full mdBook manual added, source-audited for accuracy, available as PDF (attached to this release) and online at https://vulpus-labs.github.io/vxn-1/.
  • Docs CI: GitHub Pages + PDF artifact pipeline.

Engine / DSP

No engine changes since 0.0.7 — this release is the documentation milestone.

Artifacts

  • VXN1-macOS-universal.clap.zip — macOS universal (arm64 + x86_64) CLAP bundle.
  • VXN1-windows-x64.clap — Windows x64 CLAP plugin.
  • vxn1-manual.pdf — the manual.

VXN1 0.0.7

Choose a tag to compare

@poetix poetix released this 08 Jun 21:44

Changes since 0.0.6

  • Per-voice stereo spread (E019) + perf follow-ups
  • Block-level silent-osc skip; dropped ad-hoc denormal sanitisation
  • Jovian Presets bank removed — TAL J-8 community-port provenance made it a poor factory fit
  • Factory bank: Bass / Brass / Keys / Lead / Pad / Performance / Strings

Binaries (macOS universal + Windows x64) attached below once the release workflow finishes.

VXN1 0.0.6

Choose a tag to compare

@poetix poetix released this 02 Jun 22:52

Fixes

  • Windows: editor now opens inside hosts installed under C:\Program Files\ (Reaper et al.). WebView2's default user-data folder lived next to the host exe and required admin write, returning E_ACCESSDENIED (0x80070005); it is now redirected to %LOCALAPPDATA%\VulpusLabs\VXN1\WebView2.

Install

macOS

  1. Download VXN1-macOS-universal.clap.zip and unzip it.
  2. Move VXN1.clap into ~/Library/Audio/Plug-Ins/CLAP/ (create the folder if needed).
  3. De-quarantine — Safari / browsers tag downloads with com.apple.quarantine; unsigned plugins fail to load until that's stripped. In Terminal:
    xattr -dr com.apple.quarantine ~/Library/Audio/Plug-Ins/CLAP/VXN1.clap
    If macOS still blocks it ("cannot be opened because the developer cannot be verified"), open System Settings → Privacy & Security, scroll to the bottom, and click Allow Anyway next to the VXN1 entry, then reopen your host.

Windows

  1. Download VXN1-windows-x64.clap.
  2. Copy it into %CommonProgramFiles%\CLAP\ (typically C:\Program Files\Common Files\CLAP\).