Skip to content

WaveController 0.0.2.4 prealpha

Choose a tag to compare

@oparada1988 oparada1988 released this 31 Aug 16:47
· 46 commits to main since this release
  1. System Default Output & Input Management:
    • Interactive Default Toggle: Added "Make OS System Default Output / Input" switch in the Mix Edit popover with active
    green badge indicators.
    • Mutual Exclusivity: Enforced single-default constraints across mixes of the same type (toggling a new default
    automatically demotes the previous default).
    • WirePlumber Compatibility: Upgraded virtual input mix node class to Audio/Source to support OS-level default input
    designation via wpctl set-default.
    • Clean Teardown Fallback: When an active default mix is deleted, WaveController automatically falls back and designates
    Personal Mix (or Chat Mix) as the active OS system default.
  2. Device Settings & Dynamic UI Anchoring:
    • Permanent Top Anchor: Pinned the Primary Default Device / Set as Default Device card at Position 1 on the Device Settings
    page.
    • In-Place UI Updates: Replaced destructive DOM re-attachment with non-destructive visibility toggling and inner row
    updating to prevent the section from dropping to the bottom on runtime refreshes.
  3. Port Sanitization & Group Channel Presentation:
    • Numbered Port ID Filtering: Stripped raw PipeWire port numbers (121, 90) and numbered prefixes (121 Shortwave:output_FL →
    Shortwave:output_FL) from Grouped Application lists.
    • Deduplication & App Mapping: Unified multi-channel Left/Right stream links into single, clean application cards.
  4. VU Metering Isolation & Zero-Bleed Invariants:
    • Zero-Fallback Autoconnect Gating: Added -P node.autoconnect=false and -P stream.dont-remix=true to all pw-record meter
    processes, preventing WirePlumber from re-linking orphaned meter taps to Discord when YouTube/Chrome stops playing.
    • Strict Canonical Token Matching: Filtered container wrappers (chromium, webrtc voiceengine) and replaced fuzzy substring
    matching with strict exact-token lookups so quiet channels strictly report 0.0.
  5. Performance & DOM Caching:
    • Matrix Cell State Caching: Prevented unnecessary GTK widget and slider recreation during matrix redraws and channel
    reordering.
    • Group Drawer Sub-Strip Caching: Cached member application lists to eliminate UI churn when expanding or collapsing group
    drawers.