Skip to content

Twist Your Guts v0.1.0

Choose a tag to compare

@yves-vogl yves-vogl released this 14 Jul 17:05
44fc006

Twist Your Guts is a Parallax-style bass plugin in the Basilica Audio suite — sacred-architecture DSP for heavy music. It splits the bass signal into low and high bands with a Linkwitz-Riley crossover, compresses the low band in parallel, and runs the high band through a choice of three distortion voicings before summing everything back together through a 4-band EQ and an impulse-response (cab sim) loader. In a heavy production chain it is the bass-specific voicing stage: tight, controlled lows glued to a twisted, driven top end.

This is the first tagged release (v0.1.0), covering the M1 milestone: core DSP completion and broadened test coverage.

What's new in 0.1.0

Added

  • Project bootstrap: README, license, contributing guide, architecture and build docs, ADRs, and CI workflow.
  • Full v1.0 AudioProcessorValueTreeState parameter layout (frozen parameter IDs) covering IO/global, noise gate, crossover, low band, high band, EQ, and IR loader.
  • LR4 (Linkwitz-Riley 4th order) crossover band-split (src/dsp/Crossover), flat-sum tested, with a latency-compensation framework/seam in the processor.
  • DSP completion (M1): the full v1.0 signal path is wired and live:
    • Full-band input noise gate (src/dsp/NoiseGateStage), off by default.
    • Low-band parallel ("New York style") compressor with makeup gain and wet/dry mix (src/dsp/ParallelCompressor).
    • High-band distortion engine (src/dsp/Voicing) with three selectable voicings — Gnaw (op-amp hard clip), Wool (cascaded soft-clip fuzz with mid scoop), Razor (tight overdrive: pre-clip highpass, soft clip, mid hump) — each running its nonlinear shaping stage 4x oversampled (FIR half-band equiripple) to control aliasing, with drive, tone, and clean/distorted blend controls.
    • Post-sum 4-band EQ (src/dsp/BandEQ: LowShelf / Peak / Peak / HighShelf), off by default.
    • Cab-sim IR loader (src/dsp/IRLoader, juce::dsp::Convolution-based), off by default, safe-by-default (bit-exact passthrough with no IR loaded, at every session sample rate); loadImpulseResponse() is the DSP-side seam a future GUI/preset system will call to load user or factory IRs.
    • Latency compensation extended to cover the high band's oversampling latency: reported to the host via setLatencySamples, low band delay-compensated to match, high band's own clean/distorted DryWetMixer blend delay-compensated too.
    • src/dsp/RealtimeCoefficients.h: shared real-time-safe (zero-allocation) juce::dsp::IIR coefficient update helper, used by BandEQ and Voicing's mid/tone filters.
  • Broadened Catch2 test suite (issue #43): dedicated test files for every new DSP stage (NoiseGateTests, ParallelCompressorTests, VoicingTests, BandEQTests, IRLoaderTests), plus sample-rate sweeps (44.1-192 kHz), mono/stereo bus-configuration tests, extreme-parameter-automation and long-run NaN/Inf stability soak tests (SampleRateAndRobustnessTests). Existing gain-staging/latency/passthrough tests updated to account for the now-live (non-transparent-by-default) compressor and voicing stages.
  • docs/manual.md: full user manual — what the plugin is, where it sits in a heavy production chain, signal-flow description, complete parameter reference, and usage tips.

Changed

  • docs/architecture.md: signal-flow diagram and module map updated to match the new full signal path; new sections documenting the real-time-safe filter-coefficient pattern, the IR loader's safe-by-default behaviour, and the extended latency-compensation design (including the DryWetMixer priming gotcha).
  • README.md: feature list, signal-flow diagram, and roadmap table updated to match the live DSP and the project's actual milestone scheme (M1 DSP completion & test coverage -> M2 presets & state -> M3 GUI & accessibility -> M4 release).

Not yet implemented

  • Bundled factory IRs and a GUI IR file browser (the convolution engine itself is live and safe-by-default with no IR loaded).
  • Preset manager/versioning scheme (state save/load via APVTS already round-trips today).
  • Metering, and a custom vector-drawn GUI — both land alongside the M3 milestone.

Supported formats

  • Plugin formats: AU, VST3, Standalone
  • Platforms: macOS (Universal Binary: arm64 + x86_64), Windows (x64)

Installation

Download the zip for your OS below, unzip, and copy the plugin into your system's plugin folder:

  • macOS: AU -> ~/Library/Audio/Plug-Ins/Components/, VST3 -> ~/Library/Audio/Plug-Ins/VST3/. Standalone app can be run directly from wherever you unzip it (or moved to /Applications).
  • Windows: VST3 -> C:\Program Files\Common Files\VST3\. Standalone app can be run directly from wherever you unzip it.

Rescan plugins in your DAW after installing.

Signed & notarized

The macOS binaries in this release are Developer-ID-signed, notarized by Apple and stapled — they install and open without Gatekeeper warnings. (Windows binaries remain unsigned for now; Authenticode signing is tracked as roadmap milestone M4.)