-
feat(pvlint): PV009 — gain MULTIPLIED by a control that seeds to zero, i.e. a… · 2cd4108a
feat(pvlint): PV009 — gain MULTIPLIED by a control that seeds to zero, i.e. a layer that never arrives PLN, mid-run, working it out himself: "d9 on wap didnt take effects on 17 and 19? ok no its the 17 superimpose that melts too !! does our xfade screw the superimposes?
💡 " The xfade is innocent. wap.tidal:91 is $ superimpose ( (# "acidOto3091") . (|- note 12) . (|* gain "^17") . (# cut 91) ) and ^17 seeds to 0 under BootTidal's policy ("A/B knobs -> 0, effect amount off"). Gain MULTIPLIED by 0 is silence, so the superimposed layer is not quiet — it does not exist. The 4-cycle dN crossfade then eases from the previously-audible state into that silence, which is what reads as a melt and is exactly why the xfade looked guilty. It was the messenger. The distinction the rule encodes: `#` ASSIGNS and survives a 0 seed (`# crushbus 51 (range 16 4.5 "^53")` at seed 0 is simply crush 0), while `|*` and `|/` ANNIHILATE. Only the multiplicative form can delete a pattern, which is why flagging `#` sites would bury the real finding under hundreds of false ones. SEVERITY IS `info`, DELIBERATELY. This idiom is usually correct — it is a bring-in fader for a layer, and PLN uses it that way. The rule does not exist to call it wrong; it exists so nobody hunts it BY EAR. Making it a warning would fire on a normal, intended idiom and get the whole gate ignored, the mistake already made once in check-drift's first draft. It shows under `pvlint --info`. WHY IT MATTERS MOST RIGHT NOW: a remap moves the CC, but it does not move the KNOB. Physical positions survive across a surface change, so a knob left at 0 silently acquires a new victim. That is the single root cause behind everything PLN heard this session — d9's layer gone on wap, and the same class of staleness behind the d4/d5/d8 symptoms (latched buttons whose orbit changed under them). It is the identical failure to the very first question he asked today: Ardour's fader raised by mouse while the physical fader sat at 0. There are no motors, so the surface never follows the map. SCOPE, measured (both forms — `|* p (range 0 hi "^NN")` and the bare `|* p "^NN"`, which my first scan missed and which is the worse of the two): 33 sites across 25 files corpus-wide 2 in the OPAL setlist: wap.tidal:91 (bare), desire.tidal:75 (range 0 1.5) Notable elsewhere: scratchomatic multiplies gain by "^84" — an ARDOUR-learned fader — and computer_riddim/computer_riddub/anniv multiply by "^50", the gF2 DJ filter knob. 6 new tests. The negatives carry the weight, as always: `range 1 1.5` (the prescribed neutral-low-end fix) must NOT flag, `#` assignment must not flag, and C1-C3 must not flag because they seed to 0.5 (centre), not 0. 496 pass.PLN (Algolia) authored2cd4108a
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| __init__.py | Loading commit data... | |
| test_rules.py | Loading commit data... |