feat!: change CLAP IDs to io.narl.bass-foundry.<product>, 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.<product>, 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.
This commit is contained in:
1 parent
7e1776bb04
commit
fb56f6f3fd
47 files changed
+138
-77
No files matched your search
@@ -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.<product>`, 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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
+16
-13
@@ -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.<product>`. 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.<slug>` 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.
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
+8
-8
@@ -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
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
Generated
+1
-1
@@ -72,7 +72,7 @@ checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"
|
||||
|
||||
[[package]]
|
||||
name = "anvil"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
dependencies = [
|
||||
"anvil-core",
|
||||
"anvil-ui",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "anvil"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
edition = "2021"
|
||||
license = "ISC"
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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"
|
||||
},
|
||||
|
||||
Generated
+1
-1
@@ -450,7 +450,7 @@ checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6"
|
||||
|
||||
[[package]]
|
||||
name = "crucible"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
dependencies = [
|
||||
"clap-sys",
|
||||
"crucible-core",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "crucible"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
edition = "2021"
|
||||
license = "ISC"
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
Generated
+1
-1
@@ -861,7 +861,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "knurl"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
dependencies = [
|
||||
"clap-sys",
|
||||
"crossbeam-queue",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "knurl"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
edition = "2021"
|
||||
license = "ISC"
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Generated
+1
-1
@@ -861,7 +861,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "lathe"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
dependencies = [
|
||||
"clap-sys",
|
||||
"crossbeam-queue",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "lathe"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
edition = "2021"
|
||||
license = "ISC"
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Generated
+1
-1
@@ -1419,7 +1419,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "patina"
|
||||
version = "0.2.0"
|
||||
version = "0.3.0"
|
||||
dependencies = [
|
||||
"clap-sys",
|
||||
"crossbeam-queue",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "patina"
|
||||
version = "0.2.0"
|
||||
version = "0.3.0"
|
||||
edition = "2021"
|
||||
license = "ISC"
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Generated
+1
-1
@@ -2054,7 +2054,7 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
|
||||
|
||||
[[package]]
|
||||
name = "rivet"
|
||||
version = "0.4.0"
|
||||
version = "0.5.0"
|
||||
dependencies = [
|
||||
"clap-sys",
|
||||
"nih_plug",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "rivet"
|
||||
version = "0.4.0"
|
||||
version = "0.5.0"
|
||||
edition = "2021"
|
||||
license = "ISC"
|
||||
|
||||
|
||||
@@ -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",
|
||||
);
|
||||
|
||||
@@ -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,
|
||||
|
||||
Generated
+1
-1
@@ -1734,7 +1734,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "temper"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
dependencies = [
|
||||
"clap-sys",
|
||||
"crossbeam-queue",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "temper"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
edition = "2021"
|
||||
license = "ISC"
|
||||
|
||||
|
||||
@@ -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",
|
||||
);
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Generated
+1
-1
@@ -2056,7 +2056,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "weld"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
dependencies = [
|
||||
"clap-sys",
|
||||
"crossbeam-queue",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "weld"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
edition = "2021"
|
||||
license = "ISC"
|
||||
|
||||
|
||||
@@ -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",
|
||||
);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -40,6 +40,10 @@ import { REPO } from '../data/plugins';
|
||||
Open <b>Options → Manage plugins</b>, enable <b>Verify plugins</b> and click <b>Find installed plugins</b>.
|
||||
The plugins appear under the vendor <b>Bass Foundry</b>.
|
||||
</p>
|
||||
<p>
|
||||
Upgrading from a build before November 2026? The plugin IDs changed, so delete the old
|
||||
<code>.clap</code> files first and add the plugins again in existing projects.
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
<li class="plate">
|
||||
|
||||
Reference in new issue
Block a user