Skip to content

mantisvex/bitrot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BITROT

A glitch / granulator audio plugin (VST3 / AU) built with JUCE. Automation-first: every control is a real, host-automatable parameter — no step sequencer, no GUI-only state. Anything that affects the sound can be drawn as an automation lane.

Free and open source (GPLv3). Prebuilt Windows VST3 and unsigned macOS AU + VST3 are produced by CI on every push — grab them from the Actions artifacts (or a Release).

Signal path

input -> Drive -> Granular(+Width) -> Trigger(chop/Stutter) -> ROT -> Tone -> Space -> MIX -> KILL -> Output

A single assignable Motion source (LFO / envelope follower) modulates one destination on top of its base value. Held MIDI notes trigger performance actions, and the editor shows a live output meter + peak-history scope.

Granular engine

Asynchronous granulator over a 5 s circular capture buffer.

Param Meaning
SIZE grain length (small = metallic/buzzy, large = smeared)
SCATTER grain position spray around the playhead
PITCH / P.RAND grain pitch shift + per-grain random spread
DENSITY grain overlap / count
REVERSE probability a grain plays backwards
WIDTH stereo spray of per-grain pan (0 = centred)

Trigger engine

Sample-accurate, host-transport-locked rhythmic chopper (no grid/sequencer).

Param Meaning
RATE tempo-synced division (1/4 … 1/32, incl. triplet/dotted)
CHANCE probability a step is chopped (0% = transparent)
CHAOS randomizes gate duty + adds ratchet stutters
STUTTER fired steps capture a slice and roll/repeat it (2–8 rolls)

Shape / output

Param Meaning
TONE morphing filter: <50% lowpass down, >50% highpass up, ~50% neutral
SPACE / DECAY reverb send amount + size
DRIVE soft saturation at the input
OUTPUT final output trim (dB)

Motion (modulation)

Param Meaning
SOURCE Sine / Triangle / Saw / Square / Random, or Envelope follower
RATE / DEPTH LFO speed (or envelope response) + amount
DEST destination: Off / Rot / Tone / Mix / Size / Density / Chance / Space

MIDI performance

Held notes override the matching action while pressed: C1 = Freeze, D1 = Kill, E1 = Stutter.

ROT (hero macro)

One knob (0–100%) degrades the whole sound coherently: sample-rate decimation + bit-depth reduction + extra grain chaos. The grain-chaos contribution is additive on top of the base granular params, so automating ROT and a sub-parameter never fight.

Performance

Param Meaning
FREEZE momentary — hold the buffer and granulate it indefinitely
KILL momentary — instant output mute for fills
MIX global dry/wet

Presets

Ships with factory presets (Init, Smear Wash, Granular Cloud, Glitch Roll, Bitcrush Stutter, Frozen Pad, Reverse Tides, Total Rot). User presets save to <user app data>/Mantis Vex/BITROT/Presets as APVTS-state XML and recall by name from the preset bar (< / > step, SAVE stores the current state).

Build

Requires CMake ≥ 3.22. JUCE is used automatically: if a local checkout is found (via JUCE_DIR), it's used; otherwise JUCE 8.0.6 is fetched from GitHub.

# Windows (VS 2022)
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release

# macOS / Linux
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release

Builds VST3 + Standalone everywhere, plus AU on macOS. Plugin metadata (company name, manufacturer/plugin codes) lives in CMakeLists.txt.

macOS — unsigned builds

The macOS binaries are not code-signed or notarized. After copying BITROT.component / BITROT.vst3 into ~/Library/Audio/Plug-Ins/Components and .../VST3, clear the quarantine flag so the OS will load them:

xattr -dr com.apple.quarantine ~/Library/Audio/Plug-Ins/Components/BITROT.component
xattr -dr com.apple.quarantine ~/Library/Audio/Plug-Ins/VST3/BITROT.vst3

License

GPLv3 (see LICENSE). BITROT links JUCE under its open-source terms, which is why the project is GPL-licensed.

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors