chore: scaffold Kolmekivi from nih-plug-template
A stereo delay/echo plugin. Scaffolded rather than forked: the template
and the plugins built from it diverge on branding immediately, so they
share code by file copy — as codename-206 does — not by merge base. This
repo starts its own history.
Branded with tools/brand-plugin.sh. Everything derives from PLUGIN_NAME
("Kolmekivi" -> kolmekivi / Kolmekivi / KolmekiviParams), so no override
is pinned. CODENAME is set to the repo name and, by convention, stays
there even if the plugin is later renamed.
Two identity constants are now frozen and must never move, because hosts
key saved projects and presets off them:
CLAP_ID org.novoyuuparosk.kolmekivi
VST3_CLASS_ID KolmekiviDelay!! (exactly 16 bytes)
Host categorisation is set for a delay rather than left at the template's
generic placeholders — ClapFeature::{AudioEffect,Delay,Stereo} and
Vst3SubCategory::{Fx,Delay}. These decide where the plugin appears in a
host's browser and are not covered by the branding checker, which knows
about names rather than categories.
The DSP is not written. src/lib.rs still carries the template's example
gain parameter, so the plugin builds, bundles and loads while the delay is
implemented.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WHt4DykxXaQnyaJfyS8KCn
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
paths:
|
||||
- 'src/**'
|
||||
- 'xtask/**'
|
||||
- 'Cargo.toml'
|
||||
- 'Cargo.lock'
|
||||
- 'bundler.toml'
|
||||
- 'tools/**'
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
workflow_dispatch:
|
||||
|
||||
# Target the self-hosted Rust/audio runner registered to the `musiikki` org.
|
||||
#
|
||||
# The runner is host-mode, so the rustup toolchain installed for the
|
||||
# `gitea-runner` user is used directly — nothing installs per run, and the cargo
|
||||
# registry cache stays warm between jobs.
|
||||
#
|
||||
# NOTE: `rust-audio` is an ORG-SCOPED label. A plugin cloned from this template
|
||||
# into a different org will not see that runner, and its jobs will queue
|
||||
# indefinitely rather than fail. Either register a runner advertising this label
|
||||
# for that org, or change `runs-on` below.
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
runs-on: rust-audio
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Toolchain
|
||||
run: |
|
||||
cargo --version
|
||||
rustc --version
|
||||
echo "CARGO_HOME=${CARGO_HOME:?not set on this runner}"
|
||||
|
||||
# Cheap and needs no toolchain, so it runs first: a rename that only
|
||||
# landed in half the files is worth catching before spending a build on it.
|
||||
- name: Branding consistency
|
||||
run: sh tools/check-branding.sh
|
||||
|
||||
# The default build is CLAP-only; the vst3 feature is opt-in, so both
|
||||
# configurations have to be built to know the cfg gates are still correct.
|
||||
- name: Build (default, CLAP only)
|
||||
run: cargo build --release
|
||||
|
||||
- name: Build (--features vst3)
|
||||
run: cargo build --release --features vst3
|
||||
|
||||
- name: Test
|
||||
run: cargo test --release --features vst3
|
||||
|
||||
# Proves the xtask bundler still works, which a plain `cargo build` does
|
||||
# not exercise — the bundle step is where bundler.toml and the crate name
|
||||
# have to agree.
|
||||
- name: Bundle
|
||||
run: cargo xtask bundle kolmekivi --release --features vst3
|
||||
Reference in New Issue
Block a user