Reworks the per-peer shaping tab (held for next release):
* Renamed the tab to "Volume, pan and EQ for peers"; the Preferences toggle now defaults ON.
* Collapsed the two master switches (Enable EQ / Enable pan) into ONE: "Enable volume, pan and
EQ for all peers" (Alt+E). Volume now obeys it too. PeerDspChain.Build takes a single enabled
flag; Profile.EnableAllPeerShaping replaces the two bools (old ones kept for load-migration).
* Peer picker is now a CheckedListBox: ticking a peer shapes them (per-peer bypass via new
PeerShaping.Enabled, default true); the focused row is the one the controls edit. Effective
shaping = master switch AND that peer's tick. Letter-nav suppressed so keys never toggle a tick.
* Three EQ modes, renamed: "3 band simple EQ", "12 band advanced graphic EQ", and the new
"16 band parametric EQ" (PeerEqMode.Parametric16Band).
* Parametric EQ: up to 16 user bands, each a boost/cut across a start->end range (PeerShaping
.ParametricBands; ParametricToPeaking maps range -> peaking centre+Q, shared by DSP and curve).
Add band dialog (spin-or-type, numeric-only, live preview, OK/Escape); Bands list sorted
bass->treble reading "X Hz to Y Hz, plus/minus N dB"; Delete key / Delete button, multi-select.
Set peer EQ to default clears the parametric list too.
* dB now spoken as words ("plus 3 dB" / "minus 6 dB" / "flat") on the graphic sliders and the
parametric list, since NVDA users typically have punctuation off and never hear a "+".
* New unbound machine-wide global shortcut "Toggle volume, pan and EQ for all peers" (not stored
in any profile) via the hotkey controller + settings store.
* Renamed the Inputs/outputs "Set volume for all received audio" to "Master receive volume".
* Added EqCurveControl: a purely-visual EQ response graph (not focusable, invisible to NVDA).
* Full manual sweep (readme.html + regenerated MANUAL.md).
Build clean; --selftest passes. Deployed to both test folders. Held for next release.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
47 lines
1.2 KiB
Plaintext
47 lines
1.2 KiB
Plaintext
# Build output
|
|
bin/
|
|
obj/
|
|
dist/
|
|
|
|
# Local publish folder — used for hand-testing and for the self-updater's "_update" staging
|
|
# area. Release artefacts ship via the dist/ zip attached to the GitHub release; the publish
|
|
# folder is regenerated by build-release.ps1 from the source on every release.
|
|
publish/
|
|
|
|
# AI interaction preferences (project-local file used while authoring the source, not
|
|
# relevant to anyone cloning the repo).
|
|
CLAUDE.md
|
|
|
|
# Dev notes — running development chronology and per-investigation plans. Useful locally
|
|
# for the author; not intended for the public repo. The agent handover holds local paths,
|
|
# the Pi address, and the SSH key path, so it must stay out of the public repo.
|
|
HANDOVER.md
|
|
REMSOUND_HANDOVER.md
|
|
PLAN-*.md
|
|
|
|
# IDE / editor
|
|
.vs/
|
|
.vscode/
|
|
.idea/
|
|
*.user
|
|
*.suo
|
|
|
|
# OS
|
|
Thumbs.db
|
|
.DS_Store
|
|
|
|
# Audio-editor sidecar files. Sony / Magix Sound Forge writes a `.sfk` peak-cache file
|
|
# next to every `.wav` it touches; these are pure metadata, regenerated on demand by the
|
|
# editor, and shouldn't be in source control alongside the cue-sound wavs themselves.
|
|
*.sfk
|
|
|
|
# Misc
|
|
*.log
|
|
*.tmp
|
|
*.tmp.*
|
|
*.swp
|
|
|
|
# Tokens / secrets — these should never be checked in
|
|
.gh-token.txt
|
|
gh-token.txt
|