Check and Windows preview / check (anvil) (push) Canceled after 0s
Check and Windows preview / check (braze) (push) Canceled after 0s
Check and Windows preview / check (crucible) (push) Canceled after 0s
Check and Windows preview / check (knurl) (push) Canceled after 0s
Check and Windows preview / check (lathe) (push) Canceled after 0s
Check and Windows preview / check (patina) (push) Canceled after 0s
Check and Windows preview / check (planish) (push) Canceled after 0s
Check and Windows preview / check (rivet) (push) Canceled after 0s
Check and Windows preview / check (temper) (push) Canceled after 0s
Check and Windows preview / check (weld) (push) Canceled after 0s
Check and Windows preview / previews (push) Canceled after 0s
Check and Windows preview / windows (push) Canceled after 0s
Independent plugin release / publish (push) Successful in 8s
Independent plugin release / plan (push) Successful in 8s
Independent plugin release / build (push) Successful in 3m12s
- Anvil 0.3.0: Ghost harmonics, Phone listen, Kick lock and the offset audition. Anvil now has a Kick sidechain input. - Weld 0.3.0: delay spread display. - Braze 0.1.0: first release. - Mark the released items in docs/ideas.md and add Braze to the release table.
128 lines
6.1 KiB
Markdown
128 lines
6.1 KiB
Markdown
# Anvil
|
||
|
||
Anvil gives every bass note the same solid sub. Current version **0.3.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
|
||
|
||
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
|
||
low band (grey) against the new sub (accent).
|
||
6. 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**.
|
||
|
||
### 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.
|
||
- **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
|
||
|
||
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.
|
||
|
||
## 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.
|
||
|
||
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.
|