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