Check and Windows preview / check (anvil) (push) Successful in 2m1s
Check and Windows preview / check (crucible) (push) Successful in 1m31s
Check and Windows preview / check (knurl) (push) Successful in 2m4s
Check and Windows preview / check (lathe) (push) Successful in 1m27s
Check and Windows preview / check (patina) (push) Successful in 1m54s
Check and Windows preview / check (rivet) (push) Successful in 1m30s
Check and Windows preview / check (temper) (push) Successful in 1m31s
Check and Windows preview / check (weld) (push) Successful in 2m31s
Check and Windows preview / previews (push) Successful in 1m26s
Independent plugin release / plan (push) Successful in 7s
Check and Windows preview / windows (push) Successful in 2m26s
Independent plugin release / build (push) Successful in 3m0s
Independent plugin release / publish (push) Successful in 8s
Knurl follows the played note and treats every cycle of the wave on its own: a repeating level pattern over 1-16 cycles makes subharmonics in tune with every note, random level and timing per cycle add rattle, and a noise burst per cycle, highpassed at a multiple of f0, adds grit. Amounts are counted in cycles, so the texture is the same on F1 and on C2. - Cycle clock from the shared note tracker, restarted at each note; the audio is delayed by the lookahead plus 4.2 ms of timing-jitter headroom. - Per-cycle randomness from a hash of the cycle number: Same every note or Free. - Patterns Off, Double, Triple, Fry (default), Gallop, Stutter or drawn; grit switchable per step. Pattern persisted as knurl-pattern. - Editor: last eight cycles overlaid, pattern bars with the playing step. - Tests match the prototype: Double gives f0/2 at -8.19 dB, Triple f0/3 at -10.68 dB, equal on F1 and C2, no added clicks, bit-exact when off, no allocation on the audio thread.
135 lines
3.7 KiB
JSON
135 lines
3.7 KiB
JSON
{
|
|
"rivet": {
|
|
"name": "Rivet",
|
|
"description": "Join motifs into connected musical phrases",
|
|
"manifest": "plugins/rivet/plugin/Cargo.toml",
|
|
"library": "rivet",
|
|
"documentation": "docs/rivet",
|
|
"standalone": "rivet",
|
|
"clap_id": "io.storyboard.motif",
|
|
"packages": [
|
|
"rivet-core",
|
|
"rivet-midi",
|
|
"rivet-app",
|
|
"rivet-preview"
|
|
]
|
|
},
|
|
"patina": {
|
|
"name": "Patina",
|
|
"description": "Smooth harsh resonances while retaining character",
|
|
"manifest": "plugins/patina/plugin/Cargo.toml",
|
|
"library": "patina",
|
|
"documentation": "docs/patina",
|
|
"clap_id": "io.storyboard.resonance-compressor",
|
|
"licenses": {
|
|
"plugins/common/ui/assets/OFL.txt": "licenses/Roboto-OFL.txt"
|
|
},
|
|
"packages": [
|
|
"common-ui",
|
|
"patina-core",
|
|
"patina-ui",
|
|
"patina-render"
|
|
]
|
|
},
|
|
"anvil": {
|
|
"name": "Anvil",
|
|
"description": "Replace the sub with a clean sine at one level and phase for every note",
|
|
"manifest": "plugins/anvil/plugin/Cargo.toml",
|
|
"library": "anvil",
|
|
"documentation": "docs/anvil",
|
|
"clap_id": "io.storyboard.sub-anchor",
|
|
"licenses": {
|
|
"plugins/common/ui/assets/OFL.txt": "licenses/Roboto-OFL.txt"
|
|
},
|
|
"packages": [
|
|
"common-ui",
|
|
"common-dsp",
|
|
"anvil-core",
|
|
"anvil-ui"
|
|
]
|
|
},
|
|
"crucible": {
|
|
"name": "Crucible",
|
|
"description": "Capture the last bars, slice them and export clean, key-labelled samples",
|
|
"manifest": "plugins/crucible/plugin/Cargo.toml",
|
|
"library": "crucible",
|
|
"documentation": "docs/crucible",
|
|
"clap_id": "io.storyboard.resampler",
|
|
"licenses": {
|
|
"plugins/common/ui/assets/OFL.txt": "licenses/Roboto-OFL.txt"
|
|
},
|
|
"packages": [
|
|
"common-ui",
|
|
"common-dsp",
|
|
"crucible-core",
|
|
"crucible-ui"
|
|
]
|
|
},
|
|
"lathe": {
|
|
"name": "Lathe",
|
|
"description": "EQ the harmonics of the played note: a cut on harmonic 3 stays on harmonic 3",
|
|
"manifest": "plugins/lathe/plugin/Cargo.toml",
|
|
"library": "lathe",
|
|
"documentation": "docs/lathe",
|
|
"clap_id": "io.storyboard.harmonic-eq",
|
|
"licenses": {
|
|
"plugins/common/ui/assets/OFL.txt": "licenses/Roboto-OFL.txt"
|
|
},
|
|
"packages": [
|
|
"common-ui",
|
|
"common-dsp",
|
|
"lathe-core",
|
|
"lathe-ui"
|
|
]
|
|
},
|
|
"temper": {
|
|
"name": "Temper",
|
|
"description": "Distortion whose drive and tone filters follow the note, so every note distorts the same",
|
|
"manifest": "plugins/temper/plugin/Cargo.toml",
|
|
"library": "temper",
|
|
"documentation": "docs/temper",
|
|
"clap_id": "io.storyboard.tracked-distortion",
|
|
"licenses": {
|
|
"plugins/common/ui/assets/OFL.txt": "licenses/Roboto-OFL.txt"
|
|
},
|
|
"packages": [
|
|
"common-ui",
|
|
"common-dsp",
|
|
"temper-core",
|
|
"temper-ui"
|
|
]
|
|
},
|
|
"weld": {
|
|
"name": "Weld",
|
|
"description": "Align the phase of a bass layer to a sidechain layer so the two sum instead of cancel",
|
|
"manifest": "plugins/weld/plugin/Cargo.toml",
|
|
"library": "weld",
|
|
"documentation": "docs/weld",
|
|
"clap_id": "io.storyboard.layer-align",
|
|
"licenses": {
|
|
"plugins/common/ui/assets/OFL.txt": "licenses/Roboto-OFL.txt"
|
|
},
|
|
"packages": [
|
|
"common-ui",
|
|
"weld-core",
|
|
"weld-ui"
|
|
]
|
|
},
|
|
"knurl": {
|
|
"name": "Knurl",
|
|
"description": "Give every cycle of the note its own level, timing and grit",
|
|
"manifest": "plugins/knurl/plugin/Cargo.toml",
|
|
"library": "knurl",
|
|
"documentation": "docs/knurl",
|
|
"clap_id": "io.storyboard.cycle-texture",
|
|
"licenses": {
|
|
"plugins/common/ui/assets/OFL.txt": "licenses/Roboto-OFL.txt"
|
|
},
|
|
"packages": [
|
|
"common-ui",
|
|
"knurl-core",
|
|
"knurl-ui"
|
|
]
|
|
}
|
|
}
|