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.
145 lines
7.0 KiB
Markdown
145 lines
7.0 KiB
Markdown
# 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.
|
||
|
||

|
||
|
||
## 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.
|