Three fixes, found by pointing the tool at the laptop's built-in card when PLN moved upstairs and played UMC-less out of the aux jack into a Pioneer amp. 1. The rate and STALL checks never ran. They compared consecutive polls and required dt > 0.5 s, but the default poll interval is 0.25 s, so the condition was almost never true: the 900 s watch that diagnosed the UMC collected exactly TWO rate samples. The restart detector carried the entire investigation while the other half of the tool was decoration. Now measured against a reference sample held at least a second back, which also makes 'RUNNING but hw_ptr frozen' a check that can actually fire. Verified: 11 samples in 12 s, 47984/47996/48034 Hz. 2. It watched pcm0p unconditionally. Fine for a USB interface with one playback PCM; wrong for the SOF card, which has eight (headphones, speakers, mics, HDMI) and where which one is live depends on where the jack is. It would have reported perfect health about the speakers while the sound went out the headphone jack. Now prefers a RUNNING substream, re-resolved every poll, and says so when the live PCM moves. 3. nominal_rate read stream0, which is USB-audio-only, so it returned None on the built-in card — disabling the rate comparison on exactly the device PLN falls back to when the interface dies. Falls back to hw_params. Also stops crying wolf: a stream that just restarted has a hw_ptr counting from zero, so the first delta across the seam is meaningless. Measuring it anyway printed 'RATE OFF - 0 Hz (-100%)' on every reconnect during the replug test — a false alarm fired at the exact moment the operator most needs to trust the tool. The lesson is the one this repo keeps relearning: a check that never fires is indistinguishable from a check that passes, and you only find it by running the thing somewhere new.
| 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... | |
| audio-lens.py | Loading commit data... | |
| bank-check.py | Loading commit data... | |
| button_roles.py | Loading commit data... | |
| cheat-sheet.py | Loading commit data... | |
| check-audio-graph.sh | 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... | |
| fader-baseline.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-metadata.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-samples.service | Loading commit data... | |
| parvagues-sc-watchdog.service | Loading commit data... | |
| probe-chain.py | Loading commit data... | |
| pvbanks.py | Loading commit data... | |
| sample-watcher.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... | |
| take-master.py | Loading commit data... | |
| take-segments.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... |