## The WirePlumber ALSA configuration

wireplumber.settings = {
  ## The priority for device reservation
  # monitor.alsa.reserve-priority = -20

  ## The application name for device reservation
  # monitor.alsa.reserve-application-name = WirePlumber
}

monitor.alsa.properties = {
  ## The properties used when constructing the 'api.alsa.enum.udev' plugin
}

monitor.alsa-midi.properties = {
  ## MIDI bridge node properties

  ## Name set for the node with ALSA MIDI ports
  # node.name = "Midi-Bridge"

  ## Removes longname/number from MIDI port names
  # api.alsa.disable-longname = false
}

monitor.alsa.rules = [
  ## The list of monitor rules

  ## This rule example allows changing properties on all ALSA devices.
  # {
  #   matches = [
  #     {
  #       ## This matches all cards.
  #       device.name = "~alsa_card.*"
  #     }
  #   ]
  #   actions = {
  #     update-props = {
  #       ## Use ALSA-Card-Profile devices. They use UCM or the profile
  #       ## configuration to configure the device and mixer settings.
  #       api.alsa.use-acp = true
  #
  #       ## Use UCM instead of ACP when available.
  #       ## Depends on api.alsa.use-acp being enabled as well
  #       api.alsa.use-ucm = true
  #
  #       ## Don't use the hardware mixer for volume control. It
  #       ## will only use software volume. The mixer is still used
  #       ## to mute unused paths based on the selected port.
  #       api.alsa.soft-mixer = false
  #
  #       ## Ignore decibel settings of the driver. Can be used to
  #       ## work around buggy drivers that report wrong values.
  #       api.alsa.ignore-dB = false
  #
  #       ## The profile set to use for the device. Usually this is
  #       ## "default.conf" but can be changed with a udev rule or here.
  #       device.profile-set = "profileset-name"
  #
  #       ## The default active profile. Is by default set to "Off".
  #       device.profile = "default profile name"
  #
  #       ## Other properties can be set here.
  #       device.nick = "My Device"
  #
  #       ## Whether to disable the device or not
  #       device.disabled = false
  #     }
  #   }
  # }

  ## This rule example allows changing properties on all ALSA nodes.
  # {
  #   matches = [
  #     {
  #       ## Matches all sources.
  #       node.name = "~alsa_input.*"
  #     }
  #     {
  #       ## Matches all sinks.
  #       node.name = "~alsa_output.*"
  #     }
  #   ]
  #   actions = {
  #     update-props = {
  #       node.nick              = "My Node"
  #       node.description       = "My Node Description"
  #       priority.driver        = 100
  #       priority.session       = 100
  #       node.pause-on-idle     = false
  #       monitor.channel-volumes = false
  #       resample.quality       = 4
  #       resample.disable       = false
  #       channelmix.normalize   = false
  #       channelmix.mix-lfe     = false
  #       channelmix.upmix       = true
  #
  #       ## only "psd", "none" or "simple" values are accepted
  #       channelmix.upmix-method = "psd"
  #
  #       channelmix.lfe-cutoff  = 150
  #       channelmix.fc-cutoff   = 12000
  #       channelmix.rear-delay  = 12.0
  #       channelmix.stereo-widen = 0.0
  #       channelmix.hilbert-taps = 0
  #       channelmix.disable     = false
  #       dither.noise           = 0
  #       dither.method          = "none"
  #       audio.channels         = 2
  #       audio.format           = "S16LE"
  #       audio.rate             = 44100
  #       audio.allowed-rates    = [32000, 96000]
  #       audio.position         = [FL, FR]
  #       api.alsa.period-size   = 1024
  #       api.alsa.period-num    = 2
  #       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"
  #
  #       ## 0 disables suspend
  #       session.suspend-timeout-seconds = 5
  #       node.disabled = false
  #     }
  #   }
  # }
]
