feat(patina): Tone guard for bass lines
Patina detects the played note (30-500 Hz) and remembers, over about 4 s, how high each spectral bump is at a fixed frequency and relative to the note. Bumps that follow the note (a boosted harmonic the patch is built on) get less cut; bumps fixed in Hz (formants, room modes) are cut as before. On a saw line F1-F2 with harmonic 6 boosted, the cut on that harmonic drops from 5.78 dB to 0.44 dB at 100 %, while a fixed formant at 1.5 kHz stays at 5.78 dB. One held note is cut as normal, since the two cases cannot be told apart. - New parameter tone-guard (0-100 %, default 0), appended at the end; 0 % is the old behaviour and old settings load unchanged. - New Bass line preset. - Editor: Tone guard control, NOTE readout and a strip over the spectrum where cuts are held back. - No added latency, no allocation on the audio thread; patina-core now depends on common-dsp.
This commit is contained in:
1 parent
6d868a63c4
commit
53bc26d14d
15 files changed
+391
-10
No files matched your search
@@ -1,5 +1,15 @@
|
||||
# Patina changelog
|
||||
|
||||
## Unreleased
|
||||
|
||||
- Add **Tone guard** (0–100 %, default 0 %). Patina follows the played note and
|
||||
remembers, over about four seconds, which bumps stay in Hz and which follow the
|
||||
note. Bumps that follow the note (a harmonic the bass is built on) are cut
|
||||
less; resonances fixed in Hz (formant, comb and filter rings) are still cut.
|
||||
At 0 % Patina works exactly as before. The display shows the note and marks
|
||||
the held-back region with a blue strip.
|
||||
- Add the **Bass line** preset (Tone guard 80 %, Low 150 Hz).
|
||||
|
||||
## 0.3.0
|
||||
|
||||
- Change the CLAP ID to `io.narl.bass-foundry.patina`. Hosts see this as a new
|
||||
|
||||
+23
-1
@@ -33,6 +33,27 @@ cuts, then use Delta to hear what is removed. Restrict Low/High frequency to kee
|
||||
the source’s body out of reach. Attack and Release set how quickly cuts grow and
|
||||
recover; Transient guard briefly relaxes cuts on attacks to keep punch.
|
||||
|
||||
### Tone guard for bass lines
|
||||
|
||||
On a bass line, a bump can mean two things. A resonance fixed in Hz (a formant,
|
||||
a comb or filter ring) stays at the same frequency on every note: that is what
|
||||
Patina should cut. A bump that follows the note (a harmonic the patch is built
|
||||
on, or a Lathe boost) moves with every note: cutting it changes the patch
|
||||
differently on each note.
|
||||
|
||||
**Tone guard** tells them apart. Patina detects the played note (30–500 Hz)
|
||||
and remembers, over about four seconds, how high each bump was in Hz and how
|
||||
high it was relative to the note. A bump that has stayed with the note more
|
||||
than in Hz gets less cut; at 100 % none. A resonance fixed in Hz is cut as
|
||||
before. It needs a few different notes before it can decide: on one held note
|
||||
both look the same and Patina cuts as normal. The **NOTE** readout shows what
|
||||
Patina follows, and a blue strip on top of the plot shows where cuts are held
|
||||
back. Start from the **Bass line** preset. At 0 % Tone guard is off.
|
||||
|
||||
Measured on a saw line F1–F2 with Low at 150 Hz: a +12 dB boost on harmonic 6
|
||||
is cut by 5.8 dB without Tone guard and by 0.4 dB at 100 %; a formant at 1.5 kHz
|
||||
is cut by 5.8 dB either way.
|
||||
|
||||
Double-click the plot to add one of four focus points. Drag a point up to cut
|
||||
more in that region, down to protect it. Wheel changes its width. Range handles
|
||||
on the plot drag the processing limits.
|
||||
@@ -76,7 +97,8 @@ The engine uses complex RustFFT with supplied scratch buffers, WOLA reconstructi
|
||||
the envelope/reference detector above, bounded soft-knee cuts, and temporal
|
||||
smoothing. Original bin phases are retained. This is not a minimum-phase filter
|
||||
bank, a live monitoring effect, a limiter, or an automatic separation of tone and
|
||||
unwanted resonance. No external sidechain, Learn, M/S, or pitch detector in v0.1.
|
||||
unwanted resonance. No external sidechain, Learn or M/S. The pitch detector
|
||||
serves Tone guard only.
|
||||
|
||||
## Build and offline evaluation
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 415 KiB After Width: | Height: | Size: 420 KiB |
Reference in new issue
Block a user