chore: release Anvil 0.4.0, Lathe/Temper/Knurl 0.3.0, Planish/Braze/Ballast/Forge 0.2.0, Crucible/Weld 0.4.0
Check and Windows preview / check (anvil) (push) Successful in 2m37s
Check and Windows preview / check (ballast) (push) Successful in 1m49s
Check and Windows preview / check (braze) (push) Successful in 1m48s
Check and Windows preview / check (crucible) (push) Successful in 2m8s
Check and Windows preview / check (forge) (push) Successful in 2m9s
Check and Windows preview / check (knurl) (push) Successful in 1m53s
Check and Windows preview / check (lathe) (push) Successful in 1m58s
Check and Windows preview / check (patina) (push) Successful in 3m34s
Check and Windows preview / check (planish) (push) Successful in 1m59s
Check and Windows preview / check (quench) (push) Successful in 1m51s
Check and Windows preview / check (rivet) (push) Successful in 1m50s
Check and Windows preview / check (temper) (push) Successful in 1m58s
Check and Windows preview / check (weld) (push) Successful in 3m16s
Check and Windows preview / previews (push) Successful in 2m17s
Check and Windows preview / windows (push) Successful in 3m14s
Independent plugin release / publish (push) Successful in 10s
Independent plugin release / plan (push) Successful in 8s
Independent plugin release / build (push) Successful in 3m50s

The producer-feedback round: stable note tracking, the NOTE pitch source with
Key lock and Follow bends, unsure-means-neutral fallbacks, Anvil's Enhance
mode, MAIN and ADVANCED pages, Ballast on Grid by default, and Crucible's
sure-note slice names with a song key.

Adds docs/pitch.md for the shared pitch source, updates every changed
plugin's README and changelog, the release table, the editor previews, the
website bullets, and the status in docs/ideas.md.
This commit is contained in:
nvrl committed 2026-11-06 21:26:59 +01:00
1 parent 01fd3241eb
commit b8d04d1936
54 files changed
+389 -101

No files matched your search

+15
View File
@@ -1,5 +1,20 @@
# Anvil changelog
## 0.4.0
- Add **Mode**: **Replace** swaps the sub as before; **Enhance** keeps the
original sub and adds the sine under it.
- Add **NOTE** as a pitch source: Anvil plays a note you set, and the audio only
starts and stops it. Add Key lock and Follow bends for AUDIO detection.
- Detection holds its notes: a new note needs a steady pitch for 40 ms, octave
jumps need 80 ms down and 200 ms up. Growls, wobbles and formant basses no
longer flicker between notes. Follow bends brings back the old fast behaviour.
- When detection is unsure, Anvil plays the original sub (Enhance: adds nothing)
instead of a guessed note, and the NOTE readout shows **?**.
- The editor opens on a MAIN page with Mode, Split, Sub level, Octave, Ghost,
Keep and Output. **ADVANCED** in the header shows every control and Kick lock.
- Projects from 0.3 load with Replace mode, AUDIO detection, and Key lock off.
## 0.3.0
- Add Ghost harmonics: **Ghost** and **Ghost from** add the sub's harmonics 2–10
+32 -15
View File
@@ -1,6 +1,6 @@
# Anvil
Anvil gives every bass note the same solid sub. Current version **0.3.0**.
Anvil gives every bass note the same solid sub. Current version **0.4.0**.
In riddim and dubstep, each switch-up patch brings its own sub: a different level,
a different phase, sometimes two layers that cancel. The drop's weight jumps from
@@ -20,18 +20,33 @@ redistributed packages.
## Work with it
The editor opens on the **MAIN** page with the controls most drops need. The
**ADVANCED** switch in the header shows every control and the Kick lock panel.
1. Put Anvil on the bass bus, after the sound design and before the bus
compression or clipping.
2. Set **Split** just above the sub. 80–100 Hz suits most riddim basses.
3. Set **Sub level** once. Every patch on the bus now gets this level.
4. Use **Phase** to line the start of each note up with your kick. With
**Retrigger** on, every note starts at this phase.
5. Turn on **Solo sub** to hear only the new sub; the scope shows the original
2. Choose the **Mode**:
- **Replace** swaps the band below Split for the clean sine. Every note gets
the same level and phase. Use it when switch-ups bring different subs.
- **Enhance** keeps your sub as it is and adds the sine under it. Use it when
you like your sub and want more weight, or with **Octave** −1 for a
sub-octave.
3. Set **Split** just above the sub. 80–100 Hz suits most riddim basses.
4. Set **Sub level** once. Every patch on the bus now gets this level.
5. In the header, set **Pitch from**. For growls and FM basses, choose **NOTE**
and set the drop's root. See [Pitch source](../pitch.md).
6. On the ADVANCED page, use **Phase** to line the start of each note up with
your kick. With **Retrigger** on, every note starts at this phase.
7. Turn on **Solo sub** to hear only the new sub; the scope shows the original
low band (grey) against the new sub (accent).
6. Turn on **Phone** to check the drop the way phones and laptop speakers play
8. Turn on **Phone** to check the drop the way phones and laptop speakers play
it: mono, nothing below 400 Hz. A clean sub vanishes there. If the note
disappears with it, raise **Ghost**.
When detection is unsure of the note, Anvil does not guess. In Replace mode it
fades back to your original sub within 15 ms, and in Enhance mode it adds
nothing. The NOTE readout shows **?** meanwhile.
### Ghost harmonics
Phone speakers play almost nothing below 300–500 Hz. A clean 50 Hz sub sends all
@@ -100,27 +115,29 @@ Other controls:
- **Glide** slides between overlapping notes; 0 jumps.
- **Gate** is the input level that counts as a note. Raise it if tails or reverb
start new notes.
- **Keep** blends some of the original low band back under the new sub.
- **Keep** blends some of the original low band back under the new sub. It has
no effect in Enhance mode, where the original always stays.
- **Snap to semitone** rounds detected pitch. Turn it off for pitch bends and slides.
If Knurl is on the bass before the bus, use **MIDI**: Knurl's patterns make
detection read notes from C2 upwards an octave low. See
[Signal chain](../chain.md).
### Pitch from MIDI
### Pitch source
Detection follows the audio by default. For heavy formant or FM basses where the
fundamental is unclear, select **MIDI** and route the bass's MIDI notes to Anvil.
In FL Studio, set the bass channel's MIDI output port and Anvil's input port to the
same number, or duplicate the notes into a pattern on a channel that feeds Anvil.
**Pitch from** in the header chooses where the note comes from: **AUDIO**
detects it, **MIDI** follows MIDI notes sent to Anvil, and **NOTE** plays a note
you set. Key lock and Follow bends tune the detection. See
[Pitch source](../pitch.md).
## Timing and limits
Detection uses 80 ms of lookahead, reported to the host for delay compensation,
so each note's pitch is known before its attack leaves the plugin. Pitch range is
25–250 Hz, one voice: chords and layered notes in the sub band are not separated.
Notes shorter than about 15 ms may not be recognised. A pitch move of more than
0.7 semitone that holds for two analysis hops (10 ms) starts a new note.
Notes shorter than about 40 ms may not be recognised. A new pitch must hold
steady for 40 ms to start a new note (80 ms an octave down, 200 ms an octave
up); with Follow bends on, 10 ms. A note ends after 20 ms of silence.
The crossover is a 4th-order Linkwitz–Riley pair, so with Keep at 100 % and no
note playing, the signal passes with flat magnitude. Stereo above the split is
Binary file not shown.

Before

Width:  |  Height:  |  Size: 304 KiB

After

Width:  |  Height:  |  Size: 248 KiB