# Real-time Client config file for PipeWire version @VERSION@ # # # Copy and edit this file in @PIPEWIRE_CONFIG_DIR@ for system-wide changes # or in ~/.config/pipewire for local changes. # # It is also possible to place a file with an updated section in # @PIPEWIRE_CONFIG_DIR@/client-rt.conf.d/ for system-wide changes or in # ~/.config/pipewire/client-rt.conf.d/ for local changes. # context.properties = { ## Configure properties in the system. #mem.warn-mlock = false #mem.allow-mlock = true #mem.mlock-all = false log.level = 0 #default.clock.quantum-limit = 8192 } context.spa-libs = { # = # # Used to find spa factory names. It maps an spa factory name # regular expression to a library name that should contain # that factory. # audio.convert.* = audioconvert/libspa-audioconvert support.* = support/libspa-support } context.modules = [ #{ name = # [ args = { = ... } ] # [ flags = [ [ ifexists ] [ nofail ] ] #} # # Loads a module with the given parameters. # If ifexists is given, the module is ignored when it is not found. # If nofail is given, module initialization failures are ignored. # # Uses realtime scheduling to boost the audio thread priorities { name = libpipewire-module-rt args = { #rt.prio = 88 #rt.time.soft = -1 #rt.time.hard = -1 } flags = [ ifexists nofail ] } # The native communication protocol. { name = libpipewire-module-protocol-native } # Allows creating nodes that run in the context of the # client. Is used by all clients that want to provide # data to PipeWire. { name = libpipewire-module-client-node } # Allows creating devices that run in the context of the # client. Is used by the session manager. { name = libpipewire-module-client-device } # Makes a factory for wrapping nodes in an adapter with a # converter and resampler. { name = libpipewire-module-adapter } # Allows applications to create metadata objects. It creates # a factory for Metadata objects. { name = libpipewire-module-metadata } # Provides factories to make session manager objects. { name = libpipewire-module-session-manager } ] filter.properties = { #node.latency = 1024/48000 } stream.properties = { #node.latency = 1024/48000 #node.autoconnect = true #resample.quality = 4 #channelmix.normalize = false #channelmix.mix-lfe = true #channelmix.upmix = true #channelmix.upmix-method = psd # none, simple #channelmix.lfe-cutoff = 150 #channelmix.fc-cutoff = 12000 #channelmix.rear-delay = 12.0 #channelmix.stereo-widen = 0.0 #channelmix.hilbert-taps = 0 #dither.noise = 0 } alsa.properties = { #alsa.format = 0 #alsa.rate = 0 #alsa.channels = 0 #alsa.period-bytes = 0 #alsa.buffer-bytes = 0 #alsa.volume-method = cubic # linear, cubic } # client specific properties alsa.rules = [ { matches = [ { application.process.binary = "resolve" } ] actions = { update-props = { alsa.buffer-bytes = 131072 } } } ]