# Rivet & Patina Four Rust CLAP plugins for writing, designing and mixing bass music. | Plugin | Purpose | Guide | | --- | --- | --- | | **Rivet** | Tell a MIDI motif as a story on a storyboard of roles, with joined seams | [Rivet](docs/rivet/README.md) | | **Patina** | Smooth harsh resonances while retaining tone and transient character | [Patina](docs/patina/README.md) | | **Anvil** | Give every bass note the same clean sub: one level, one start phase | [Anvil](docs/anvil/README.md) | | **Crucible** | Capture the last bars, slice them and export clean, key-labelled samples | [Crucible](docs/crucible/README.md) | The names come from metalwork: a **rivet** joins pieces; **patina** changes a surface while leaving its character; an **anvil** is the solid base everything is struck on; a **crucible** melts material down to be cast again. They share a Rust foundation and keep their own musical purpose, code, documentation, and version. ## Install Download the desired plugin's Windows ZIP from its Gitea release. Extract it and copy its `.clap` file (`Rivet.clap`, `Patina.clap`, `Anvil.clap` or `Crucible.clap`) into: ```text C:\Program Files\Common Files\CLAP\ ``` In FL Studio 2024.1 or newer, open **Options → Manage plugins**, enable **Verify plugins**, and **Find installed plugins**. Load Rivet in the Channel Rack; load Patina, Anvil and Crucible in mixer effect slots. Normal branch/PR pipelines also provide a combined Windows preview ZIP in the **windows** job. Releases are separate: tags such as `rivet-v0.4.0`, `patina-v0.2.0`, `anvil-v0.1.0` and `crucible-v0.1.0` publish independently. See [release workflow](docs/releases.md). These names replace Motif Storyboard and Resonance Compressor. Their CLAP IDs and saved-state identifiers are preserved; replace old scanned copies and rescan. ## Repository ```text plugins/ catalog.json Product metadata used by build and release tools rivet/ core/ Motifs, harmony, variation, history, performance midi/ Standard MIDI import/export app/ Worker jobs and real-time audition control preview/ Offline MIDI/WAV development tool plugin/ CLAP wrapper, editor, optional standalone patina/ core/ Spectral detector and attenuation engine ui/ Patina's native editor render/ Offline WAV evaluation plugin/ CLAP audio-effect wrapper anvil/ core/ Pitch tracking, crossover and sub oscillator ui/ Anvil's native editor plugin/ CLAP audio-effect wrapper with MIDI input crucible/ core/ Input history, capture, slicing, cleanup and export ui/ Crucible's native editor plugin/ CLAP audio-effect wrapper common/ ui/ Shared look: palette, embedded fonts, knobs and panels dsp/ Shared filters, YIN pitch detection and WAV files tools/editor-check/ Headless visual QA for all editors scripts/ Shared build, packaging, release, and analysis tools docs// Guide, changelog and editor preview per plugin references/ Local reference audio; excluded from distribution ``` The root Cargo workspace contains the engines and supporting tools. Each CLAP wrapper has an independent workspace and lockfile so SDK dependencies stay separate. [Development and testing](docs/development.md) covers the commands. ```sh cargo test --workspace --locked python scripts/build-plugin.py --plugin rivet --target x86_64-pc-windows-gnu python scripts/build-plugin.py --plugin patina --target x86_64-pc-windows-gnu python scripts/build-plugin.py --plugin anvil --target x86_64-pc-windows-gnu python scripts/build-plugin.py --plugin crucible --target x86_64-pc-windows-gnu python scripts/package-windows.py ``` Windows is the release target. Linux remains useful for tests, cross-compilation, and headless editor previews. FL Studio routing, native window behavior, and artistic listening still require manual checks in the target setup.