Files
bass-foundry/docs/anvil/README.md
T
nvrl b8d04d1936
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
chore: release Anvil 0.4.0, Lathe/Temper/Knurl 0.3.0, Planish/Braze/Ballast/Forge 0.2.0, Crucible/Weld 0.4.0
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.
2026-11-06 21:26:59 +01:00

145 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Anvil
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
note to note and the kick lands differently on each one. Anvil removes the
original band below **Split** and puts a clean mono sine in its place. The sine
follows the bass pitch, has the same peak level on every note, and starts at the
same phase on every note.
![Anvil](assets/editor.png)
## Install on Windows
Copy `Anvil.clap` into `C:\Program Files\Common Files\CLAP\`. In FL Studio 2024.1
or newer, open Options → Manage plugins, enable Verify plugins, and Find installed
plugins. Load Anvil in the mixer slot of the bass bus. Keep the font license with
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. 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).
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
its energy below that, so on a phone the note is gone. The ear rebuilds a note's
pitch from its harmonics, so harmonics alone carry the note.
**Ghost** adds the sub's harmonics 2–10 above **Ghost from**, falling 1/k like a
saw. At 100 %, harmonic k sits at 2/k of the sub's level. They fade in over half
an octave above Ghost from, and never reach below Split. The sub itself does not
change, so the weight on a club system stays where Sub level puts it.
Anvil measures each harmonic of the patch above the split and adds only what is
missing. A harmonic the patch already has meets an added one at an unrelated
phase and could cancel it, so Ghost leaves those alone. The inset in the scope
shows both, per harmonic: what the patch carries (grey) and what Ghost adds
(accent). A riddim patch usually needs little; 808s and clean sine subs need the
most. Each new note is measured from its first 60 ms; during that time every
harmonic counts as missing.
Drive works differently: it saturates the sine itself, adds only odd harmonics,
and changes the sub's own shape.
### Kick lock
With **Retrigger**, every note starts at Phase, but a kick that falls in the
middle of a long note meets the sub at whatever phase it has reached. Kick lock
listens to the kick through the sidechain. On each kick it dips the sub by
**Duck** (coming back over **Release**) and restarts the sub at Phase, so the
kick and the sub meet the same way on every hit.
Set it up in FL Studio:
1. Select the kick's mixer track. Right-click the route arrow under the bass
bus and choose **Sidechain to this track**. The kick still goes to the
master on its own; the sidechain only lets Anvil hear it.
2. In Anvil's plugin wrapper, open the settings (gear icon) and set the
sidechain input to the kick's track.
3. Turn on **Kick lock**. The kick count under the switch must rise with the
kicks.
**Offset** moves the restart against the kick, from 30 ms before it to 30 ms
after. Kicks are found on the undelayed sidechain, so with the lookahead the
sub can restart before the kick is heard.
Where the kick and sub sound like one hit is not always where they sum
loudest: offsets one period of the note apart sum the same, and the attack of
the kick decides where the hit is heard. So the offset is set by ear:
1. Turn on **Audition** and play a loop with kicks and a long bass note. Each
offset from −30 to +30 ms plays for 4 kicks; the line under the bars says
which one plays now.
2. Press **Keep** when kick and sub sound like one hit. Offset takes that
value and the audition stops.
The bars show, per offset, how the kick and the sub summed below 150 Hz in the
60 ms after each hit: +3 dB is a full sum of equal levels, 0 dB unrelated,
below 0 dB they cancel. Use them to check the choice, not to make it.
Other controls:
- **Dynamics** at 0 % holds the level for the whole note. Raise it to let the sub
follow the original's volume shape, for example a wobble.
- **Drive** saturates the sine: odd harmonics and a thicker sub.
- **Octave** moves the sub against the detected note. Use −1 for a bass played
one octave up.
- **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. 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 source
**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 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
kept; the new sub is mono.