Patina 0.2.0. The old detector compared raw FFT bins with a one-octave dB mean, so every harmonic of a tonal sound looked like a resonance and real harsh bumps were barely touched. The new detector: - averages power over each log band and smooths it over time - joins harmonic tops into an envelope, smoothed by Sharpness - compares it with a robust, tilt-aware local line fit that ignores empty regions and cannot be lifted by the bump itself Six overlapping controls become Depth, Sharpness and Selectivity; focus points now read "up cuts more, down protects". The analysis window is halved to 2048 samples (about 43 ms delay). Behaviour tests cover plain harmonic tones, resonant bumps, narrow rings, level independence, flicker on noise and high sample rates. Both editors get a dark metallic look with #FF0160 as the single accent colour; screenshots and docs are updated. Projects saved with Patina 0.1 load the new controls at their defaults.
3.0 KiB
Rivet & Patina
Two Rust CLAP plugins for writing and refining bass music.
| Plugin | Purpose | Guide |
|---|---|---|
| Rivet | Join motifs into connected phrases, preserve identity, and explore branches | Rivet |
| Patina | Smooth harsh resonances while retaining tone and transient character | Patina |
The names come from metalwork: a rivet joins pieces; patina changes a surface while leaving its character. 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 Rivet.clap or Patina.clap into:
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 in a mixer effect slot.
Normal branch/PR pipelines also provide a combined Windows preview ZIP in the
windows job. Releases are separate: rivet-v0.3.0 and patina-v0.2.0
publish independently. See release workflow.
These names replace Motif Storyboard and Resonance Compressor. Their CLAP IDs and saved-state identifiers are preserved; replace old scanned copies and rescan.
Repository
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/ Shared native editor and embedded fonts
render/ Offline WAV evaluation
plugin/ CLAP audio-effect wrapper
tools/editor-check/ Headless visual QA for both editors
scripts/ Shared build, packaging, release, and analysis tools
docs/rivet/ Rivet guide, theory, research, and editor previews
docs/patina/ Patina guide, research, and editor preview
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 covers the commands.
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/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.