New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pipewire, unable to set up filter chain via configuration.nix #193176
Comments
I have used this for quite a while without problems: { config, pkgs, ... }:
let
json = pkgs.formats.json {};
pw_rnnoise_config = {
"context.properties" = {
"log.level" = 0;
};
"context.spa-libs" = {
"audio.convert.*" = "audioconvert/libspa-audioconvert";
"support.*" = "support/libspa-support";
};
"context.modules" = [
{
name = "libpipewire-module-rtkit";
args = {
#"nice.level" = -11;
#"rt.prio" = 88;
#"rt.time.soft" = 2000000;
#"rt.time.hard" = 2000000;
};
flags = [ "ifexists" "nofail" ];
}
{ name = "libpipewire-module-protocol-native"; }
{ name = "libpipewire-module-client-node"; }
{ name = "libpipewire-module-adapter"; }
{
name = "libpipewire-module-filter-chain";
args = {
"node.name" = "effect_input.rnnoise";
"node.description" = "Noise Canceling source";
"media.name" = "Noise Canceling source";
"filter.graph" = {
nodes = [
{
type = "ladspa";
name = "rnnoise";
plugin = "librnnoise_ladspa";
label = "noise_suppressor_mono";
control = {
"VAD Threshold (%)" = 50.0;
};
}
];
};
"capture.props" = {
"node.passive" = true;
"node.target" = "alsa_input.usb-M-Audio_Fast_Track-00.pro-input-0";
"audio.position" = [ "AUX0" ];
};
"playback.props" = {
"audio.position" = [ "MONO" ];
"media.class" = "Audio/Source";
};
};
}
];
};
in
{
environment.etc."pipewire/source-rnnoise.conf" = {
source = json.generate "source-rnnoise.conf" pw_rnnoise_config;
};
systemd.user.services."pipewire-source-rnnoise" = {
environment = { LADSPA_PATH = "${pkgs.rnnoise-plugin}/lib/ladspa"; };
description = "Noise canceling source for pipewire";
wantedBy = ["pipewire.service"];
script = "${pkgs.pipewire}/bin/pipewire -c source-rnnoise.conf";
enable = true;
path = with pkgs; [pipewire rnnoise-plugin];
};
} |
You know if something like this would be enough? Since pipewire now can use split conf files I think it could work if there´s a way to generate the I´m trying to make something like this https://github.com/werman/noise-suppression-for-voice
|
nvmd, its working this way, you you enlightened me, thnx.
|
This issue has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/pipewire-unable-to-set-filter-chain-via-configuration-nix/21972/4 |
@wnxkiv85 That log fragment you posted says that it hasn't loaded Maybe that is what the regression is about. The separate config fragments presumably get processed only after the main config file so the dependencies are already loaded. |
Describe the bug
Unable to set filter chain via configuration.nix although it works if i put on ~/.config/pipewire/
Steps To Reproduce
Steps to reproduce the behavior:
pipewireconfnix.txt
Expected behavior
Add a extra sound imput(Noise Canceling source).
Additional context
could be related to upgrade from pipewire 0.3.54 to 0.3.55 breaks rnnoise filter
Notify maintainers
Metadata
The text was updated successfully, but these errors were encountered: