Files
bass-foundry/tools/editor-check/Cargo.toml
T
nvrl 330ec54150
Check and Windows preview / check (anvil) (push) Successful in 2m15s
Check and Windows preview / check (braze) (push) Successful in 2m26s
Check and Windows preview / check (crucible) (push) Successful in 1m52s
Check and Windows preview / check (knurl) (push) Successful in 1m42s
Check and Windows preview / check (lathe) (push) Successful in 1m44s
Check and Windows preview / check (patina) (push) Successful in 2m38s
Check and Windows preview / check (planish) (push) Successful in 1m29s
Check and Windows preview / check (rivet) (push) Successful in 1m39s
Check and Windows preview / check (temper) (push) Successful in 1m37s
Check and Windows preview / check (weld) (push) Canceled after 2s
Check and Windows preview / previews (push) Canceled after 0s
Check and Windows preview / windows (push) Canceled after 0s
feat(braze): add Braze tempo-locked beating
Adds a detuned copy of the bass whose beating stays on the tempo grid on
every note. The chosen harmonic k beats once per Rate note value, and
harmonic n beats n/k times as fast, so every harmonic is on the grid.

- The copy is read from a delay line whose delay falls one period of the
  tracked note per beat cycle (r = 1 + B/(k f0)) and jumps back exactly
  one period, crossfaded over 6 ms. On a periodic note the jump has no
  seam: the output matches the ideal sum within 0.003 on harmonics 1-4.
- The delay follows the host's beat position, shifted by the lookahead,
  so beat peaks land on the grid; free-running when stopped.
- Low cut: LR4 high-pass on the copy, the bass split by the same
  crossover, so the sub does not beat and keeps its level.
- Depth, Width, Phase, Gate, Output, Snap, Bypass. Pitch from audio
  (about 67 ms lookahead) or MIDI.
- Editor: one bar of the beat per harmonic with the grid and a playhead.
- Catalog, workflows, editor-check, docs, signal chain and site copy.
2026-11-06 14:02:58 +01:00

34 lines
1.3 KiB
TOML

[package]
name = "editor-check"
version = "0.1.0"
edition = "2021"
publish = false
[workspace]
[dependencies]
egui = "0.31.1"
image = { version = "0.25", default-features = false, features = ["png"] }
rivet-app = { path = "../../plugins/rivet/app" }
rivet-core = { path = "../../plugins/rivet/core" }
rivet-midi = { path = "../../plugins/rivet/midi" }
patina-core = { path = "../../plugins/patina/core" }
patina-ui = { path = "../../plugins/patina/ui" }
anvil-core = { path = "../../plugins/anvil/core" }
anvil-ui = { path = "../../plugins/anvil/ui" }
common-dsp = { path = "../../plugins/common/dsp" }
crucible-core = { path = "../../plugins/crucible/core" }
crucible-ui = { path = "../../plugins/crucible/ui" }
lathe-core = { path = "../../plugins/lathe/core" }
lathe-ui = { path = "../../plugins/lathe/ui" }
temper-core = { path = "../../plugins/temper/core" }
temper-ui = { path = "../../plugins/temper/ui" }
knurl-core = { path = "../../plugins/knurl/core" }
knurl-ui = { path = "../../plugins/knurl/ui" }
planish-core = { path = "../../plugins/planish/core" }
planish-ui = { path = "../../plugins/planish/ui" }
braze-core = { path = "../../plugins/braze/core" }
braze-ui = { path = "../../plugins/braze/ui" }
weld-core = { path = "../../plugins/weld/core" }
weld-ui = { path = "../../plugins/weld/ui" }