36 lines
1.2 KiB
Markdown
36 lines
1.2 KiB
Markdown
# headroom
|
||
|
||
AGC + compressor + true-peak limiter daemon for PipeWire, in Rust.
|
||
|
||
Headroom puts a per-application audio safety net between noisy sources
|
||
(browsers, voice chat, random video) and your speakers, while leaving
|
||
the things you *don't* want compressed (music players, games, DAWs)
|
||
untouched.
|
||
|
||
- **Hard −0.1 dBTP ceiling** with proper inter-sample-peak handling.
|
||
- **Per-app exclusion** with profile-driven rules.
|
||
- **Single binary** daemon + CLI, controlled over a Unix-domain socket
|
||
with a documented JSON wire protocol (see [`IPC.md`](IPC.md)).
|
||
- **First-party Rust crate** (`headroom-client`) for programmatic use;
|
||
third-party clients (Qt panels, status bars, …) target the wire
|
||
protocol directly.
|
||
|
||
See [`PLAN.md`](PLAN.md) for the full design and roadmap.
|
||
|
||
## Status
|
||
|
||
Pre-alpha. Wire protocol and crate scaffolding are in; daemon and
|
||
filter are under construction.
|
||
|
||
## Building
|
||
|
||
```sh
|
||
nix develop # toolchain + pipewire dev libs + helpers
|
||
cargo build # iterate
|
||
nix build # final packaged headroom binary
|
||
```
|
||
|
||
## License
|
||
|
||
GPL-3.0-or-later for the daemon and CLI. `headroom-dsp` and `headroom-ipc`
|
||
are MPL-2.0 so they can be reused by non-GPL plugin hosts and clients.
|