PLN, at rehearsal, on take_5_drops' d7 coming out muffled:
"i saw also its crushbus was 41, a d7 with sub 4 is sus -- and two effects on
same bus is a redflag as it means fighting for bus! so we gotta flag warning
any 'bus nXY on dX' as sus (e.g. bus 41 (d4's) on d7 here), and any shared
bus (^41 on d4 and d7) as PV error"
Two rules, exactly as specified.
PV014 (warning) — a bus slot numbered for a different orbit. The convention is
<orbit><slot>: d4 owns 41/42, d10 owns 101/102, and a bare `bus 4` on d4 is the
same idea with one slot. MEASURED before encoding it rather than assumed: 894
of 984 bus references under live/ conform, 90.9%. A real convention, not a
tidiness preference. Mis-numbering is *how you accidentally share* a bus, so
this rule sits upstream of PV011 and catches the cause, not the symptom.
PV011 promoted warning -> error. It shipped as a warning on the theory that
sharing a bus is legitimate glue. Rehearsal disproved that theory.
The asymmetry with PV008 is deliberate and now documented in both rules and
pinned by a test, so no future refactor quietly aligns them: yesterday PLN
DEMOTED a shared button to a warning ("its ok when two percs are linked"),
today he PROMOTED a shared bus to an error. A shared button is one hand doing
two things on purpose and you hear it instantly. A shared bus is two orbits
fighting over one effect instance with the winner decided by event density —
you don't hear a mistake, you hear a slightly wrong sound and blame the synth.
Surprises you can hear are warnings; surprises you cannot are errors.
THE PAYOFF, first run, in a track still in the set. mafia_sans_serif's d7 was
already carrying PLN's own note "FIXME ACID WEIRD NOT GOOD". It had THREE
collisions with d4's moog bass, none visible in the code:
# cut 4 every acid note truncated the bass, and vice versa
# crushbus 41 one crush instance, ^35 and ^32 fighting over it
# octerbus 42 one octer instance, ^55 and ^52 fighting over it
d7 now owns cut 7 and slots 71/72. That is a diagnosis for a FIXME he wrote
without knowing the cause, produced by a rule written twenty minutes earlier.
Set is 0 errors / 9 warnings, silent-eval --seeded 14/14 ok, pvlint 68/68.
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| at | Loading commit data... | |
| bridge | Loading commit data... | |
| foundry | Loading commit data... | |
| pulsar-parvagues-hud | Loading commit data... | |
| pvlint | Loading commit data... | |
| tests | Loading commit data... | |
| README.md | Loading commit data... | |
| analyze_samples.py | Loading commit data... | |
| button_roles.py | Loading commit data... | |
| cheat-sheet.py | Loading commit data... | |
| check-boot-blocks.py | Loading commit data... | |
| check-boot.sh | Loading commit data... | |
| check-drift.sh | Loading commit data... | |
| check-mix.py | Loading commit data... | |
| check-preload.sh | Loading commit data... | |
| check-tracks.sh | Loading commit data... | |
| control-lens.py | Loading commit data... | |
| deshadow-helpers.py | Loading commit data... | |
| fan_check.sh | Loading commit data... | |
| fix-button-roles.py | Loading commit data... | |
| fix-mute-roles.py | Loading commit data... | |
| gen_tokens.py | Loading commit data... | |
| gen_ts_types.py | Loading commit data... | |
| gig-log.py | Loading commit data... | |
| gig-up.sh | Loading commit data... | |
| gig_record.sh | Loading commit data... | |
| lcxl-init.py | Loading commit data... | |
| lcxl-leds-watch.service | Loading commit data... | |
| lcxl-leds.py | Loading commit data... | |
| lcxl_grid.json | Loading commit data... | |
| lcxl_grid.py | Loading commit data... | |
| migrate-columns.py | Loading commit data... | |
| mock-lcxl.py | Loading commit data... | |
| mute.tidal | Loading commit data... | |
| orphan-orbits.py | Loading commit data... | |
| parvagues-sc-watchdog.service | Loading commit data... | |
| probe-chain.py | Loading commit data... | |
| sample_tfidf.py | Loading commit data... | |
| sc-watchdog.sh | Loading commit data... | |
| set-coherence.py | Loading commit data... | |
| setlist.py | Loading commit data... | |
| setlist_samples.py | Loading commit data... | |
| shipowiz.py | Loading commit data... | |
| silent-eval.py | Loading commit data... | |
| solo.tidal | Loading commit data... | |
| surface-columns.py | Loading commit data... | |
| take-lens.py | Loading commit data... | |
| tempo-lens.py | Loading commit data... | |
| tidal-remote.py | Loading commit data... | |
| tools.png | Loading commit data... | |
| unmute.tidal | Loading commit data... | |
| unsolo.tidal | Loading commit data... |