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.
9.8 KiB
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
- 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.
- Patches at the same peak level still differ in perceived loudness and brightness. The usual fix is hand-set gain or clipping per patch.
- Resampling is repetitive: bounce, chop, trim, declick, normalise, find the root key, name, save, load into a sampler.
- Writing wobbles: LFO shapes are drawn, synced, copied and edited for every variation. Triplet and dotted patterns plus per-note changes take long.
- Unison, OTT and stereo distortion widen the mids. Parts disappear in mono or on club systems.
- Kick and bass clash. Sidechain helps, but the sub phase at each note start changes how the kick hits.
- Distortion chains build up harsh resonances. (Patina covers this.)
- Comparing a drop with a reference: the difference is usually sub/mid balance over time, which generic meters do not show clearly.
- 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.
- Layered bass patches partly cancel in the mids, not only in the sub.
- 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.
- Grit and tone cannot be shaped separately. More distortion for more grit also changes the body, the level and the low end.
- Resampled textures sound printed: a loop of one moment, with no movement inside the note.
- Texture changes inside a note (the switch-up within one held note) need automation lanes or chopping.
- 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.
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.
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.
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.
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.
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.
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.