diff --git a/.config/pipewire/.github/README.md b/.config/pipewire/.github/README.md deleted file mode 100644 index affa9d51..00000000 --- a/.config/pipewire/.github/README.md +++ /dev/null @@ -1,3 +0,0 @@ -
- -
diff --git a/.config/pipewire/.github/title.png b/.config/pipewire/.github/title.png deleted file mode 100644 index d11144d6..00000000 Binary files a/.config/pipewire/.github/title.png and /dev/null differ diff --git a/.config/pipewire/client-rt.conf b/.config/pipewire/client-rt.conf deleted file mode 100644 index d0c87137..00000000 --- a/.config/pipewire/client-rt.conf +++ /dev/null @@ -1,94 +0,0 @@ -# Real-time Client config file for PipeWire version "0.3.60" # -# -# Copy and edit this file in /etc/pipewire for system-wide changes -# or in ~/.config/pipewire for local changes. -# -# It is also possible to place a file with an updated section in -# /etc/pipewire/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 = false - #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 -} diff --git a/.config/pipewire/client.conf b/.config/pipewire/client.conf deleted file mode 100644 index eff48f71..00000000 --- a/.config/pipewire/client.conf +++ /dev/null @@ -1,85 +0,0 @@ -# Client config file for PipeWire version "0.3.60" # -# -# Copy and edit this file in /etc/pipewire for system-wide changes -# or in ~/.config/pipewire for local changes. -# -# It is also possible to place a file with an updated section in -# /etc/pipewire/client.conf.d/ for system-wide changes or in -# ~/.config/pipewire/client.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. - # - - # 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 = false - #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 -} diff --git a/.config/pipewire/filter-chain.conf b/.config/pipewire/filter-chain.conf deleted file mode 100644 index 0f5cf724..00000000 --- a/.config/pipewire/filter-chain.conf +++ /dev/null @@ -1,62 +0,0 @@ -# Filter-chain config file for PipeWire version "0.3.60" # -# -# This is a base config file for running filters. -# -# Place filter fragments in /etc/pipewire/filter-chain.conf.d/ -# for system-wide changes or in ~/.config/pipewire/filter-chain.conf.d/ -# for local changes. -# -# Run the filters with pipewire -c filter-chain.conf -# - -context.properties = { - ## Configure properties in the system. - #mem.warn-mlock = false - #mem.allow-mlock = true - #mem.mlock-all = false - log.level = 0 -} - -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 } - - # Makes a factory for wrapping nodes in an adapter with a - # converter and resampler. - { name = libpipewire-module-adapter } -] diff --git a/.config/pipewire/filter-chain/demonic.conf b/.config/pipewire/filter-chain/demonic.conf deleted file mode 100644 index a941bf04..00000000 --- a/.config/pipewire/filter-chain/demonic.conf +++ /dev/null @@ -1,63 +0,0 @@ -# filter-chain example config file for PipeWire version "0.3.60" # -# -# Copy this file into a conf.d/ directory such as -# ~/.config/pipewire/filter-chain.conf.d/ -# -context.modules = [ - { name = libpipewire-module-filter-chain - args = { - #audio.format = F32 - #audio.rate = 48000 - audio.channels = 2 - audio.position = [ FL FR ] - node.description = "Demonic example" - media.name = "Demonic example" - filter.graph = { - nodes = [ - { - name = rev - type = ladspa - plugin = revdelay_1605 - label = revdelay - control = { - "Delay Time (s)" = 2.0 - } - } - { - name = pitch - type = ladspa - plugin = am_pitchshift_1433 - label = amPitchshift - control = { - "Pitch shift" = 0.6 - } - } - { - name = rev2 - type = ladspa - plugin = g2reverb - label = G2reverb - control = { - "Reverb tail" = 0.5 - "Damping" = 0.9 - } - } - ] - links = [ - { output = "rev:Output" input = "pitch:Input" } - { output = "pitch:Output" input = "rev2:In L" } - ] - inputs = [ "rev:Input" ] - outputs = [ "rev2:Out L" ] - } - capture.props = { - node.name = "effect_input.filter-chain-demonic" - #media.class = Audio/Sink - } - playback.props = { - node.name = "effect_output.filter-chain-demonic" - #media.class = Audio/Source - } - } - } -] diff --git a/.config/pipewire/filter-chain/sink-dolby-surround.conf b/.config/pipewire/filter-chain/sink-dolby-surround.conf deleted file mode 100644 index a53009f7..00000000 --- a/.config/pipewire/filter-chain/sink-dolby-surround.conf +++ /dev/null @@ -1,46 +0,0 @@ -# Dolby Surround encoder sink -# -# Copy this file into a conf.d/ directory such as -# ~/.config/pipewire/filter-chain.conf.d/ -# -context.modules = [ - { name = libpipewire-module-filter-chain - args = { - node.description = "Dolby Surround Sink" - media.name = "Dolby Surround Sink" - filter.graph = { - nodes = [ - { - type = builtin - name = mixer - label = mixer - control = { "Gain 1" = 0.5 "Gain 2" = 0.5 } - } - { - type = ladspa - name = enc - plugin = surround_encoder_1401 - label = surroundEncoder - } - ] - links = [ - { output = "mixer:Out" input = "enc:S" } - ] - inputs = [ "enc:L" "enc:R" "enc:C" null "mixer:In 1" "mixer:In 2" ] - outputs = [ "enc:Lt" "enc:Rt" ] - } - capture.props = { - node.name = "effect_input.dolby_surround" - media.class = Audio/Sink - audio.channels = 6 - audio.position = [ FL FR FC LFE SL SR ] - } - playback.props = { - node.name = "effect_output.dolby_surround" - node.passive = true - audio.channels = 2 - audio.position = [ FL FR ] - } - } - } -] diff --git a/.config/pipewire/filter-chain/sink-eq6.conf b/.config/pipewire/filter-chain/sink-eq6.conf deleted file mode 100644 index 4cdf21b8..00000000 --- a/.config/pipewire/filter-chain/sink-eq6.conf +++ /dev/null @@ -1,70 +0,0 @@ -# 6 band sink equalizer -# -# Copy this file into a conf.d/ directory such as -# ~/.config/pipewire/filter-chain.conf.d/ -# -context.modules = [ - { name = libpipewire-module-filter-chain - args = { - node.description = "Equalizer Sink" - media.name = "Equalizer Sink" - filter.graph = { - nodes = [ - { - type = builtin - name = eq_band_1 - label = bq_lowshelf - control = { "Freq" = 100.0 "Q" = 1.0 "Gain" = 0.0 } - } - { - type = builtin - name = eq_band_2 - label = bq_peaking - control = { "Freq" = 100.0 "Q" = 1.0 "Gain" = 0.0 } - } - { - type = builtin - name = eq_band_3 - label = bq_peaking - control = { "Freq" = 500.0 "Q" = 1.0 "Gain" = 0.0 } - } - { - type = builtin - name = eq_band_4 - label = bq_peaking - control = { "Freq" = 2000.0 "Q" = 1.0 "Gain" = 0.0 } - } - { - type = builtin - name = eq_band_5 - label = bq_peaking - control = { "Freq" = 5000.0 "Q" = 1.0 "Gain" = 0.0 } - } - { - type = builtin - name = eq_band_6 - label = bq_highshelf - control = { "Freq" = 5000.0 "Q" = 1.0 "Gain" = 0.0 } - } - ] - links = [ - { output = "eq_band_1:Out" input = "eq_band_2:In" } - { output = "eq_band_2:Out" input = "eq_band_3:In" } - { output = "eq_band_3:Out" input = "eq_band_4:In" } - { output = "eq_band_4:Out" input = "eq_band_5:In" } - { output = "eq_band_5:Out" input = "eq_band_6:In" } - ] - } - audio.channels = 2 - audio.position = [ FL FR ] - capture.props = { - node.name = "effect_input.eq6" - media.class = Audio/Sink - } - playback.props = { - node.name = "effect_output.eq6" - node.passive = true - } - } - } -] diff --git a/.config/pipewire/filter-chain/sink-make-LFE.conf b/.config/pipewire/filter-chain/sink-make-LFE.conf deleted file mode 100644 index 4ab770e3..00000000 --- a/.config/pipewire/filter-chain/sink-make-LFE.conf +++ /dev/null @@ -1,56 +0,0 @@ -# An example filter chain that makes a stereo sink that mixes -# the FL and FR channels to FL, FR, LFE -# -# Copy this file into a conf.d/ directory -# -context.modules = [ - { name = libpipewire-module-filter-chain - args = { - node.description = "LFE example" - media.name = "LFE example" - filter.graph = { - nodes = [ - { name = copyIL type = builtin label = copy } - { name = copyOL type = builtin label = copy } - { name = copyIR type = builtin label = copy } - { name = copyOR type = builtin label = copy } - { - name = mix - type = builtin - label = mixer - control = { - "Gain 1" = 0.5 - "Gain 2" = 0.5 - } - } - { - type = builtin - name = lpLFE - label = bq_lowpass - control = { "Freq" = 150.0 } - } - ] - links = [ - { output = "copyIL:Out" input = "copyOL:In" } - { output = "copyIR:Out" input = "copyOR:In" } - { output = "copyIL:Out" input = "mix:In 1" } - { output = "copyIR:Out" input = "mix:In 2" } - { output = "mix:Out" input = "lpLFE:In" } - ] - inputs = [ "copyIL:In" "copyIR:In" ] - outputs = [ "copyOL:Out" "copyOR:Out" "lpLFE:Out"] - } - capture.props = { - node.name = "input_lfe" - audio.position = [ FL FR ] - media.class = "Audio/Sink" - } - playback.props = { - node.name = "output_lfe" - audio.position = [ FL FR LFE ] - stream.dont-remix = true - node.passive = true - } - } - } -] diff --git a/.config/pipewire/filter-chain/sink-matrix-spatialiser.conf b/.config/pipewire/filter-chain/sink-matrix-spatialiser.conf deleted file mode 100644 index b39890cb..00000000 --- a/.config/pipewire/filter-chain/sink-matrix-spatialiser.conf +++ /dev/null @@ -1,41 +0,0 @@ -# Matrix Spatialiser sink -# -# Copy this file into a conf.d/ directory such as -# ~/.config/pipewire/filter-chain.conf.d/ -# -# ( Jean-Philippe Guillemin ) -# - -context.modules = [ - { name = libpipewire-module-filter-chain - args = { - node.description = "Matrix Spatialiser" - media.name = "Matrix Spatialiser" - filter.graph = { - nodes = [ - { - type = ladspa - name = matrix - plugin = matrix_spatialiser_1422 - label = matrixSpatialiser - control = { - "Width" = 80 - } - } - ] - inputs = [ "matrix:Input L" "matrix:Input R" ] - outputs = [ "matrix:Output L" "matrix:Output R" ] - } - audio.channels = 2 - audio.position = [ FL FR ] - capture.props = { - node.name = "effect_input.matrix_spatialiser" - media.class = Audio/Sink - } - playback.props = { - node.name = "effect_output.matrix_spatialiser" - node.passive = true - } - } - } -] diff --git a/.config/pipewire/filter-chain/sink-mix-FL-FR.conf b/.config/pipewire/filter-chain/sink-mix-FL-FR.conf deleted file mode 100644 index 8288fad5..00000000 --- a/.config/pipewire/filter-chain/sink-mix-FL-FR.conf +++ /dev/null @@ -1,40 +0,0 @@ -# An example filter chain that makes a stereo sink that mixes -# the FL and FR channels to a single FL channel -# -# Copy this file into a conf.d/ directory such as -# ~/.config/pipewire/filter-chain.conf.d/ -# -context.modules = [ - { name = libpipewire-module-filter-chain - args = { - node.description = "Mix example" - media.name = "Mix example" - filter.graph = { - nodes = [ - { - name = mix - type = builtin - label = mixer - control = { - "Gain 1" = 0.5 - "Gain 2" = 0.5 - } - } - ] - inputs = [ "mix:In 1" "mix:In 2" ] - outputs = [ "mix:Out" ] - } - capture.props = { - node.name = "mix_input.mix-FL-FR-to-FL" - audio.position = [ FL FR ] - media.class = "Audio/Sink" - } - playback.props = { - node.name = "mix_output.mix-FL-FR-to-FL" - audio.position = [ FL ] - stream.dont-remix = true - node.passive = true - } - } - } -] diff --git a/.config/pipewire/filter-chain/sink-virtual-surround-5.1-kemar.conf b/.config/pipewire/filter-chain/sink-virtual-surround-5.1-kemar.conf deleted file mode 100644 index ee8929b0..00000000 --- a/.config/pipewire/filter-chain/sink-virtual-surround-5.1-kemar.conf +++ /dev/null @@ -1,177 +0,0 @@ -# Convolver sink -# -# Copy this file into a conf.d/ directory such as -# ~/.config/pipewire/filter-chain.conf.d/ -# -context.modules = [ - { name = libpipewire-module-filter-chain - args = { - node.description = "Virtual Surround Sink" - media.name = "Virtual Surround Sink" - filter.graph = { - nodes = [ - { - type = builtin - label = convolver - name = convFL_L - config = { - filename = "hrir_kemar/hrir-kemar.wav" - channel = 0 - } - } - { - type = builtin - label = convolver - name = convFL_R - config = { - filename = "hrir_kemar/hrir-kemar.wav" - channel = 1 - } - } - { - type = builtin - label = convolver - name = convFR_L - config = { - filename = "hrir_kemar/hrir-kemar.wav" - channel = 1 - } - } - { - type = builtin - label = convolver - name = convFR_R - config = { - filename = "hrir_kemar/hrir-kemar.wav" - channel = 0 - } - } - { - type = builtin - label = convolver - name = convFC - config = { - filename = "hrir_kemar/hrir-kemar.wav" - channel = 2 - } - } - { - type = builtin - label = convolver - name = convLFE - config = { - filename = "hrir_kemar/hrir-kemar.wav" - channel = 3 - } - } - { - type = builtin - label = convolver - name = convSL_L - config = { - filename = "hrir_kemar/hrir-kemar.wav" - channel = 4 - } - } - { - type = builtin - label = convolver - name = convSL_R - config = { - filename = "hrir_kemar/hrir-kemar.wav" - channel = 5 - } - } - { - type = builtin - label = convolver - name = convSR_L - config = { - filename = "hrir_kemar/hrir-kemar.wav" - channel = 5 - } - } - { - type = builtin - label = convolver - name = convSR_R - config = { - filename = "hrir_kemar/hrir-kemar.wav" - channel = 4 - } - } - { - type = builtin - label = mixer - name = mixL - } - { - type = builtin - label = mixer - name = mixR - } - { - type = builtin - label = copy - name = copyFL - } - { - type = builtin - label = copy - name = copyFR - } - { - type = builtin - label = copy - name = copySL - } - { - type = builtin - label = copy - name = copySR - } - ] - links = [ - { output = "copyFL:Out" input = "convFL_L:In" } - { output = "copyFL:Out" input = "convFL_R:In" } - { output = "copyFR:Out" input = "convFR_R:In" } - { output = "copyFR:Out" input = "convFR_L:In" } - - { output = "copySL:Out" input = "convSL_L:In" } - { output = "copySL:Out" input = "convSL_R:In" } - { output = "copySR:Out" input = "convSR_R:In" } - { output = "copySR:Out" input = "convSR_L:In" } - - { output = "convFL_L:Out" input = "mixL:In 1" } - { output = "convFR_L:Out" input = "mixL:In 2" } - { output = "convFC:Out" input = "mixL:In 3" } - { output = "convLFE:Out" input = "mixL:In 4" } - { output = "convSL_L:Out" input = "mixL:In 5" } - { output = "convSR_L:Out" input = "mixL:In 6" } - - { output = "convFL_R:Out" input = "mixR:In 1" } - { output = "convFR_R:Out" input = "mixR:In 2" } - { output = "convFC:Out" input = "mixR:In 3" } - { output = "convLFE:Out" input = "mixR:In 4" } - { output = "convSL_R:Out" input = "mixR:In 5" } - { output = "convSR_R:Out" input = "mixR:In 6" } - ] - inputs = [ "copyFL:In" "copyFR:In" "convFC:In" "convLFE:In" "copySL:In" "copySR:In" ] - outputs = [ "mixL:Out" "mixR:Out" ] - - } - capture.props = { - node.name = "effect_input.virtual-surround-5.1-kemar" - media.class = Audio/Sink - audio.channels = 6 - audio.position = [ FL FR FC LFE SL SR] - } - playback.props = { - node.name = "effect_output.virtual-surround-5.1-kemar" - node.passive = true - audio.channels = 2 - audio.position = [ FL FR ] - } - } - } -] diff --git a/.config/pipewire/filter-chain/sink-virtual-surround-7.1-hesuvi.conf b/.config/pipewire/filter-chain/sink-virtual-surround-7.1-hesuvi.conf deleted file mode 100644 index 4aad3102..00000000 --- a/.config/pipewire/filter-chain/sink-virtual-surround-7.1-hesuvi.conf +++ /dev/null @@ -1,101 +0,0 @@ -# Convolver sink -# -# Copy this file into a conf.d/ directory such as -# ~/.config/pipewire/filter-chain.conf.d/ -# -context.modules = [ - { name = libpipewire-module-filter-chain - args = { - node.description = "Virtual Surround Sink" - media.name = "Virtual Surround Sink" - filter.graph = { - nodes = [ - # duplicate inputs - { type = builtin label = copy name = copyFL } - { type = builtin label = copy name = copyFR } - { type = builtin label = copy name = copyFC } - { type = builtin label = copy name = copyRL } - { type = builtin label = copy name = copyRR } - { type = builtin label = copy name = copySL } - { type = builtin label = copy name = copySR } - { type = builtin label = copy name = copyLFE } - - # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: */44/* in HeSuVi are the same, but resampled to 44100) - { type = builtin label = convolver name = convFL_L config = { filename = "hrir_hesuvi/hrir.wav" channel = 0 } } - { type = builtin label = convolver name = convFL_R config = { filename = "hrir_hesuvi/hrir.wav" channel = 1 } } - { type = builtin label = convolver name = convSL_L config = { filename = "hrir_hesuvi/hrir.wav" channel = 2 } } - { type = builtin label = convolver name = convSL_R config = { filename = "hrir_hesuvi/hrir.wav" channel = 3 } } - { type = builtin label = convolver name = convRL_L config = { filename = "hrir_hesuvi/hrir.wav" channel = 4 } } - { type = builtin label = convolver name = convRL_R config = { filename = "hrir_hesuvi/hrir.wav" channel = 5 } } - { type = builtin label = convolver name = convFC_L config = { filename = "hrir_hesuvi/hrir.wav" channel = 6 } } - { type = builtin label = convolver name = convFR_R config = { filename = "hrir_hesuvi/hrir.wav" channel = 7 } } - { type = builtin label = convolver name = convFR_L config = { filename = "hrir_hesuvi/hrir.wav" channel = 8 } } - { type = builtin label = convolver name = convSR_R config = { filename = "hrir_hesuvi/hrir.wav" channel = 9 } } - { type = builtin label = convolver name = convSR_L config = { filename = "hrir_hesuvi/hrir.wav" channel = 10 } } - { type = builtin label = convolver name = convRR_R config = { filename = "hrir_hesuvi/hrir.wav" channel = 11 } } - { type = builtin label = convolver name = convRR_L config = { filename = "hrir_hesuvi/hrir.wav" channel = 12 } } - { type = builtin label = convolver name = convFC_R config = { filename = "hrir_hesuvi/hrir.wav" channel = 13 } } - - # treat LFE as FC - { type = builtin label = convolver name = convLFE_L config = { filename = "hrir_hesuvi/hrir.wav" channel = 6 } } - { type = builtin label = convolver name = convLFE_R config = { filename = "hrir_hesuvi/hrir.wav" channel = 13 } } - - # stereo output - { type = builtin label = mixer name = mixL } - { type = builtin label = mixer name = mixR } - ] - links = [ - # input - { output = "copyFL:Out" input="convFL_L:In" } - { output = "copyFL:Out" input="convFL_R:In" } - { output = "copySL:Out" input="convSL_L:In" } - { output = "copySL:Out" input="convSL_R:In" } - { output = "copyRL:Out" input="convRL_L:In" } - { output = "copyRL:Out" input="convRL_R:In" } - { output = "copyFC:Out" input="convFC_L:In" } - { output = "copyFR:Out" input="convFR_R:In" } - { output = "copyFR:Out" input="convFR_L:In" } - { output = "copySR:Out" input="convSR_R:In" } - { output = "copySR:Out" input="convSR_L:In" } - { output = "copyRR:Out" input="convRR_R:In" } - { output = "copyRR:Out" input="convRR_L:In" } - { output = "copyFC:Out" input="convFC_R:In" } - { output = "copyLFE:Out" input="convLFE_L:In" } - { output = "copyLFE:Out" input="convLFE_R:In" } - - # output - { output = "convFL_L:Out" input="mixL:In 1" } - { output = "convFL_R:Out" input="mixR:In 1" } - { output = "convSL_L:Out" input="mixL:In 2" } - { output = "convSL_R:Out" input="mixR:In 2" } - { output = "convRL_L:Out" input="mixL:In 3" } - { output = "convRL_R:Out" input="mixR:In 3" } - { output = "convFC_L:Out" input="mixL:In 4" } - { output = "convFC_R:Out" input="mixR:In 4" } - { output = "convFR_R:Out" input="mixR:In 5" } - { output = "convFR_L:Out" input="mixL:In 5" } - { output = "convSR_R:Out" input="mixR:In 6" } - { output = "convSR_L:Out" input="mixL:In 6" } - { output = "convRR_R:Out" input="mixR:In 7" } - { output = "convRR_L:Out" input="mixL:In 7" } - { output = "convLFE_R:Out" input="mixR:In 8" } - { output = "convLFE_L:Out" input="mixL:In 8" } - ] - inputs = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In", "copySL:In", "copySR:In" ] - outputs = [ "mixL:Out" "mixR:Out" ] - } - capture.props = { - node.name = "effect_input.virtual-surround-7.1-hesuvi" - media.class = Audio/Sink - audio.channels = 8 - audio.position = [ FL FR FC LFE RL RR SL SR ] - } - playback.props = { - node.name = "effect_output.virtual-surround-7.1-hesuvi" - node.passive = true - audio.channels = 2 - audio.position = [ FL FR ] - } - } - } -] diff --git a/.config/pipewire/filter-chain/source-duplicate-FL.conf b/.config/pipewire/filter-chain/source-duplicate-FL.conf deleted file mode 100644 index 7e0158f1..00000000 --- a/.config/pipewire/filter-chain/source-duplicate-FL.conf +++ /dev/null @@ -1,52 +0,0 @@ -# An example filter chain that makes a source that duplicates the FL channel -# to FL and FR. -# -# Copy this file into a conf.d/ directory such as -# ~/.config/pipewire/filter-chain.conf.d/ -# -context.modules = [ - { name = libpipewire-module-filter-chain - args = { - node.description = "Remap example" - media.name = "Remap example" - filter.graph = { - nodes = [ - { - name = copyIL - type = builtin - label = copy - } - { - name = copyOL - type = builtin - label = copy - } - { - name = copyOR - type = builtin - label = copy - } - ] - links = [ - # we can only tee from nodes, not inputs so we need - # to copy the inputs and then tee. - { output = "copyIL:Out" input = "copyOL:In" } - { output = "copyIL:Out" input = "copyOR:In" } - ] - inputs = [ "copyIL:In" ] - outputs = [ "copyOL:Out" "copyOR:Out" ] - } - capture.props = { - node.name = "remap_input.remap-FL-to-FL-FR" - audio.position = [ FL ] - stream.dont-remix = true - node.passive = true - } - playback.props = { - node.name = "remap_output.remap-FL-to-FL-FR" - audio.position = [ FL FR ] - media.class = "Audio/Source" - } - } - } -] diff --git a/.config/pipewire/filter-chain/source-rnnoise.conf b/.config/pipewire/filter-chain/source-rnnoise.conf deleted file mode 100644 index 5babd811..00000000 --- a/.config/pipewire/filter-chain/source-rnnoise.conf +++ /dev/null @@ -1,35 +0,0 @@ -# Noise canceling source -# -# Copy this file into a conf.d/ directory such as -# ~/.config/pipewire/filter-chain.conf.d/ -# -context.modules = [ - { name = libpipewire-module-filter-chain - args = { - node.description = "Noise Canceling source" - media.name = "Noise Canceling source" - filter.graph = { - nodes = [ - { - type = ladspa - name = rnnoise - plugin = librnnoise_ladspa - label = noise_suppressor_stereo - control = { - "VAD Threshold (%)" 50.0 - } - } - ] - } - audio.position = [ FL FR ] - capture.props = { - node.name = "effect_input.rnnoise" - node.passive = true - } - playback.props = { - node.name = "effect_output.rnnoise" - media.class = Audio/Source - } - } - } -] diff --git a/.config/pipewire/jack.conf b/.config/pipewire/jack.conf deleted file mode 100644 index 71275c78..00000000 --- a/.config/pipewire/jack.conf +++ /dev/null @@ -1,118 +0,0 @@ -# JACK client config file for PipeWire version "0.3.60" # -# -# Copy and edit this file in /etc/pipewire for system-wide changes -# or in ~/.config/pipewire for local changes. -# -# It is also possible to place a file with an updated section in -# /etc/pipewire/jack.conf.d/ for system-wide changes or in -# ~/.config/pipewire/jack.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. - # - 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. - # - # - # Boost the data thread priority. - { 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 applications to create metadata objects. It creates - # a factory for Metadata objects. - { name = libpipewire-module-metadata } -] - -# global properties for all jack clients -jack.properties = { - #node.latency = 1024/48000 - #node.rate = 1/48000 - #node.quantum = 1024/48000 - #node.lock-quantum = true - #node.force-quantum = 0 - #jack.show-monitor = true - #jack.merge-monitor = false - #jack.short-name = false - #jack.filter-name = false - # - # allow: Don't restrict self connect requests - # fail-external: Fail self connect requests to external ports only - # ignore-external: Ignore self connect requests to external ports only - # fail-all: Fail all self connect requests - # ignore-all: Ignore all self connect requests - #jack.self-connect-mode = allow - #jack.locked-process = true - #jack.default-as-system = false - #jack.fix-midi-events = true - #jack.global-buffer-size = false -} - -# client specific properties -jack.rules = [ - { - matches = [ - { - # all keys must match the value. ~ starts regex. - #client.name = "Carla" - #application.process.binary = "jack_simple_client" - #application.name = "~jack_simple_client.*" - } - ] - actions = { - update-props = { - #node.latency = 512/48000 - } - } - } - { - matches = [ - { - application.process.binary = "jack_bufsize" - } - ] - actions = { - update-props = { - jack.global-buffer-size = true - } - } - } -] diff --git a/.config/pipewire/minimal.conf b/.config/pipewire/minimal.conf deleted file mode 100644 index 3391ccf5..00000000 --- a/.config/pipewire/minimal.conf +++ /dev/null @@ -1,352 +0,0 @@ -# Simple daemon config file for PipeWire version "0.3.60" # -# -# Copy and edit this file in /etc/pipewire for system-wide changes -# or in ~/.config/pipewire for local changes. -# -# It is also possible to place a file with an updated section in -# /etc/pipewire/minimal.conf.d/ for system-wide changes or in -# ~/.config/pipewire/minimal.conf.d/ for local changes. -# - -context.properties = { - ## Configure properties in the system. - #library.name.system = support/libspa-support - #context.data-loop.library.name.system = support/libspa-support - #support.dbus = true - #link.max-buffers = 64 - link.max-buffers = 16 # version < 3 clients can't handle more - #mem.warn-mlock = false - #mem.allow-mlock = true - #mem.mlock-all = false - #clock.power-of-two-quantum = true - #log.level = 2 - #cpu.zero.denormals = false - - core.daemon = true # listening for socket connections - core.name = pipewire-0 # core name and socket name - - ## Properties for the DSP configuration. - #default.clock.rate = 48000 - #default.clock.allowed-rates = [ 48000 ] - #default.clock.quantum = 1024 - #default.clock.min-quantum = 32 - #default.clock.max-quantum = 2048 - #default.clock.quantum-limit = 8192 - #default.video.width = 640 - #default.video.height = 480 - #default.video.rate.num = 25 - #default.video.rate.denom = 1 - # - settings.check-quantum = true - settings.check-rate = true - # - # These overrides are only applied when running in a vm. - vm.overrides = { - default.clock.min-quantum = 1024 - } -} - -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 - api.alsa.* = alsa/libspa-alsa - 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. This uses - # RTKit if the user doesn't have permission to use regular realtime - # scheduling. - { name = libpipewire-module-rt - args = { - nice.level = -11 - #rt.prio = 88 - #rt.time.soft = -1 - #rt.time.hard = -1 - } - flags = [ ifexists nofail ] - } - - # The native communication protocol. - { name = libpipewire-module-protocol-native } - - # The profile module. Allows application to access profiler - # and performance data. It provides an interface that is used - # by pw-top and pw-profiler. - { name = libpipewire-module-profiler } - - # Allows applications to create metadata objects. It creates - # a factory for Metadata objects. - { name = libpipewire-module-metadata } - - # Creates a factory for making nodes that run in the - # context of the PipeWire server. - { name = libpipewire-module-spa-node-factory } - - # 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 } - - # The access module can perform access checks and block - # new clients. - { name = libpipewire-module-access - args = { - # access.allowed to list an array of paths of allowed - # apps. - #access.allowed = [ - # /usr/bin/pipewire-media-session - #] - - # An array of rejected paths. - #access.rejected = [ ] - - # An array of paths with restricted access. - #access.restricted = [ ] - - # Anything not in the above lists gets assigned the - # access.force permission. - #access.force = flatpak - } - } - - # Makes a factory for wrapping nodes in an adapter with a - # converter and resampler. - { name = libpipewire-module-adapter } - - # Makes a factory for creating links between ports. - { name = libpipewire-module-link-factory } -] - -context.objects = [ - #{ factory = - # [ args = { = ... } ] - # [ flags = [ [ nofail ] ] - #} - # - # Creates an object from a PipeWire factory with the given parameters. - # If nofail is given, errors are ignored (and no object is created). - # - #{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc Spa:Pod:Object:Param:Props:patternType = 1 } } - #{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] } - #{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } } - #{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } } - #{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test } } - #{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } } - - # Make a default metadata store - { factory = metadata args = { metadata.name = default } } - - # A default dummy driver. This handles nodes marked with the "node.always-driver" - # property when no other driver is currently active. JACK clients need this. - { factory = spa-node-factory - args = { - factory.name = support.node.driver - node.name = Dummy-Driver - node.group = pipewire.dummy - priority.driver = 20000 - } - } - { factory = spa-node-factory - args = { - factory.name = support.node.driver - node.name = Freewheel-Driver - priority.driver = 19000 - node.group = pipewire.freewheel - node.freewheel = true - } - } - - # This creates a single PCM source device for the given - # alsa device path hw:0. You can change source to sink - # to make a sink in the same way. - { factory = adapter - args = { - factory.name = api.alsa.pcm.source - node.name = "system" - node.description = "system" - media.class = "Audio/Source" - api.alsa.path = "hw:0" - #api.alsa.period-size = 0 - #api.alsa.period-num = 0 - #api.alsa.headroom = 0 - #api.alsa.start-delay = 0 - #api.alsa.disable-mmap = false - #api.alsa.disable-batch = false - #api.alsa.use-chmap = false - #api.alsa.multirate = true - #latency.internal.rate = 0 - #latency.internal.ns = 0 - #clock.name = api.alsa.0 - node.suspend-on-idle = true - #audio.format = "S32" - #audio.rate = 48000 - #audio.allowed-rates = [ ] - #audio.channels = 4 - #audio.position = [ FL FR RL RR ] - #resample.quality = 4 - resample.disable = true - #monitor.channel-volumes = false - #channelmix.normalize = false - #channelmix.mix-lfe = false - #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 - channelmix.disable = true - #dither.noise = 0 - #node.param.Props = { - # params = [ - # audio.channels 6 - # ] - #} - adapter.auto-port-config = { - mode = dsp - monitor = false - control = false - position = unknown # aux, preserve - } - #node.param.PortConfig = { - # direction = Output - # mode = dsp - # format = { - # mediaType = audio - # mediaSubtype = raw - # format = F32 - # rate = 48000 - # channels = 4 - # position = [ FL FR RL RR ] - # } - #} - } - } - { factory = adapter - args = { - factory.name = api.alsa.pcm.sink - node.name = "system" - node.description = "system" - media.class = "Audio/Sink" - api.alsa.path = "hw:0" - #api.alsa.period-size = 0 - #api.alsa.period-num = 0 - #api.alsa.headroom = 0 - #api.alsa.start-delay = 0 - #api.alsa.disable-mmap = false - #api.alsa.disable-batch = false - #api.alsa.use-chmap = false - #api.alsa.multirate = true - #latency.internal.rate = 0 - #latency.internal.ns = 0 - #clock.name = api.alsa.0 - node.suspend-on-idle = true - #audio.format = "S32" - #audio.rate = 48000 - #audio.allowed-rates = [ ] - #audio.channels = 2 - #audio.position = "FL,FR" - #resample.quality = 4 - resample.disable = true - #channelmix.normalize = false - #channelmix.mix-lfe = false - #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 - channelmix.disable = true - #dither.noise = 0 - #node.param.Props = { - # params = [ - # audio.format S16 - # ] - #} - adapter.auto-port-config = { - mode = dsp - monitor = false - control = false - position = unknown # aux, preserve - } - #node.param.PortConfig = { - # direction = Input - # mode = dsp - # monitor = true - # format = { - # mediaType = audio - # mediaSubtype = raw - # format = F32 - # rate = 48000 - # channels = 4 - # } - #} - } - } - # This creates a new Source node. It will have input ports - # that you can link, to provide audio for this source. - #{ factory = adapter - # args = { - # factory.name = support.null-audio-sink - # node.name = "my-mic" - # node.description = "Microphone" - # media.class = "Audio/Source/Virtual" - # audio.position = "FL,FR" - # adapter.auto-port-config = { - # mode = dsp - # monitor = true - # position = preserve # unknown, aux, preserve - # } - # } - #} - # This creates a new link between the source and the virtual - # source ports. - #{ factory = link-factory - # args = { - # link.output.node = system - # link.output.port = capture_1 - # link.input.node = my-mic - # link.input.port = input_FL - # link.passive = true - # } - #} - #{ factory = link-factory - # args = { - # link.output.node = system - # link.output.port = capture_2 - # link.input.node = my-mic - # link.input.port = input_FR - # link.passive = true - # } - #} -] - -context.exec = [ - #{ path = [ args = "" ] } - # - # Execute the given program with arguments. - # - # You can optionally start the pulseaudio-server here as well - # but it is better to start it as a systemd service. - # It can be interesting to start another daemon here that listens - # on another address with the -a option (eg. -a tcp:4713). - # - ##{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" } -] diff --git a/.config/pipewire/pipewire-avb.conf b/.config/pipewire/pipewire-avb.conf deleted file mode 100644 index e00aa721..00000000 --- a/.config/pipewire/pipewire-avb.conf +++ /dev/null @@ -1,73 +0,0 @@ -# PulseAudio config file for PipeWire version "0.3.60" # -# -# Copy and edit this file in /etc/pipewire for system-wide changes -# or in ~/.config/pipewire for local changes. -# -# It is also possible to place a file with an updated section in -# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in -# ~/.config/pipewire/pipewire-pulse.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 = 2 - - #default.clock.quantum-limit = 8192 -} - -context.spa-libs = { - audio.convert.* = audioconvert/libspa-audioconvert - support.* = support/libspa-support -} - -context.modules = [ - { name = libpipewire-module-rt - args = { - nice.level = -11 - #rt.prio = 88 - #rt.time.soft = -1 - #rt.time.hard = -1 - } - flags = [ ifexists nofail ] - } - { name = libpipewire-module-protocol-native } - { name = libpipewire-module-client-node } - { name = libpipewire-module-adapter } - { name = libpipewire-module-avb - args = { - # contents of avb.properties can also be placed here - # to have config per server. - } - } -] - -# Extra modules can be loaded here. Setup in default.pa can be moved here -context.exec = [ - #{ path = "pactl" args = "load-module module-always-sink" } -] - -stream.properties = { - #node.latency = 1024/48000 - #node.autoconnect = true - #resample.quality = 4 - #channelmix.normalize = false - #channelmix.mix-lfe = false - #channelmix.upmix = true - #channelmix.lfe-cutoff = 120 - #channelmix.fc-cutoff = 6000 - #channelmix.rear-delay = 12.0 - #channelmix.stereo-widen = 0.1 - #channelmix.hilbert-taps = 0 -} - -avb.properties = { - # the addresses this server listens on - #ifname = "eth0.2" - ifname = "enp3s0" - # These overrides are only applied when running in a vm. - vm.overrides = { - } -} diff --git a/.config/pipewire/pipewire-pulse.conf b/.config/pipewire/pipewire-pulse.conf deleted file mode 100644 index 8a1ac04b..00000000 --- a/.config/pipewire/pipewire-pulse.conf +++ /dev/null @@ -1,147 +0,0 @@ -# PulseAudio config file for PipeWire version "0.3.60" # -# -# Copy and edit this file in /etc/pipewire for system-wide changes -# or in ~/.config/pipewire for local changes. -# -# It is also possible to place a file with an updated section in -# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in -# ~/.config/pipewire/pipewire-pulse.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 = 2 - - #default.clock.quantum-limit = 8192 -} - -context.spa-libs = { - audio.convert.* = audioconvert/libspa-audioconvert - support.* = support/libspa-support -} - -context.modules = [ - { name = libpipewire-module-rt - args = { - nice.level = -11 - #rt.prio = 88 - #rt.time.soft = -1 - #rt.time.hard = -1 - } - flags = [ ifexists nofail ] - } - { name = libpipewire-module-protocol-native } - { name = libpipewire-module-client-node } - { name = libpipewire-module-adapter } - { name = libpipewire-module-metadata } - - { name = libpipewire-module-protocol-pulse - args = { - # contents of pulse.properties can also be placed here - # to have config per server. - } - } -] - -# Extra modules can be loaded here. Setup in default.pa can be moved here -context.exec = [ - { path = "pactl" args = "load-module module-always-sink" } - #{ path = "pactl" args = "load-module module-switch-on-connect" } - #{ path = "/usr/bin/sh" args = "~/.config/pipewire/default.pw" } -] - -stream.properties = { - #node.latency = 1024/48000 - #node.autoconnect = true - #resample.quality = 4 - #channelmix.normalize = false - #channelmix.mix-lfe = false - #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 -} - -pulse.properties = { - # the addresses this server listens on - server.address = [ - "unix:native" - #"unix:/tmp/something" # absolute paths may be used - #"tcp:4713" # IPv4 and IPv6 on all addresses - #"tcp:[::]:9999" # IPv6 on all addresses - #"tcp:127.0.0.1:8888" # IPv4 on a single address - # - #{ address = "tcp:4713" # address - # max-clients = 64 # maximum number of clients - # listen-backlog = 32 # backlog in the server listen queue - # client.access = "restricted" # permissions for clients - #} - ] - #pulse.min.req = 256/48000 # 5ms - #pulse.default.req = 960/48000 # 20 milliseconds - #pulse.min.frag = 256/48000 # 5ms - #pulse.default.frag = 96000/48000 # 2 seconds - #pulse.default.tlength = 96000/48000 # 2 seconds - #pulse.min.quantum = 256/48000 # 5ms - #pulse.default.format = F32 - #pulse.default.position = [ FL FR ] - # These overrides are only applied when running in a vm. - vm.overrides = { - pulse.min.quantum = 1024/48000 # 22ms - } -} - -# client/stream specific properties -pulse.rules = [ - { - matches = [ - { - # all keys must match the value. ~ starts regex. - #client.name = "Firefox" - #application.process.binary = "teams" - #application.name = "~speech-dispatcher.*" - } - ] - actions = { - update-props = { - #node.latency = 512/48000 - } - # Possible quirks:" - # force-s16-info forces sink and source info as S16 format - # remove-capture-dont-move removes the capture DONT_MOVE flag - #quirks = [ ] - } - } - { - # skype does not want to use devices that don't have an S16 sample format. - matches = [ - { application.process.binary = "teams" } - { application.process.binary = "teams-insiders" } - { application.process.binary = "skypeforlinux" } - ] - actions = { quirks = [ force-s16-info ] } - } - { - # firefox marks the capture streams as don't move and then they - # can't be moved with pavucontrol or other tools. - matches = [ { application.process.binary = "firefox" } ] - actions = { quirks = [ remove-capture-dont-move ] } - } - { - # speech dispatcher asks for too small latency and then underruns. - matches = [ { application.name = "~speech-dispatcher*" } ] - actions = { - update-props = { - pulse.min.req = 1024/48000 # 21ms - pulse.min.quantum = 1024/48000 # 21ms - } - } - } -] diff --git a/.config/pipewire/pipewire.conf b/.config/pipewire/pipewire.conf deleted file mode 100644 index e3c2ead4..00000000 --- a/.config/pipewire/pipewire.conf +++ /dev/null @@ -1,259 +0,0 @@ -# Daemon config file for PipeWire version "0.3.60" # -# -# Copy and edit this file in /etc/pipewire for system-wide changes -# or in ~/.config/pipewire for local changes. -# -# It is also possible to place a file with an updated section in -# /etc/pipewire/pipewire.conf.d/ for system-wide changes or in -# ~/.config/pipewire/pipewire.conf.d/ for local changes. -# - -context.properties = { - ## Configure properties in the system. - #library.name.system = support/libspa-support - #context.data-loop.library.name.system = support/libspa-support - #support.dbus = true - link.max-buffers = 64 - #link.max-buffers = 16 # version < 3 clients can't handle more - #mem.warn-mlock = false - #mem.allow-mlock = true - #mem.mlock-all = false - #clock.power-of-two-quantum = true - #log.level = 2 - #cpu.zero.denormals = false - - core.daemon = true # listening for socket connections - core.name = pipewire-0 # core name and socket name - - ## Properties for the DSP configuration. - default.clock.rate = 44100 - default.clock.allowed-rates = [ 44100 48000 ] - default.clock.quantum = 1024 - default.clock.min-quantum = 16 - default.clock.max-quantum = 2048 - #default.clock.quantum-limit = 8192 - #default.video.width = 640 - #default.video.height = 480 - #default.video.rate.num = 25 - #default.video.rate.denom = 1 - # - #settings.check-quantum = false - #settings.check-rate = false - # - # These overrides are only applied when running in a vm. - vm.overrides = { - default.clock.min-quantum = 1024 - } -} - -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 - avb.* = avb/libspa-avb - api.alsa.* = alsa/libspa-alsa - api.v4l2.* = v4l2/libspa-v4l2 - api.libcamera.* = libcamera/libspa-libcamera - api.bluez5.* = bluez5/libspa-bluez5 - api.vulkan.* = vulkan/libspa-vulkan - api.jack.* = jack/libspa-jack - support.* = support/libspa-support - #videotestsrc = videotestsrc/libspa-videotestsrc - #audiotestsrc = audiotestsrc/libspa-audiotestsrc -} - -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. This uses - # RTKit if the user doesn't have permission to use regular realtime - # scheduling. - { name = libpipewire-module-rt - args = { - nice.level = -11 - #rt.prio = 88 - #rt.time.soft = -1 - #rt.time.hard = -1 - } - flags = [ ifexists nofail ] - } - - # The native communication protocol. - { name = libpipewire-module-protocol-native } - - # The profile module. Allows application to access profiler - # and performance data. It provides an interface that is used - # by pw-top and pw-profiler. - { name = libpipewire-module-profiler } - - # Allows applications to create metadata objects. It creates - # a factory for Metadata objects. - { name = libpipewire-module-metadata } - - # Creates a factory for making devices that run in the - # context of the PipeWire server. - { name = libpipewire-module-spa-device-factory } - - # Creates a factory for making nodes that run in the - # context of the PipeWire server. - { name = libpipewire-module-spa-node-factory } - - # 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 } - - # The portal module monitors the PID of the portal process - # and tags connections with the same PID as portal - # connections. - { name = libpipewire-module-portal - flags = [ ifexists nofail ] - } - - # The access module can perform access checks and block - # new clients. - { name = libpipewire-module-access - args = { - # access.allowed to list an array of paths of allowed - # apps. - #access.allowed = [ - # /usr/bin/pipewire-media-session - #] - - # An array of rejected paths. - #access.rejected = [ ] - - # An array of paths with restricted access. - #access.restricted = [ ] - - # Anything not in the above lists gets assigned the - # access.force permission. - #access.force = flatpak - } - } - - # Makes a factory for wrapping nodes in an adapter with a - # converter and resampler. - { name = libpipewire-module-adapter } - - # Makes a factory for creating links between ports. - { name = libpipewire-module-link-factory } - - # Provides factories to make session manager objects. - { name = libpipewire-module-session-manager } - - # Use libcanberra to play X11 Bell - { name = libpipewire-module-x11-bell - args = { - #sink.name = "" - #sample.name = "bell-window-system" - #x11.display = null - #x11.xauthority = null - } - flags = [ ifexists nofail ] - } -] - -context.objects = [ - #{ factory = - # [ args = { = ... } ] - # [ flags = [ [ nofail ] ] - #} - # - # Creates an object from a PipeWire factory with the given parameters. - # If nofail is given, errors are ignored (and no object is created). - # - #{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc Spa:Pod:Object:Param:Props:patternType = 1 } } - #{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] } - #{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } } - #{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } } - #{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test } } - #{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } } - - # A default dummy driver. This handles nodes marked with the "node.always-driver" - # property when no other driver is currently active. JACK clients need this. - { factory = spa-node-factory - args = { - factory.name = support.node.driver - node.name = Dummy-Driver - node.group = pipewire.dummy - priority.driver = 20000 - } - } - { factory = spa-node-factory - args = { - factory.name = support.node.driver - node.name = Freewheel-Driver - priority.driver = 19000 - node.group = pipewire.freewheel - node.freewheel = true - } - } - # This creates a new Source node. It will have input ports - # that you can link, to provide audio for this source. - #{ factory = adapter - # args = { - # factory.name = support.null-audio-sink - # node.name = "my-mic" - # node.description = "Microphone" - # media.class = "Audio/Source/Virtual" - # audio.position = "FL,FR" - # } - #} - - # This creates a single PCM source device for the given - # alsa device path hw:0. You can change source to sink - # to make a sink in the same way. - #{ factory = adapter - # args = { - # factory.name = api.alsa.pcm.source - # node.name = "alsa-source" - # node.description = "PCM Source" - # media.class = "Audio/Source" - # api.alsa.path = "hw:0" - # api.alsa.period-size = 1024 - # api.alsa.headroom = 0 - # api.alsa.disable-mmap = false - # api.alsa.disable-batch = false - # audio.format = "S16LE" - # audio.rate = 48000 - # audio.channels = 2 - # audio.position = "FL,FR" - # } - #} -] - -context.exec = [ - #{ path = [ args = "" ] } - # - # Execute the given program with arguments. - # - # You can optionally start the session manager here, - # but it is better to start it as a systemd service. - # Run the session manager with -h for options. - # - #{ path = "/usr/bin/pipewire-media-session" args = "" } - # - # You can optionally start the pulseaudio-server here as well - # but it is better to start it as a systemd service. - # It can be interesting to start another daemon here that listens - # on another address with the -a option (eg. -a tcp:4713). - # - #{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" } -] diff --git a/.github/README.md b/.github/README.md index 54dca54a..7dfa3326 100644 --- a/.github/README.md +++ b/.github/README.md @@ -113,7 +113,7 @@ Here is all the information about my setup: | **Notification Daemon/Center** | [swaync](https://github.com/ErikReider/SwayNotificationCenter) [:gear:](../.config/swaync/) | | **OSD Popup** | [swayosd](https://github.com/ErikReider/SwayOSD) | | **Bar** | 💖 [waybar](https://github.com/Alexays/Waybar) [:gear:](../.config/waybar/) | -| **Audio Daemon** | [pipewire](https://pipewire.org/) [:gear:](../.config/pipewire/) | +| **Audio Daemon** | [pipewire](https://pipewire.org/) | | **Application Launcher** | 💖 [rofi](https://github.com/lbonn/rofi) [:gear:](../.config/rofi/) | | **Firewall** | [ufw](https://wiki.archlinux.org/title/ufw) | | **Clipboard Manager** | [wl-clipboard](https://github.com/bugaevc/wl-clipboard) (with [cliphist](https://github.com/sentriz/cliphist)) |