Check and Windows preview / check (anvil) (push) Successful in 2m1s
Check and Windows preview / check (crucible) (push) Successful in 1m31s
Check and Windows preview / check (knurl) (push) Successful in 2m4s
Check and Windows preview / check (lathe) (push) Successful in 1m27s
Check and Windows preview / check (patina) (push) Successful in 1m54s
Check and Windows preview / check (rivet) (push) Successful in 1m30s
Check and Windows preview / check (temper) (push) Successful in 1m31s
Check and Windows preview / check (weld) (push) Successful in 2m31s
Check and Windows preview / previews (push) Successful in 1m26s
Independent plugin release / plan (push) Successful in 7s
Check and Windows preview / windows (push) Successful in 2m26s
Independent plugin release / build (push) Successful in 3m0s
Independent plugin release / publish (push) Successful in 8s
Knurl follows the played note and treats every cycle of the wave on its own: a repeating level pattern over 1-16 cycles makes subharmonics in tune with every note, random level and timing per cycle add rattle, and a noise burst per cycle, highpassed at a multiple of f0, adds grit. Amounts are counted in cycles, so the texture is the same on F1 and on C2. - Cycle clock from the shared note tracker, restarted at each note; the audio is delayed by the lookahead plus 4.2 ms of timing-jitter headroom. - Per-cycle randomness from a hash of the cycle number: Same every note or Free. - Patterns Off, Double, Triple, Fry (default), Gallop, Stutter or drawn; grit switchable per step. Pattern persisted as knurl-pattern. - Editor: last eight cycles overlaid, pattern bars with the playing step. - Tests match the prototype: Double gives f0/2 at -8.19 dB, Triple f0/3 at -10.68 dB, equal on F1 and C2, no added clicks, bit-exact when off, no allocation on the audio thread.
203 lines
9.8 KiB
Markdown
203 lines
9.8 KiB
Markdown
# Plugin ideas
|
||
|
||
A running list of plugin ideas for riddim, dubstep and bass-music sound design.
|
||
Each entry names the problem first. Entries are grouped as released or idea. Names follow the metalwork theme of the Bass Foundry suite.
|
||
|
||
## Problems seen in bass-music production
|
||
|
||
1. Every bass patch brings its own sub level and phase, so the weight of a drop
|
||
jumps between switch-ups, and layered patches cancel in the sub.
|
||
2. Patches at the same peak level still differ in perceived loudness and
|
||
brightness. The usual fix is hand-set gain or clipping per patch.
|
||
3. Resampling is repetitive: bounce, chop, trim, declick, normalise, find the
|
||
root key, name, save, load into a sampler.
|
||
4. Writing wobbles: LFO shapes are drawn, synced, copied and edited for every
|
||
variation. Triplet and dotted patterns plus per-note changes take long.
|
||
5. Unison, OTT and stereo distortion widen the mids. Parts disappear in mono or
|
||
on club systems.
|
||
6. Kick and bass clash. Sidechain helps, but the sub phase at each note start
|
||
changes how the kick hits.
|
||
7. Distortion chains build up harsh resonances. (Patina covers this.)
|
||
8. Comparing a drop with a reference: the difference is usually sub/mid balance
|
||
over time, which generic meters do not show clearly.
|
||
9. Fixed-frequency tools act differently on every note. An EQ boost at 300 Hz
|
||
lifts the 4th harmonic of one note and the 7th of another; a distortion with
|
||
a fixed tone filter sounds brighter on low notes than on high notes.
|
||
10. Layered bass patches partly cancel in the mids, not only in the sub.
|
||
11. Texture makes a riddim patch: grit, rattle, metal, vowel, noise. It takes long
|
||
chains (distortion, comb, formant, OTT, resample, repeat), and the result
|
||
changes from note to note.
|
||
12. Grit and tone cannot be shaped separately. More distortion for more grit
|
||
also changes the body, the level and the low end.
|
||
13. Resampled textures sound printed: a loop of one moment, with no movement
|
||
inside the note.
|
||
14. Texture changes inside a note (the switch-up within one held note) need
|
||
automation lanes or chopping.
|
||
15. There is no meter for texture. Two switch-ups can sound "the same" without
|
||
a clear reason, and generic analysers show only level and spectrum.
|
||
|
||
## Released
|
||
|
||
### Anvil — sub anchor (problems 1, 6)
|
||
|
||
Replaces the band below a split frequency with a clean mono sine that follows
|
||
the bass pitch, at one level and one start phase for every note. Pitch comes
|
||
from detection with 80 ms lookahead or from MIDI. See [Anvil](anvil/README.md).
|
||
|
||
### Crucible — resampler (problem 3)
|
||
|
||
Records the input continuously. One click captures the last bars on the host
|
||
bar grid, slices on a grid or on hits, trims, declicks, normalises, detects the
|
||
root key and exports labelled WAVs, a full loop and an optional Serum/Vital
|
||
wavetable. See [Crucible](crucible/README.md).
|
||
|
||
### Lathe — harmonic EQ (problem 9)
|
||
|
||
EQ bands placed on harmonics 1–32 of the detected note instead of fixed
|
||
frequencies. "+4 dB on harmonic 3, −6 dB on harmonic 7" sounds the same on F1
|
||
and on C2. Odd/even balance, tilt over harmonic number, and a Focus control
|
||
that lifts or cuts everything between the harmonics. Uses Anvil's pitch
|
||
tracker, or MIDI. See [Lathe](lathe/README.md).
|
||
|
||
### Temper — note-tracked distortion (problem 9)
|
||
|
||
A waveshaper whose tone filters before and after the shaper follow the note, so
|
||
every note distorts with the same character and the same harmonic content.
|
||
Input level is normalised before the shaper, so drive does not depend on how
|
||
loud the patch is, and the output is gain-matched. Oversampled to keep aliasing
|
||
(which is never harmonic) out. See [Temper](temper/README.md).
|
||
|
||
### Weld — layer phase alignment (problem 10)
|
||
|
||
Takes a second bass layer through the sidechain. It fits polarity and a chain
|
||
of up to four allpass sections to the measured cross-spectrum (no added
|
||
delay), so the layers sum instead of cancel. A display shows how much level the
|
||
cancellation cost and how much Weld recovered. Anvil solves the sub band; Weld
|
||
solves the mids. See [Weld](weld/README.md).
|
||
|
||
### Knurl — cycle texture (problems 11, 13)
|
||
|
||
Follows the played note and treats every cycle on its own: a repeating level
|
||
pattern (in-tune subharmonics), random level and timing per cycle, and a noise
|
||
burst per cycle tuned to the note. Amounts are counted in cycles, so the texture
|
||
is the same on every note. Slow per-harmonic drift is postponed. See
|
||
[Knurl](knurl/README.md).
|
||
|
||
## Ideas
|
||
|
||
### Ballast — switch-up loudness leveller (problem 2)
|
||
|
||
Measures short-term perceived loudness per note or per switch-up against a
|
||
target or a reference patch and adjusts gain only, so each switch-up lands at
|
||
the same loudness without compression changing its character. Earlier working
|
||
name: Hit Leveler. Pairs with Anvil: Anvil levels the sub, Ballast the whole
|
||
patch.
|
||
|
||
### Bellows — pitch-tracked resonator
|
||
|
||
A comb or Karplus-style resonator tuned to the detected note. It turns noise,
|
||
distortion or drums into pitched metallic tone that is in key on every note.
|
||
Damping, harmonic spread, single or multiple combs.
|
||
|
||
### Gauge — low-end mono check (problem 5)
|
||
|
||
Shows phase correlation and mono-sum loss per band and per note in the bass
|
||
range, and marks the notes where widening breaks the mono sum. Optional fixes:
|
||
mono below a chosen frequency and phase rotation on the mids. Display-first, so
|
||
it is a small build. Earlier working name: Bass Mono Check.
|
||
|
||
### Wobble sequencer (problem 4)
|
||
|
||
Step patterns for volume, filter, formant and pitch with triplet and dotted
|
||
grids built in. Each MIDI note selects a different pattern, so a switch-up is a
|
||
different note in the piano roll. ShaperBox overlaps, but it has no note-keyed
|
||
patterns. No name yet.
|
||
|
||
### Drop compare (problem 8)
|
||
|
||
Loudness-matched A/B of a drop against a reference, with sub, low-mid, mid and
|
||
high energy over time: for example "your sub is 3 dB under the reference in
|
||
bars 2–4". No name yet.
|
||
|
||
## Texture ideas
|
||
|
||
These ideas target problems 11–15; Knurl, the first of them, is released above.
|
||
Most of them reuse the note tracker in
|
||
`common-dsp`, so a texture setting means the same thing on every note, the same
|
||
way Lathe and Temper work.
|
||
|
||
### Anneal — tone and grit split (problem 12)
|
||
|
||
Annealing changes how a metal behaves without changing its shape. Anneal
|
||
splits the signal into three parts: the harmonic part (energy on the harmonics
|
||
of the tracked note), the residual noise and grit between the harmonics, and
|
||
the transients. Each part has a level fader, a drive and a tilt.
|
||
|
||
- Turn the grit up 6 dB and keep the body and the sub unchanged.
|
||
- Take all the grit out of a layer and leave a clean tone for further design.
|
||
- Listen to each part solo, or send the grit to a second output for its own
|
||
chain.
|
||
|
||
DSP: an STFT with the note tracker; harmonic masks at k·f0, with a width that
|
||
follows the pitch; a transient mask from spectral flux. Latency is one FFT
|
||
frame. The display shows the three parts in different colours on Lathe's
|
||
harmonic strip.
|
||
|
||
### Swarf — in-key granular shavings (problems 11, 13)
|
||
|
||
Swarf is the shavings that machining leaves. Swarf records the bass itself and
|
||
sprays short grains of it back as a layer. Grain lengths are whole pitch
|
||
periods, and every grain is retuned to the note playing now, so the shredded
|
||
layer stays in key across a riddim line. Controls are density, spray (position
|
||
spread back in time), grain size in cycles, reverse probability, and a
|
||
harmonic-only filter for the layer. It is useful for the "shredded metal" top
|
||
layer, and works on a resample from Crucible as well.
|
||
|
||
### Etch — texture imprint (problem 11)
|
||
|
||
Etching transfers a pattern onto metal with acid. Etch takes a texture source
|
||
through the sidechain or from a loaded sample (a metal scrape, a vocal, a field
|
||
recording) and imprints its fine structure on the bass. The bass keeps its
|
||
pitch and its harmonic levels; between and on the harmonics, the source's
|
||
noise, roughness and movement come through. A "harmonic lock" mode samples the
|
||
source's spectral envelope only at the bass harmonics, so the imprint is always
|
||
in key. It differs from a vocoder: a vocoder transfers the envelope, and Etch
|
||
transfers the surface.
|
||
|
||
### Chase — talking formants that hit harmonics (problems 11, 14)
|
||
|
||
Chasing shapes metal by hammering it from the front. Chase is a formant filter
|
||
with a 2D vowel pad (a, e, i, o, u, plus "yoi" and "wub" shapes). You draw a
|
||
path over the pad and sync it to the tempo, or let each MIDI note select a path.
|
||
The formants stay in Hz, so a vowel stays a vowel on every note. A **snap**
|
||
control moves each resonant peak onto the nearest harmonic of the tracked
|
||
note, so a narrow formant never falls into the gap between two harmonics and
|
||
vanishes on some notes. Gain-matched, so a vowel change does not change the
|
||
level.
|
||
|
||
### Damascus — texture step sequencer (problem 14)
|
||
|
||
Damascus steel is folded from layers into a visible pattern. Damascus holds up
|
||
to four texture slots (for example a formant, a comb, a sample-rate reducer and
|
||
a Knurl-type rattle) and a tempo-synced step grid that chooses a slot, or a mix
|
||
of two, per step. Steps have their own crossfade time, so changes can be hard
|
||
cuts or smears. Each slot is gain-matched, so the steps change texture and not
|
||
level. Each MIDI note can select its own pattern, which is a texture switch-up
|
||
inside one held note. This overlaps with the wobble sequencer above; both could
|
||
become one plugin.
|
||
|
||
### Loupe — texture meter (problem 15)
|
||
|
||
A loupe is the lens used to inspect engraving. Loupe measures texture per note
|
||
over time:
|
||
|
||
- roughness and fluctuation strength (psychoacoustic models);
|
||
- harmonic-to-noise ratio, which shows how gritty a sound is;
|
||
- inharmonicity, which shows how metallic a sound is;
|
||
- brightness relative to the note (harmonic centroid, not centroid in Hz).
|
||
|
||
It places every switch-up of a drop as a point on a texture map. Two patches
|
||
that sit on the same point are why a drop sounds repetitive. A reference track
|
||
can be loaded for comparison. Display only, so it is a small build, and it fits
|
||
with Gauge and Drop compare.
|