Client and ClientRT config
This commit is contained in:
parent
5750368da7
commit
4a43906218
1 changed files with 117 additions and 75 deletions
|
@ -1,10 +1,9 @@
|
||||||
{...}: {
|
{...}: {
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
audio = {
|
wireplumber = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
wireplumber = {enable = true;};
|
|
||||||
jack = {
|
jack = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
@ -15,7 +14,119 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
support32Bit = true;
|
support32Bit = true;
|
||||||
};
|
};
|
||||||
extraConfig.pipewire-pulse = {
|
extraConfig.client.quality = {
|
||||||
|
"context" = {
|
||||||
|
"properties" = {
|
||||||
|
"mem.allow-mlock" = true;
|
||||||
|
"mem.mlock-all" = true;
|
||||||
|
"log.level" = 0;
|
||||||
|
};
|
||||||
|
"spa-libs" = {
|
||||||
|
"audio.convert.*" = "audioconvert/libspa-audioconvert";
|
||||||
|
"support.*" = "support/libspa-support";
|
||||||
|
};
|
||||||
|
"modules" = [
|
||||||
|
{"name" = "libpipewire-module-protocol-native";}
|
||||||
|
{"name" = "libpipewire-module-client-node";}
|
||||||
|
{"name" = "libpipewire-module-client-device";}
|
||||||
|
{"name" = "libpipewire-module-adapter";}
|
||||||
|
{"name" = "libpipewire-module-metadata";}
|
||||||
|
{"name" = "libpipewire-module-session-manager";}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"filter" = {
|
||||||
|
"properties" = {
|
||||||
|
"node.latency" = "1024/48000";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"stream" = {
|
||||||
|
"properties" = {
|
||||||
|
"node.latency" = "1024/48000";
|
||||||
|
"node.autoconnect" = true;
|
||||||
|
"resample.quality" = 14;
|
||||||
|
"channelmix.normalize" = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraConfig.client-rt.quality = {
|
||||||
|
"context" = {
|
||||||
|
"properties" = {
|
||||||
|
"mem.allow-mlock" = true;
|
||||||
|
"mem.mlock-all" = true;
|
||||||
|
"log.level" = 0;
|
||||||
|
};
|
||||||
|
"spa-libs" = {
|
||||||
|
"audio.convert.*" = "audioconvert/libspa-audioconvert";
|
||||||
|
"support.*" = "support/libspa-support";
|
||||||
|
};
|
||||||
|
"modules" = [
|
||||||
|
{
|
||||||
|
"name" = "libpipewire-module-rt";
|
||||||
|
"args" = {
|
||||||
|
"rt.prio" = 80;
|
||||||
|
"rt.time.soft" = -1;
|
||||||
|
"rt.time.hard" = -1;
|
||||||
|
};
|
||||||
|
"flags" = ["ifexists" "nofail"];
|
||||||
|
}
|
||||||
|
{"name" = "libpipewire-module-protocol-native";}
|
||||||
|
{"name" = "libpipewire-module-client-node";}
|
||||||
|
{"name" = "libpipewire-module-client-device";}
|
||||||
|
{"name" = "libpipewire-module-adapter";}
|
||||||
|
{"name" = "libpipewire-module-metadata";}
|
||||||
|
{"name" = "libpipewire-module-session-manager";}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"filter" = {
|
||||||
|
"properties" = {
|
||||||
|
"node.latency" = "1024/48000";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"stream" = {
|
||||||
|
"properties" = {
|
||||||
|
"node.latency" = "1024/48000";
|
||||||
|
"node.autoconnect" = true;
|
||||||
|
"resample.quality" = 14;
|
||||||
|
"channelmix.normalize" = true;
|
||||||
|
};
|
||||||
|
"rules" = [
|
||||||
|
{
|
||||||
|
"matches" = [
|
||||||
|
{
|
||||||
|
"application.name" = "pw-cat";
|
||||||
|
"node.name" = "~Google Chrome$";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
"actions" = {
|
||||||
|
"update-props" = {
|
||||||
|
"node.latency" = "512/48000";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"alsa" = {
|
||||||
|
"properties" = {
|
||||||
|
"alsa.volume-method" = "cubic";
|
||||||
|
};
|
||||||
|
"rules" = [
|
||||||
|
{
|
||||||
|
"matches" = [
|
||||||
|
{
|
||||||
|
"application.process.binary" = "resolve";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
"actions" = {
|
||||||
|
"update-props" = {
|
||||||
|
"alsa.buffer-bytes" = 131072;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig.pipewire-pulse.quality = {
|
||||||
"context" = {
|
"context" = {
|
||||||
"properties" = {
|
"properties" = {
|
||||||
"mem.allow-mlock" = true;
|
"mem.allow-mlock" = true;
|
||||||
|
@ -101,84 +212,15 @@
|
||||||
"pulse.allow-module-loading" = true;
|
"pulse.allow-module-loading" = true;
|
||||||
"pulse.default.format" = "F32";
|
"pulse.default.format" = "F32";
|
||||||
};
|
};
|
||||||
"properties.rules" = [
|
|
||||||
{
|
|
||||||
"matches" = [
|
|
||||||
{
|
|
||||||
"cpu.vm.name" = "!null";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
"actions" = {
|
|
||||||
"update-props" = {
|
|
||||||
"pulse.min.quantum" = "1024/192000";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
"pulse.rules" = [
|
|
||||||
{
|
|
||||||
"matches" = [
|
|
||||||
{
|
|
||||||
"client.name" = "Firefox";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
"actions" = {
|
|
||||||
"update-props" = {
|
|
||||||
"node.latency" = "512/192000";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"matches" = [
|
|
||||||
{
|
|
||||||
"application.process.binary" = "teams";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"application.process.binary" = "teams-insiders";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"application.process.binary" = "skypeforlinux";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
"actions" = {
|
|
||||||
"quirks" = ["force-s16-info"];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"matches" = [
|
|
||||||
{
|
|
||||||
"application.process.binary" = "firefox";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
"actions" = {
|
|
||||||
"quirks" = ["remove-capture-dont-move"];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"matches" = [
|
|
||||||
{
|
|
||||||
"application.name" = "~speech-dispatcher.*";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
"actions" = {
|
|
||||||
"update-props" = {
|
|
||||||
"pulse.min.req" = "512/192000";
|
|
||||||
"pulse.min.quantum" = "512/192000";
|
|
||||||
"pulse.idle.timeout" = 5;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
"stream.properties" = {
|
"stream.properties" = {
|
||||||
"node.latency" = "1024/192000";
|
|
||||||
"node.autoconnect" = true;
|
"node.autoconnect" = true;
|
||||||
"resample.quality" = 14;
|
"resample.quality" = 14;
|
||||||
"channelmix.normalize" = true;
|
"channelmix.normalize" = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
extraConfig.pipewire = {
|
extraConfig.pipewire.quality = {
|
||||||
"context" = {
|
"context" = {
|
||||||
"properties" = {
|
"properties" = {
|
||||||
"library.name.system" = "support/libspa-support";
|
"library.name.system" = "support/libspa-support";
|
||||||
|
@ -202,8 +244,8 @@
|
||||||
];
|
];
|
||||||
"core.daemon" = true;
|
"core.daemon" = true;
|
||||||
"core.name" = "pipewire-0";
|
"core.name" = "pipewire-0";
|
||||||
"default.clock.rate" = 192000;
|
"default.clock.rate" = 48000;
|
||||||
"default.clock.allowed-rates" = [192000];
|
"default.clock.allowed-rates" = [48000];
|
||||||
"module.x11.bell" = true;
|
"module.x11.bell" = true;
|
||||||
"module.access" = true;
|
"module.access" = true;
|
||||||
"module.jackdbus-detect" = true;
|
"module.jackdbus-detect" = true;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue