From 444b9d93da59235d418f9323b06a5f04c1ab78fa Mon Sep 17 00:00:00 2001 From: Nils Pukropp Date: Fri, 6 Nov 2026 11:51:11 +0100 Subject: [PATCH] feat!: change CLAP IDs to io.narl.bass-foundry., release all plugins The io.storyboard.* IDs were a leftover from Motif Storyboard and named old functions (motif, sub-anchor, layer-align) instead of the products. Every plugin now uses io.narl.bass-foundry., and IDs are frozen from here on, even across renames. Hosts see the new IDs as different plugins: delete the old .clap files, rescan, and add the plugins again in existing projects. Rivet session JSON and Patina parameter IDs are unchanged. - Rivet 0.5.0, Patina 0.3.0; Anvil, Crucible, Lathe, Temper, Weld and Knurl 0.2.0. - Docs, changelogs and the release table describe the change. - Website: upgrade note in the Install section. --- README.md | 10 ++++----- docs/anvil/CHANGELOG.md | 6 ++++++ docs/crucible/CHANGELOG.md | 6 ++++++ docs/development.md | 29 +++++++++++++++------------ docs/knurl/CHANGELOG.md | 6 ++++++ docs/lathe/CHANGELOG.md | 6 ++++++ docs/patina/CHANGELOG.md | 6 ++++++ docs/patina/README.md | 12 +++++------ docs/releases.md | 16 +++++++-------- docs/rivet/CHANGELOG.md | 6 ++++++ docs/rivet/README.md | 10 ++++----- docs/temper/CHANGELOG.md | 6 ++++++ docs/weld/CHANGELOG.md | 6 ++++++ plugins/anvil/plugin/Cargo.lock | 2 +- plugins/anvil/plugin/Cargo.toml | 2 +- plugins/anvil/plugin/src/lib.rs | 2 +- plugins/anvil/plugin/tests/host.rs | 2 +- plugins/catalog.json | 16 +++++++-------- plugins/crucible/plugin/Cargo.lock | 2 +- plugins/crucible/plugin/Cargo.toml | 2 +- plugins/crucible/plugin/src/lib.rs | 2 +- plugins/crucible/plugin/tests/host.rs | 5 ++++- plugins/knurl/plugin/Cargo.lock | 2 +- plugins/knurl/plugin/Cargo.toml | 2 +- plugins/knurl/plugin/src/lib.rs | 2 +- plugins/knurl/plugin/tests/host.rs | 2 +- plugins/lathe/plugin/Cargo.lock | 2 +- plugins/lathe/plugin/Cargo.toml | 2 +- plugins/lathe/plugin/src/lib.rs | 2 +- plugins/lathe/plugin/tests/host.rs | 2 +- plugins/patina/plugin/Cargo.lock | 2 +- plugins/patina/plugin/Cargo.toml | 2 +- plugins/patina/plugin/src/lib.rs | 2 +- plugins/patina/plugin/tests/host.rs | 2 +- plugins/rivet/plugin/Cargo.lock | 2 +- plugins/rivet/plugin/Cargo.toml | 2 +- plugins/rivet/plugin/src/lib.rs | 2 +- plugins/rivet/plugin/tests/host.rs | 5 ++++- plugins/temper/plugin/Cargo.lock | 2 +- plugins/temper/plugin/Cargo.toml | 2 +- plugins/temper/plugin/src/lib.rs | 2 +- plugins/temper/plugin/tests/host.rs | 2 +- plugins/weld/plugin/Cargo.lock | 2 +- plugins/weld/plugin/Cargo.toml | 2 +- plugins/weld/plugin/src/lib.rs | 2 +- plugins/weld/plugin/tests/host.rs | 2 +- website/src/components/Install.astro | 4 ++++ 47 files changed, 138 insertions(+), 77 deletions(-) diff --git a/README.md b/README.md index e588da7..78a7211 100644 --- a/README.md +++ b/README.md @@ -87,11 +87,11 @@ Keep the font license (`licenses/`) with redistributed packages. Every branch and pull-request pipeline also builds a combined Windows preview ZIP, `bass-foundry-windows-x86_64.zip`, in its **windows** job. Use it to test unreleased changes. -> **Upgrading from Motif Storyboard or Resonance Compressor?** These are now -> Rivet and Patina. The CLAP IDs and saved state are unchanged, so projects -> still load. Delete the old `.clap` files and rescan. The vendor name changed -> from "Rivet & Patina" to "Bass Foundry", so FL Studio may list the plugins -> in a new vendor folder after the rescan. +> **Upgrading from an earlier build?** The CLAP IDs changed from +> `io.storyboard.*` to `io.narl.bass-foundry.`, so hosts see each +> plugin as new. Delete the old `.clap` files, rescan, and add the plugins again +> in existing projects. Motif Storyboard and Resonance Compressor are now Rivet +> and Patina, and the vendor is "Bass Foundry". ## Build from source diff --git a/docs/anvil/CHANGELOG.md b/docs/anvil/CHANGELOG.md index 5c441c4..4c675dd 100644 --- a/docs/anvil/CHANGELOG.md +++ b/docs/anvil/CHANGELOG.md @@ -1,5 +1,11 @@ # Anvil changelog +## 0.2.0 + +- Change the CLAP ID to `io.narl.bass-foundry.anvil`. Hosts see this as a new + plugin: delete the old `.clap` file, rescan, and add the plugin again in + existing projects. + ## 0.1.0 - Introduce Anvil, a sub anchor for bass music. diff --git a/docs/crucible/CHANGELOG.md b/docs/crucible/CHANGELOG.md index 03ff0b7..b65519a 100644 --- a/docs/crucible/CHANGELOG.md +++ b/docs/crucible/CHANGELOG.md @@ -1,5 +1,11 @@ # Crucible changelog +## 0.2.0 + +- Change the CLAP ID to `io.narl.bass-foundry.crucible`. Hosts see this as a new + plugin: delete the old `.clap` file, rescan, and add the plugin again in + existing projects. + ## 0.1.0 - Introduce Crucible, a resampler that always records its input. diff --git a/docs/development.md b/docs/development.md index 7c256e0..c40fa12 100644 --- a/docs/development.md +++ b/docs/development.md @@ -136,20 +136,23 @@ identify plugins by CLAP ID, so the vendor name does not affect saved projects. | Product | Former display name | CLAP ID | | --- | --- | --- | -| Rivet | Motif Storyboard | `io.storyboard.motif` | -| Patina | Resonance Compressor | `io.storyboard.resonance-compressor` | -| Anvil | (new) | `io.storyboard.sub-anchor` | -| Crucible | (new) | `io.storyboard.resampler` | -| Lathe | (new) | `io.storyboard.harmonic-eq` | -| Temper | (new) | `io.storyboard.tracked-distortion` | -| Weld | (new) | `io.storyboard.layer-align` | -| Knurl | (new) | `io.storyboard.cycle-texture` | +| Rivet | Motif Storyboard | `io.narl.bass-foundry.rivet` | +| Patina | Resonance Compressor | `io.narl.bass-foundry.patina` | +| Anvil | (new) | `io.narl.bass-foundry.anvil` | +| Crucible | (new) | `io.narl.bass-foundry.crucible` | +| Lathe | (new) | `io.narl.bass-foundry.lathe` | +| Temper | (new) | `io.narl.bass-foundry.temper` | +| Weld | (new) | `io.narl.bass-foundry.weld` | +| Knurl | (new) | `io.narl.bass-foundry.knurl` | -The `io.storyboard.` prefix is historical and stays, because changing a CLAP ID -breaks existing projects. Rivet keeps `story-session-v1` and its session -migration. Patina keeps all parameter IDs. The copyright notice keeps its -original holder name. Replace old plugin files before rescanning, so no CLAP ID -is installed twice, and check that existing projects still load in FL Studio. +CLAP IDs use the form `io.narl.bass-foundry.`. Builds tagged before +this scheme used `io.storyboard.*` IDs; hosts treat the new IDs as different +plugins, so projects saved with those builds need the plugin added again. From now on an ID is frozen: if a product is renamed, its CLAP ID +stays. A new plugin gets `io.narl.bass-foundry.` with its product slug. + +Rivet keeps `story-session-v1` and its session migration. Patina keeps all +parameter IDs. The copyright notice keeps its original holder name. Delete old +plugin files before rescanning, so FL Studio does not list both builds. See [releases](releases.md) for tagged publishing. Runs on the real Gitea runner and checks in FL Studio are separate from the local checks. diff --git a/docs/knurl/CHANGELOG.md b/docs/knurl/CHANGELOG.md index 342bb47..5275339 100644 --- a/docs/knurl/CHANGELOG.md +++ b/docs/knurl/CHANGELOG.md @@ -1,5 +1,11 @@ # Knurl changelog +## 0.2.0 + +- Change the CLAP ID to `io.narl.bass-foundry.knurl`. Hosts see this as a new + plugin: delete the old `.clap` file, rescan, and add the plugin again in + existing projects. + ## 0.1.0 - Introduce Knurl, texture per cycle of the played note. diff --git a/docs/lathe/CHANGELOG.md b/docs/lathe/CHANGELOG.md index 45b1f3c..b61fd3b 100644 --- a/docs/lathe/CHANGELOG.md +++ b/docs/lathe/CHANGELOG.md @@ -1,5 +1,11 @@ # Lathe changelog +## 0.2.0 + +- Change the CLAP ID to `io.narl.bass-foundry.lathe`. Hosts see this as a new + plugin: delete the old `.clap` file, rescan, and add the plugin again in + existing projects. + ## 0.1.0 - Introduce Lathe, a harmonic EQ for bass sound design. diff --git a/docs/patina/CHANGELOG.md b/docs/patina/CHANGELOG.md index 90c5c53..9146d59 100644 --- a/docs/patina/CHANGELOG.md +++ b/docs/patina/CHANGELOG.md @@ -1,5 +1,11 @@ # Patina changelog +## 0.3.0 + +- Change the CLAP ID to `io.narl.bass-foundry.patina`. Hosts see this as a new + plugin: delete the old `.clap` file, rescan, and add the plugin again in + existing projects. + ## 0.2.0 - Rebuild the detector so it finds resonant bumps instead of cutting individual diff --git a/docs/patina/README.md b/docs/patina/README.md index 20bcb1e..7724db9 100644 --- a/docs/patina/README.md +++ b/docs/patina/README.md @@ -116,12 +116,12 @@ not a worst-case multi-instance guarantee. ## Existing projects and source layout -The CLAP ID `io.storyboard.resonance-compressor` is unchanged. Version 0.2 -replaces Amount, Sensitivity, Max cut, Neighborhood, Cut width, and Knee with -Depth, Sharpness, and Selectivity, so projects saved with 0.1 load those -controls at their defaults. Replace the former plugin file with `Patina.clap` and -rescan; avoid two scanned copies with the same ID. Host project recall still -needs verification in FL Studio. +The CLAP ID is now `io.narl.bass-foundry.patina` (earlier builds used +`io.storyboard.resonance-compressor`). Hosts treat Patina as a new plugin, so +add it again in projects saved with an earlier build. Version 0.2 replaced +Amount, Sensitivity, Max cut, Neighborhood, Cut width, and Knee with Depth, +Sharpness, and Selectivity. Delete the old plugin file, place `Patina.clap`, and +rescan FL Studio. Source is grouped into `plugins/patina/{core,ui,render,plugin}`. See [research](research.md), [development](../development.md), and the diff --git a/docs/releases.md b/docs/releases.md index 2a2415b..2d00caf 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -7,14 +7,14 @@ workflows are in `.gitea/workflows/`. A plugin's version is the `version` in | Plugin | Latest tag | Windows download | | --- | --- | --- | -| Rivet | `rivet-v0.4.0` | `rivet-windows-x86_64-0.4.0.zip` | -| Patina | `patina-v0.2.0` | `patina-windows-x86_64-0.2.0.zip` | -| Anvil | `anvil-v0.1.0` | `anvil-windows-x86_64-0.1.0.zip` | -| Crucible | `crucible-v0.1.0` | `crucible-windows-x86_64-0.1.0.zip` | -| Lathe | `lathe-v0.1.0` | `lathe-windows-x86_64-0.1.0.zip` | -| Temper | `temper-v0.1.0` | `temper-windows-x86_64-0.1.0.zip` | -| Weld | `weld-v0.1.0` | `weld-windows-x86_64-0.1.0.zip` | -| Knurl | `knurl-v0.1.0` | `knurl-windows-x86_64-0.1.0.zip` | +| Rivet | `rivet-v0.5.0` | `rivet-windows-x86_64-0.5.0.zip` | +| Patina | `patina-v0.3.0` | `patina-windows-x86_64-0.3.0.zip` | +| Anvil | `anvil-v0.2.0` | `anvil-windows-x86_64-0.2.0.zip` | +| Crucible | `crucible-v0.2.0` | `crucible-windows-x86_64-0.2.0.zip` | +| Lathe | `lathe-v0.2.0` | `lathe-windows-x86_64-0.2.0.zip` | +| Temper | `temper-v0.2.0` | `temper-windows-x86_64-0.2.0.zip` | +| Weld | `weld-v0.2.0` | `weld-windows-x86_64-0.2.0.zip` | +| Knurl | `knurl-v0.2.0` | `knurl-windows-x86_64-0.2.0.zip` | ## Make a release diff --git a/docs/rivet/CHANGELOG.md b/docs/rivet/CHANGELOG.md index e118127..017211f 100644 --- a/docs/rivet/CHANGELOG.md +++ b/docs/rivet/CHANGELOG.md @@ -1,5 +1,11 @@ # Rivet changelog +## 0.5.0 + +- Change the CLAP ID to `io.narl.bass-foundry.rivet`. Hosts see this as a new + plugin: delete the old `.clap` file, rescan, and add the plugin again in + existing projects. + ## 0.4.0 - Storyboard: a timeline of blocks with roles (statement, answer, departure, diff --git a/docs/rivet/README.md b/docs/rivet/README.md index 3a25b1c..04c767b 100644 --- a/docs/rivet/README.md +++ b/docs/rivet/README.md @@ -145,8 +145,8 @@ and silent startup at several sample rates and buffer sizes. ## Existing projects -The name, Cargo packages, source paths, and output filename have changed. -The CLAP ID `io.storyboard.motif`, `story-session-v1` host field, and session -JSON format are preserved. Rescan FL Studio after replacing the old plugin file -with `Rivet.clap`; remove the old copy from scanned folders to avoid duplicate -instances with the same ID. Project recall still needs a check in the target host. +The CLAP ID is now `io.narl.bass-foundry.rivet` (earlier builds used +`io.storyboard.motif`). Hosts treat Rivet as a new plugin, so add it again in +projects saved with an earlier build. The `story-session-v1` host field and the +session JSON format are preserved, so saved sessions still open. Delete the old +plugin file, place `Rivet.clap`, and rescan FL Studio. diff --git a/docs/temper/CHANGELOG.md b/docs/temper/CHANGELOG.md index 79d6221..6ecb0c6 100644 --- a/docs/temper/CHANGELOG.md +++ b/docs/temper/CHANGELOG.md @@ -1,5 +1,11 @@ # Temper changelog +## 0.2.0 + +- Change the CLAP ID to `io.narl.bass-foundry.temper`. Hosts see this as a new + plugin: delete the old `.clap` file, rescan, and add the plugin again in + existing projects. + ## 0.1.0 - Introduce Temper, a note-tracked distortion for bass sound design. diff --git a/docs/weld/CHANGELOG.md b/docs/weld/CHANGELOG.md index 9cd6a30..5026d5d 100644 --- a/docs/weld/CHANGELOG.md +++ b/docs/weld/CHANGELOG.md @@ -1,5 +1,11 @@ # Weld changelog +## 0.2.0 + +- Change the CLAP ID to `io.narl.bass-foundry.weld`. Hosts see this as a new + plugin: delete the old `.clap` file, rescan, and add the plugin again in + existing projects. + ## 0.1.0 - Introduce Weld, a phase aligner for layered bass. diff --git a/plugins/anvil/plugin/Cargo.lock b/plugins/anvil/plugin/Cargo.lock index f218c81..24d0782 100644 --- a/plugins/anvil/plugin/Cargo.lock +++ b/plugins/anvil/plugin/Cargo.lock @@ -72,7 +72,7 @@ checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" [[package]] name = "anvil" -version = "0.1.0" +version = "0.2.0" dependencies = [ "anvil-core", "anvil-ui", diff --git a/plugins/anvil/plugin/Cargo.toml b/plugins/anvil/plugin/Cargo.toml index e2d8462..c407937 100644 --- a/plugins/anvil/plugin/Cargo.toml +++ b/plugins/anvil/plugin/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "anvil" -version = "0.1.0" +version = "0.2.0" edition = "2021" license = "ISC" diff --git a/plugins/anvil/plugin/src/lib.rs b/plugins/anvil/plugin/src/lib.rs index 3643dd6..79c40c4 100644 --- a/plugins/anvil/plugin/src/lib.rs +++ b/plugins/anvil/plugin/src/lib.rs @@ -185,7 +185,7 @@ impl Plugin for Anvil { } } impl ClapPlugin for Anvil { - const CLAP_ID: &'static str = "io.storyboard.sub-anchor"; + const CLAP_ID: &'static str = "io.narl.bass-foundry.anvil"; const CLAP_DESCRIPTION: Option<&'static str> = Some("Replace the sub with a clean sine at one level and phase for every note"); const CLAP_MANUAL_URL: Option<&'static str> = None; diff --git a/plugins/anvil/plugin/tests/host.rs b/plugins/anvil/plugin/tests/host.rs index 93fdb56..4475654 100644 --- a/plugins/anvil/plugin/tests/host.rs +++ b/plugins/anvil/plugin/tests/host.rs @@ -61,7 +61,7 @@ fn effect_ports_state_latency_and_audio_lifecycle() { assert_eq!(CStr::from_ptr((*descriptor).name), c"Anvil"); assert_eq!( CStr::from_ptr((*descriptor).id), - c"io.storyboard.sub-anchor" + c"io.narl.bass-foundry.anvil" ); assert!(factory.get_plugin_descriptor.unwrap()(factory, 1).is_null()); let host = clap_host { diff --git a/plugins/catalog.json b/plugins/catalog.json index cd62aac..a07541b 100644 --- a/plugins/catalog.json +++ b/plugins/catalog.json @@ -6,7 +6,7 @@ "library": "rivet", "documentation": "docs/rivet", "standalone": "rivet", - "clap_id": "io.storyboard.motif", + "clap_id": "io.narl.bass-foundry.rivet", "packages": [ "rivet-core", "rivet-midi", @@ -20,7 +20,7 @@ "manifest": "plugins/patina/plugin/Cargo.toml", "library": "patina", "documentation": "docs/patina", - "clap_id": "io.storyboard.resonance-compressor", + "clap_id": "io.narl.bass-foundry.patina", "licenses": { "plugins/common/ui/assets/OFL.txt": "licenses/Roboto-OFL.txt" }, @@ -37,7 +37,7 @@ "manifest": "plugins/anvil/plugin/Cargo.toml", "library": "anvil", "documentation": "docs/anvil", - "clap_id": "io.storyboard.sub-anchor", + "clap_id": "io.narl.bass-foundry.anvil", "licenses": { "plugins/common/ui/assets/OFL.txt": "licenses/Roboto-OFL.txt" }, @@ -54,7 +54,7 @@ "manifest": "plugins/crucible/plugin/Cargo.toml", "library": "crucible", "documentation": "docs/crucible", - "clap_id": "io.storyboard.resampler", + "clap_id": "io.narl.bass-foundry.crucible", "licenses": { "plugins/common/ui/assets/OFL.txt": "licenses/Roboto-OFL.txt" }, @@ -71,7 +71,7 @@ "manifest": "plugins/lathe/plugin/Cargo.toml", "library": "lathe", "documentation": "docs/lathe", - "clap_id": "io.storyboard.harmonic-eq", + "clap_id": "io.narl.bass-foundry.lathe", "licenses": { "plugins/common/ui/assets/OFL.txt": "licenses/Roboto-OFL.txt" }, @@ -88,7 +88,7 @@ "manifest": "plugins/temper/plugin/Cargo.toml", "library": "temper", "documentation": "docs/temper", - "clap_id": "io.storyboard.tracked-distortion", + "clap_id": "io.narl.bass-foundry.temper", "licenses": { "plugins/common/ui/assets/OFL.txt": "licenses/Roboto-OFL.txt" }, @@ -105,7 +105,7 @@ "manifest": "plugins/weld/plugin/Cargo.toml", "library": "weld", "documentation": "docs/weld", - "clap_id": "io.storyboard.layer-align", + "clap_id": "io.narl.bass-foundry.weld", "licenses": { "plugins/common/ui/assets/OFL.txt": "licenses/Roboto-OFL.txt" }, @@ -121,7 +121,7 @@ "manifest": "plugins/knurl/plugin/Cargo.toml", "library": "knurl", "documentation": "docs/knurl", - "clap_id": "io.storyboard.cycle-texture", + "clap_id": "io.narl.bass-foundry.knurl", "licenses": { "plugins/common/ui/assets/OFL.txt": "licenses/Roboto-OFL.txt" }, diff --git a/plugins/crucible/plugin/Cargo.lock b/plugins/crucible/plugin/Cargo.lock index 21605c3..9e2d086 100644 --- a/plugins/crucible/plugin/Cargo.lock +++ b/plugins/crucible/plugin/Cargo.lock @@ -450,7 +450,7 @@ checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6" [[package]] name = "crucible" -version = "0.1.0" +version = "0.2.0" dependencies = [ "clap-sys", "crucible-core", diff --git a/plugins/crucible/plugin/Cargo.toml b/plugins/crucible/plugin/Cargo.toml index c31d8fb..a65a6c3 100644 --- a/plugins/crucible/plugin/Cargo.toml +++ b/plugins/crucible/plugin/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "crucible" -version = "0.1.0" +version = "0.2.0" edition = "2021" license = "ISC" diff --git a/plugins/crucible/plugin/src/lib.rs b/plugins/crucible/plugin/src/lib.rs index df44830..decea7b 100644 --- a/plugins/crucible/plugin/src/lib.rs +++ b/plugins/crucible/plugin/src/lib.rs @@ -185,7 +185,7 @@ impl Plugin for Crucible { } } impl ClapPlugin for Crucible { - const CLAP_ID: &'static str = "io.storyboard.resampler"; + const CLAP_ID: &'static str = "io.narl.bass-foundry.crucible"; const CLAP_DESCRIPTION: Option<&'static str> = Some("Capture the last bars, slice them and export clean, key-labelled samples"); const CLAP_MANUAL_URL: Option<&'static str> = None; diff --git a/plugins/crucible/plugin/tests/host.rs b/plugins/crucible/plugin/tests/host.rs index 2ca3e3e..6adc4ab 100644 --- a/plugins/crucible/plugin/tests/host.rs +++ b/plugins/crucible/plugin/tests/host.rs @@ -59,7 +59,10 @@ fn effect_ports_state_latency_and_audio_lifecycle() { let descriptor = factory.get_plugin_descriptor.unwrap()(factory, 0); assert!(!descriptor.is_null()); assert_eq!(CStr::from_ptr((*descriptor).name), c"Crucible"); - assert_eq!(CStr::from_ptr((*descriptor).id), c"io.storyboard.resampler"); + assert_eq!( + CStr::from_ptr((*descriptor).id), + c"io.narl.bass-foundry.crucible" + ); assert!(factory.get_plugin_descriptor.unwrap()(factory, 1).is_null()); let host = clap_host { clap_version: CLAP_VERSION, diff --git a/plugins/knurl/plugin/Cargo.lock b/plugins/knurl/plugin/Cargo.lock index a748606..ccdde2a 100644 --- a/plugins/knurl/plugin/Cargo.lock +++ b/plugins/knurl/plugin/Cargo.lock @@ -861,7 +861,7 @@ dependencies = [ [[package]] name = "knurl" -version = "0.1.0" +version = "0.2.0" dependencies = [ "clap-sys", "crossbeam-queue", diff --git a/plugins/knurl/plugin/Cargo.toml b/plugins/knurl/plugin/Cargo.toml index 9c94cc0..895e0b3 100644 --- a/plugins/knurl/plugin/Cargo.toml +++ b/plugins/knurl/plugin/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "knurl" -version = "0.1.0" +version = "0.2.0" edition = "2021" license = "ISC" diff --git a/plugins/knurl/plugin/src/lib.rs b/plugins/knurl/plugin/src/lib.rs index f4da474..ce72eb2 100644 --- a/plugins/knurl/plugin/src/lib.rs +++ b/plugins/knurl/plugin/src/lib.rs @@ -180,7 +180,7 @@ impl Plugin for Knurl { } } impl ClapPlugin for Knurl { - const CLAP_ID: &'static str = "io.storyboard.cycle-texture"; + const CLAP_ID: &'static str = "io.narl.bass-foundry.knurl"; const CLAP_DESCRIPTION: Option<&'static str> = Some("Texture per cycle of the played note: patterns, jitter and grit that fit every note"); const CLAP_MANUAL_URL: Option<&'static str> = None; diff --git a/plugins/knurl/plugin/tests/host.rs b/plugins/knurl/plugin/tests/host.rs index 9cfba7c..a8be561 100644 --- a/plugins/knurl/plugin/tests/host.rs +++ b/plugins/knurl/plugin/tests/host.rs @@ -61,7 +61,7 @@ fn effect_ports_state_latency_and_audio_lifecycle() { assert_eq!(CStr::from_ptr((*descriptor).name), c"Knurl"); assert_eq!( CStr::from_ptr((*descriptor).id), - c"io.storyboard.cycle-texture" + c"io.narl.bass-foundry.knurl" ); assert!(factory.get_plugin_descriptor.unwrap()(factory, 1).is_null()); let host = clap_host { diff --git a/plugins/lathe/plugin/Cargo.lock b/plugins/lathe/plugin/Cargo.lock index 8a297c1..a181418 100644 --- a/plugins/lathe/plugin/Cargo.lock +++ b/plugins/lathe/plugin/Cargo.lock @@ -861,7 +861,7 @@ dependencies = [ [[package]] name = "lathe" -version = "0.1.0" +version = "0.2.0" dependencies = [ "clap-sys", "crossbeam-queue", diff --git a/plugins/lathe/plugin/Cargo.toml b/plugins/lathe/plugin/Cargo.toml index facc04e..46e76ba 100644 --- a/plugins/lathe/plugin/Cargo.toml +++ b/plugins/lathe/plugin/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lathe" -version = "0.1.0" +version = "0.2.0" edition = "2021" license = "ISC" diff --git a/plugins/lathe/plugin/src/lib.rs b/plugins/lathe/plugin/src/lib.rs index e4bbe33..1020c3b 100644 --- a/plugins/lathe/plugin/src/lib.rs +++ b/plugins/lathe/plugin/src/lib.rs @@ -174,7 +174,7 @@ impl Plugin for Lathe { } } impl ClapPlugin for Lathe { - const CLAP_ID: &'static str = "io.storyboard.harmonic-eq"; + const CLAP_ID: &'static str = "io.narl.bass-foundry.lathe"; const CLAP_DESCRIPTION: Option<&'static str> = Some("EQ the harmonics of the played note: a cut on harmonic 3 stays on harmonic 3"); const CLAP_MANUAL_URL: Option<&'static str> = None; diff --git a/plugins/lathe/plugin/tests/host.rs b/plugins/lathe/plugin/tests/host.rs index 018af67..da47122 100644 --- a/plugins/lathe/plugin/tests/host.rs +++ b/plugins/lathe/plugin/tests/host.rs @@ -61,7 +61,7 @@ fn effect_ports_state_latency_and_audio_lifecycle() { assert_eq!(CStr::from_ptr((*descriptor).name), c"Lathe"); assert_eq!( CStr::from_ptr((*descriptor).id), - c"io.storyboard.harmonic-eq" + c"io.narl.bass-foundry.lathe" ); assert!(factory.get_plugin_descriptor.unwrap()(factory, 1).is_null()); let host = clap_host { diff --git a/plugins/patina/plugin/Cargo.lock b/plugins/patina/plugin/Cargo.lock index 429d283..5f9aa23 100644 --- a/plugins/patina/plugin/Cargo.lock +++ b/plugins/patina/plugin/Cargo.lock @@ -1419,7 +1419,7 @@ dependencies = [ [[package]] name = "patina" -version = "0.2.0" +version = "0.3.0" dependencies = [ "clap-sys", "crossbeam-queue", diff --git a/plugins/patina/plugin/Cargo.toml b/plugins/patina/plugin/Cargo.toml index 4505a80..866f950 100644 --- a/plugins/patina/plugin/Cargo.toml +++ b/plugins/patina/plugin/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "patina" -version = "0.2.0" +version = "0.3.0" edition = "2021" license = "ISC" diff --git a/plugins/patina/plugin/src/lib.rs b/plugins/patina/plugin/src/lib.rs index 0d9ad89..cbc9962 100644 --- a/plugins/patina/plugin/src/lib.rs +++ b/plugins/patina/plugin/src/lib.rs @@ -187,7 +187,7 @@ fn store_epoch(ctx: &egui::Context, e: u64) { ctx.data_mut(|d| d.insert_temp(egui::Id::new("reset-epoch"), e)); } impl ClapPlugin for Patina { - const CLAP_ID: &'static str = "io.storyboard.resonance-compressor"; + const CLAP_ID: &'static str = "io.narl.bass-foundry.patina"; const CLAP_DESCRIPTION: Option<&'static str> = Some("Dynamic resonance attenuation with explicit tone protection"); const CLAP_MANUAL_URL: Option<&'static str> = None; diff --git a/plugins/patina/plugin/tests/host.rs b/plugins/patina/plugin/tests/host.rs index d80fa75..e838692 100644 --- a/plugins/patina/plugin/tests/host.rs +++ b/plugins/patina/plugin/tests/host.rs @@ -61,7 +61,7 @@ fn effect_ports_state_latency_and_audio_lifecycle() { assert_eq!(CStr::from_ptr((*descriptor).name), c"Patina"); assert_eq!( CStr::from_ptr((*descriptor).id), - c"io.storyboard.resonance-compressor" + c"io.narl.bass-foundry.patina" ); assert!(factory.get_plugin_descriptor.unwrap()(factory, 1).is_null()); let host = clap_host { diff --git a/plugins/rivet/plugin/Cargo.lock b/plugins/rivet/plugin/Cargo.lock index 221d444..346069d 100644 --- a/plugins/rivet/plugin/Cargo.lock +++ b/plugins/rivet/plugin/Cargo.lock @@ -2054,7 +2054,7 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "rivet" -version = "0.4.0" +version = "0.5.0" dependencies = [ "clap-sys", "nih_plug", diff --git a/plugins/rivet/plugin/Cargo.toml b/plugins/rivet/plugin/Cargo.toml index 8373c7b..53679f2 100644 --- a/plugins/rivet/plugin/Cargo.toml +++ b/plugins/rivet/plugin/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rivet" -version = "0.4.0" +version = "0.5.0" edition = "2021" license = "ISC" diff --git a/plugins/rivet/plugin/src/lib.rs b/plugins/rivet/plugin/src/lib.rs index 4664194..32b6ba8 100644 --- a/plugins/rivet/plugin/src/lib.rs +++ b/plugins/rivet/plugin/src/lib.rs @@ -177,7 +177,7 @@ impl Plugin for Rivet { } } impl ClapPlugin for Rivet { - const CLAP_ID: &'static str = "io.storyboard.motif"; + const CLAP_ID: &'static str = "io.narl.bass-foundry.rivet"; const CLAP_DESCRIPTION: Option<&'static str> = Some( "Tell a MIDI motif as a story: a storyboard of statement, answer, departure and return", ); diff --git a/plugins/rivet/plugin/tests/host.rs b/plugins/rivet/plugin/tests/host.rs index 5c11ac1..f5f6432 100644 --- a/plugins/rivet/plugin/tests/host.rs +++ b/plugins/rivet/plugin/tests/host.rs @@ -59,7 +59,10 @@ fn exported_factory_state_and_silent_audio_lifecycle() { let descriptor = factory.get_plugin_descriptor.unwrap()(factory, 0); assert!(!descriptor.is_null()); assert_eq!(CStr::from_ptr((*descriptor).name), c"Rivet"); - assert_eq!(CStr::from_ptr((*descriptor).id), c"io.storyboard.motif"); + assert_eq!( + CStr::from_ptr((*descriptor).id), + c"io.narl.bass-foundry.rivet" + ); assert!(factory.get_plugin_descriptor.unwrap()(factory, 1).is_null()); let host = clap_host { clap_version: CLAP_VERSION, diff --git a/plugins/temper/plugin/Cargo.lock b/plugins/temper/plugin/Cargo.lock index 4eedc63..b742d82 100644 --- a/plugins/temper/plugin/Cargo.lock +++ b/plugins/temper/plugin/Cargo.lock @@ -1734,7 +1734,7 @@ dependencies = [ [[package]] name = "temper" -version = "0.1.0" +version = "0.2.0" dependencies = [ "clap-sys", "crossbeam-queue", diff --git a/plugins/temper/plugin/Cargo.toml b/plugins/temper/plugin/Cargo.toml index 067cf14..4c588f0 100644 --- a/plugins/temper/plugin/Cargo.toml +++ b/plugins/temper/plugin/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "temper" -version = "0.1.0" +version = "0.2.0" edition = "2021" license = "ISC" diff --git a/plugins/temper/plugin/src/lib.rs b/plugins/temper/plugin/src/lib.rs index 77e513f..085f142 100644 --- a/plugins/temper/plugin/src/lib.rs +++ b/plugins/temper/plugin/src/lib.rs @@ -167,7 +167,7 @@ impl Plugin for Temper { } } impl ClapPlugin for Temper { - const CLAP_ID: &'static str = "io.storyboard.tracked-distortion"; + const CLAP_ID: &'static str = "io.narl.bass-foundry.temper"; const CLAP_DESCRIPTION: Option<&'static str> = Some( "Distortion whose drive and tone filters follow the note, so every note distorts the same", ); diff --git a/plugins/temper/plugin/tests/host.rs b/plugins/temper/plugin/tests/host.rs index 4453ba3..be5fef5 100644 --- a/plugins/temper/plugin/tests/host.rs +++ b/plugins/temper/plugin/tests/host.rs @@ -61,7 +61,7 @@ fn effect_ports_state_latency_and_audio_lifecycle() { assert_eq!(CStr::from_ptr((*descriptor).name), c"Temper"); assert_eq!( CStr::from_ptr((*descriptor).id), - c"io.storyboard.tracked-distortion" + c"io.narl.bass-foundry.temper" ); assert!(factory.get_plugin_descriptor.unwrap()(factory, 1).is_null()); let host = clap_host { diff --git a/plugins/weld/plugin/Cargo.lock b/plugins/weld/plugin/Cargo.lock index d9d67e3..48a06ca 100644 --- a/plugins/weld/plugin/Cargo.lock +++ b/plugins/weld/plugin/Cargo.lock @@ -2056,7 +2056,7 @@ dependencies = [ [[package]] name = "weld" -version = "0.1.0" +version = "0.2.0" dependencies = [ "clap-sys", "crossbeam-queue", diff --git a/plugins/weld/plugin/Cargo.toml b/plugins/weld/plugin/Cargo.toml index 9d3f0d5..1c44ced 100644 --- a/plugins/weld/plugin/Cargo.toml +++ b/plugins/weld/plugin/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "weld" -version = "0.1.0" +version = "0.2.0" edition = "2021" license = "ISC" diff --git a/plugins/weld/plugin/src/lib.rs b/plugins/weld/plugin/src/lib.rs index ea8e886..2d8584a 100644 --- a/plugins/weld/plugin/src/lib.rs +++ b/plugins/weld/plugin/src/lib.rs @@ -198,7 +198,7 @@ impl Plugin for Weld { } } impl ClapPlugin for Weld { - const CLAP_ID: &'static str = "io.storyboard.layer-align"; + const CLAP_ID: &'static str = "io.narl.bass-foundry.weld"; const CLAP_DESCRIPTION: Option<&'static str> = Some( "Align the phase of a bass layer to a sidechain layer so the two sum instead of cancel", ); diff --git a/plugins/weld/plugin/tests/host.rs b/plugins/weld/plugin/tests/host.rs index 27f7dfe..cc08cb7 100644 --- a/plugins/weld/plugin/tests/host.rs +++ b/plugins/weld/plugin/tests/host.rs @@ -61,7 +61,7 @@ fn sidechain_port_state_latency_and_audio_lifecycle() { assert_eq!(CStr::from_ptr((*descriptor).name), c"Weld"); assert_eq!( CStr::from_ptr((*descriptor).id), - c"io.storyboard.layer-align" + c"io.narl.bass-foundry.weld" ); let host = clap_host { clap_version: CLAP_VERSION, diff --git a/website/src/components/Install.astro b/website/src/components/Install.astro index 9dacb2f..953f3d4 100644 --- a/website/src/components/Install.astro +++ b/website/src/components/Install.astro @@ -40,6 +40,10 @@ import { REPO } from '../data/plugins'; Open Options → Manage plugins, enable Verify plugins and click Find installed plugins. The plugins appear under the vendor Bass Foundry.

+

+ Upgrading from a build before November 2026? The plugin IDs changed, so delete the old + .clap files first and add the plugins again in existing projects. +