The Linux/PipeWire virtual mic (pactl, WirePlumber fix, signal restore)
is now behind target_os cfg; on Windows/macOS it compiles to stubs and
virtual mic defaults to off. Use VB-CABLE/BlackHole as the output device.
Cross-checked with cargo check --target x86_64-pc-windows-gnu (0 errors).
The vocoder/ring-mod/bandpass presets were 10-20 dB quieter than 8-bit.
Each preset now carries an output makeup gain normalized from tone
measurements; all presets peak around -1..-6 dB (was -9..-20).
WirePlumber's node.stream.restore-target remembers where each stream last
played and restores it, ignoring the default sink, so vois.rs output kept
going to the headphones. setup() now installs a wireplumber.conf.d override
(restore-target/props = false) and restarts WirePlumber on first use.
Also: virtual mic setup runs before any device queries, and keep_others_off
pulls our own stream back onto vois.rs if it drifts.
- 'vois' installs to PATH (make install) and works with no flags:
auto device selection (pipewire/pulse/default) and 48 kHz default
- ~/.config/vois/config.toml for defaults + custom preset chains (serde)
- Auto-Tune pitch correction (snap to nearest semitone, smoothed)
- 5 new presets: Chipmunk, Helium, Vader, Telephone, Growl (17 total)
- --pitch-correct flag, --no-virtual-mic to disable the default virtual mic
- no dead-code allowances; clippy/fmt/tests clean