Sound

From Unreal Tournament 2004 MiA Wiki
Revision as of 17:54, 20 February 2026 by Holyspam (talk | contribs) (File path)

OpenAL Soft

Patch 3374 for Unreal Tournament 2004 replaces the legacy DirectSound-based OpenAL with OpenAL Soft, modernizing the game’s audio backend for improved compatibility, stability, and 3D positional sound on current systems.

Audio Features & Options

  • HRTF support – Enhanced 3D positional audio for headphones
  • Selectable HRTF modes – Enable/disable and profile selection
  • Playback device selection – Choose specific output devices
  • Stereo / 5.1 / 7.1 support – Improved surround handling
  • Sample rate & resampler settings – Quality/performance tuning
  • Ambisonics support – B-Format decoding for advanced spatial audio workflows
  • Configurable decoders & backends – Select output backends (e.g., WASAPI, PulseAudio, PipeWire) and decoder behavior

Configuration files

Audio behavior can be customized through files containing settings for different use cases (e.g., competitive HRTF headphones, high-quality surround, low-latency setup).

You can place the file next to the game executable and OpenAL Soft will override the system or user config Common adjustable options include:

  • hrtf = true/false
  • frequency = <sample rate>
  • channels = stereo / 5.1 / 7.1
  • resampler = <type>
  • period_size and periods (latency tuning)

Presets

Stereo speakers (2.0 or 2.1)

Windows

## CONFIG - Default
## General stuff
##
[General]

## stereo-mode:
#  Specifies if stereo output is treated as being headphones or speakers. With
#  headphones, HRTF or crossfeed filters may be used for better audio quality.
#  Valid settings are auto, speakers, and headphones.
stereo-mode=speakers

#  Sets the default output channel configuration. If left unspecified, one will
#  try to be detected from the system, with a fallback to stereo. The available
#  values are: mono, stereo, quad, surround51, surround61, surround71,
#  surround714, 3d71, ambi1, ambi2, ambi3, ambi4. Note that the ambi*
#  configurations output ambisonic channels of the given order (using ACN
#  ordering and SN3D normalization by default), which need to be decoded to
#  play correctly on speakers.
channels=stereo

## stereo-encoding:
#  Specifies the default encoding method for stereo output. Valid values are:
#  basic - Standard amplitude panning (aka pair-wise, stereo pair, etc) between
#          -30 and +30 degrees.
#  uhj - Creates a stereo-compatible two-channel UHJ mix, which encodes some
#        continuous surround sound information into stereo output that can be
#        decoded with a surround sound receiver.
#  tsme - Creates a stereo-compatible two-channel surround matrix encoded mix,
#         which encodes some discrete surround sound and height information
#         into the stereo output that can be decoded with a surround sound
#         receiver.
#  hrtf - Uses filters to provide better spatialization of sounds while using
#         stereo headphones.
#  If crossfeed filters are used, basic stereo mixing is used.
stereo-encoding=basic

## hrtf-mode:
#  Specifies the rendering mode for HRTF processing. Setting the mode to full
#  (default) applies a unique HRIR filter to each source given its relative
#  location, providing the clearest directional response at the cost of the
#  highest CPU usage. Setting the mode to ambi1, ambi2, ambi3, or ambi4 will
#  instead mix to an ambisonic buffer of the given order, then decode that
#  buffer with HRTF filters. Ambi1 has the lowest CPU usage, replacing the per-
#  source HRIR filter for a simple 4-channel panning mix, but retains full 3D
#  placement at the cost of a more diffuse response. Higher ambisonic orders
#  increasingly improve the directional clarity, at the cost of more CPU usage
#  (still less than "full", given some number of active sources).
#hrtf-mode=full

## resampler: (global)
#  Selects the default resampler used when mixing sources. Valid values are:
#  point - nearest sample, no interpolation
#  linear - extrapolates samples using a linear slope between samples
#  spline - extrapolates samples using a Catmull-Rom spline
#  gaussian - extrapolates samples using a 4-point Gaussian filter
#  bsinc12 - extrapolates samples using a band-limited Sinc filter (varying between 12 and 24 points, with anti-aliasing)
#  fast_bsinc12 - same as bsinc12, except without interpolation between down-sampling scales
#  bsinc24 - extrapolates samples using a band-limited Sinc filter (varying between 24 and 48 points, with anti-aliasing)
#  fast_bsinc24 - same as bsinc24, except without interpolation between down-sampling scales
#  bsinc48 - extrapolates samples using a band-limited Sinc filter (48 points, with anti-aliasing)
#  fast_bsinc48 - same as bsinc48, except without interpolation between down-sampling scales
resampler=spline

## period_size:
#  Sets the update period size, in sample frames. This is the number of frames
#  needed for each mixing update. Acceptable values range between 64 and 8192.
#  If left unspecified it will default to 512 sample frames (~10.7ms).
period_size=512

## periods:
#  Sets the number of update periods. Higher values create a larger mix ahead,
#  which helps protect against skips when the CPU is under load, but increases
#  the delay between a sound getting mixed and being heard. Acceptable values
#  range between 2 and 16.
periods=3

## sources:
#  Sets the maximum number of allocatable sources. Lower values may help for
#  systems with apps that try to play more sounds than the CPU can handle.
sources=256

## slots:
#  Sets the maximum number of Auxiliary Effect Slots an app can create. A slot
#  can use a non-negligible amount of CPU time if an effect is set on it even
#  if no sources are feeding it, so this may help when apps use more than the
#  system can handle.
slots=64

## front-stablizer:
#  Applies filters to "stablize" front sound imaging. A psychoacoustic method
#  is used to generate a front-center channel signal from the front-left and
#  front-right channels, improving the front response by reducing the combing
#  artifacts and phase errors. Consequently, it will only work with channel
#  configurations that include front-left, front-right, and front-center.
#front-stablizer=false

## volume-adjust:
#  A global volume adjustment for source output, expressed in decibels. The
#  value is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will
#  be a scale of 4x, etc. Similarly, -6 will be x1/2, and -12 is about x1/4. A
#  value of 0 means no change.
#volume-adjust=0

## cf_level:
#  Sets the crossfeed level for stereo output. Valid values are:
#  0 - No crossfeed
#  1 - Low crossfeed
#  2 - Middle crossfeed
#  3 - High crossfeed (virtual speakers are closer to itself)
#  4 - Low easy crossfeed
#  5 - Middle easy crossfeed
#  6 - High easy crossfeed
#  Users of headphones may want to try various settings. Has no effect on non-
#  stereo modes.
#cf_level=0


##
## Ambisonic decoder stuff
##
[decoder]
## hq-mode:
#  Enables a high-quality ambisonic decoder. This mode is capable of frequency-
#  dependent processing, creating a better reproduction of 3D sound rendering
#  over surround sound speakers.
#hq-mode=true

## distance-comp:
#  Enables compensation for the speakers' relative distances to the listener.
#  This applies the necessary delays and attenuation to make the speakers
#  behave as though they are all equidistant, which is important for proper
#  playback of 3D sound rendering. Requires the proper distances to be
#  specified in the decoder configuration file.
#distance-comp=true

## nfc:
#  Enables near-field control filters. This simulates and compensates for low-
#  frequency effects caused by the curvature of nearby sound-waves, which
#  creates a more realistic perception of sound distance with surround sound
#  output. Note that the effect may be stronger or weaker than intended if the
#  application doesn't use or specify an appropriate unit scale, or if
#  incorrect speaker distances are set. For HRTF output, hrtf-mode must be set
#  to one of the ambi* values for this to function.
#nfc=false

## speaker-dist:
#  Specifies the speaker distance in meters, used by the near-field control
#  filters with surround sound output. For ambisonic output modes, this value
#  is the basis for the NFC-HOA Reference Delay parameter (calculated as
#  delay_seconds=speaker_dist/343.3). This value is not used when a decoder
#  configuration is set for the output mode (since they specify the per-speaker
#  distances, overriding this setting), or when the NFC filters are off. Valid
#  values range from 0.1 to 10.
#speaker-dist=1


##
## Reverb effect stuff (includes EAX reverb)
##
[reverb]

## boost: (global)
#  A global amplification for reverb output, expressed in decibels. The value
#  is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will be a
#  scale of 4x, etc. Similarly, -6 will be about half, and -12 about 1/4th. A
#  value of 0 means no change.
boost=0

##
## WASAPI backend stuff
##
[wasapi]

## spatial-api:
#  Specifies whether to use a Spatial Audio stream for playback. This may
#  provide expanded capabilities for surround sound and with-height speaker
#  configurations. Very experimental.
#spatial-api=false

## exclusive-mode:
#  Enables Exlusive mode for playback devices. This uses the device directly,
#  allowing lower latencies but prevents the device from being used multiple
#  times simultaneously. Ignores the periods setting when enabled, as WASAPI
#  automatically sets a buffer size based on the period size.
#exclusive-mode=true

## allow-resampler:
#  Specifies whether to allow an extra resampler pass on the output. Enabling
#  this will allow the playback device to be set to a different sample rate
#  than the actual output can accept, causing the backend to apply its own
#  resampling pass after OpenAL Soft mixes the sources and processes effects
#  for output.
allow-resampler=true

##
## DirectSound backend stuff
##
[dsound]

##
## Windows Multimedia backend stuff
##
[winmm]

##
## EAX extensions stuff
##
[eax]

## enable: (global)
#  Sets whether to enable EAX extensions or not.
enable=true

Linux

## CONFIG - Stereo Speakers
## General stuff
##
[General]

## stereo-mode:
#  Specifies if stereo output is treated as being headphones or speakers. With
#  headphones, HRTF or crossfeed filters may be used for better audio quality.
#  Valid settings are auto, speakers, and headphones.
stereo-mode=speakers

#  Sets the default output channel configuration. If left unspecified, one will
#  try to be detected from the system, with a fallback to stereo. The available
#  values are: mono, stereo, quad, surround51, surround61, surround71,
#  surround714, 3d71, ambi1, ambi2, ambi3, ambi4. Note that the ambi*
#  configurations output ambisonic channels of the given order (using ACN
#  ordering and SN3D normalization by default), which need to be decoded to
#  play correctly on speakers.
channels=stereo

## stereo-encoding:
#  Specifies the default encoding method for stereo output. Valid values are:
#  basic - Standard amplitude panning (aka pair-wise, stereo pair, etc) between
#          -30 and +30 degrees.
#  uhj - Creates a stereo-compatible two-channel UHJ mix, which encodes some
#        continuous surround sound information into stereo output that can be
#        decoded with a surround sound receiver.
#  tsme - Creates a stereo-compatible two-channel surround matrix encoded mix,
#         which encodes some discrete surround sound and height information
#         into the stereo output that can be decoded with a surround sound
#         receiver.
#  hrtf - Uses filters to provide better spatialization of sounds while using
#         stereo headphones.
#  If crossfeed filters are used, basic stereo mixing is used.
stereo-encoding=basic

## hrtf-mode:
#  Specifies the rendering mode for HRTF processing. Setting the mode to full
#  (default) applies a unique HRIR filter to each source given its relative
#  location, providing the clearest directional response at the cost of the
#  highest CPU usage. Setting the mode to ambi1, ambi2, ambi3, or ambi4 will
#  instead mix to an ambisonic buffer of the given order, then decode that
#  buffer with HRTF filters. Ambi1 has the lowest CPU usage, replacing the per-
#  source HRIR filter for a simple 4-channel panning mix, but retains full 3D
#  placement at the cost of a more diffuse response. Higher ambisonic orders
#  increasingly improve the directional clarity, at the cost of more CPU usage
#  (still less than "full", given some number of active sources).
#hrtf-mode=full

## resampler: (global)
#  Selects the default resampler used when mixing sources. Valid values are:
#  point - nearest sample, no interpolation
#  linear - extrapolates samples using a linear slope between samples
#  spline - extrapolates samples using a Catmull-Rom spline
#  gaussian - extrapolates samples using a 4-point Gaussian filter
#  bsinc12 - extrapolates samples using a band-limited Sinc filter (varying between 12 and 24 points, with anti-aliasing)
#  fast_bsinc12 - same as bsinc12, except without interpolation between down-sampling scales
#  bsinc24 - extrapolates samples using a band-limited Sinc filter (varying between 24 and 48 points, with anti-aliasing)
#  fast_bsinc24 - same as bsinc24, except without interpolation between down-sampling scales
#  bsinc48 - extrapolates samples using a band-limited Sinc filter (48 points, with anti-aliasing)
#  fast_bsinc48 - same as bsinc48, except without interpolation between down-sampling scales
resampler=spline

## period_size:
#  Sets the update period size, in sample frames. This is the number of frames
#  needed for each mixing update. Acceptable values range between 64 and 8192.
#  If left unspecified it will default to 512 sample frames (~10.7ms).
period_size=512

## periods:
#  Sets the number of update periods. Higher values create a larger mix ahead,
#  which helps protect against skips when the CPU is under load, but increases
#  the delay between a sound getting mixed and being heard. Acceptable values
#  range between 2 and 16.
periods=3

## sources:
#  Sets the maximum number of allocatable sources. Lower values may help for
#  systems with apps that try to play more sounds than the CPU can handle.
sources=256

## slots:
#  Sets the maximum number of Auxiliary Effect Slots an app can create. A slot
#  can use a non-negligible amount of CPU time if an effect is set on it even
#  if no sources are feeding it, so this may help when apps use more than the
#  system can handle.
slots=64

## front-stablizer:
#  Applies filters to "stablize" front sound imaging. A psychoacoustic method
#  is used to generate a front-center channel signal from the front-left and
#  front-right channels, improving the front response by reducing the combing
#  artifacts and phase errors. Consequently, it will only work with channel
#  configurations that include front-left, front-right, and front-center.
#front-stablizer=false

## volume-adjust:
#  A global volume adjustment for source output, expressed in decibels. The
#  value is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will
#  be a scale of 4x, etc. Similarly, -6 will be x1/2, and -12 is about x1/4. A
#  value of 0 means no change.
#volume-adjust=0

## cf_level:
#  Sets the crossfeed level for stereo output. Valid values are:
#  0 - No crossfeed
#  1 - Low crossfeed
#  2 - Middle crossfeed
#  3 - High crossfeed (virtual speakers are closer to itself)
#  4 - Low easy crossfeed
#  5 - Middle easy crossfeed
#  6 - High easy crossfeed
#  Users of headphones may want to try various settings. Has no effect on non-
#  stereo modes.
#cf_level=0


##
## Ambisonic decoder stuff
##
[decoder]
## hq-mode:
#  Enables a high-quality ambisonic decoder. This mode is capable of frequency-
#  dependent processing, creating a better reproduction of 3D sound rendering
#  over surround sound speakers.
#hq-mode=true

## distance-comp:
#  Enables compensation for the speakers' relative distances to the listener.
#  This applies the necessary delays and attenuation to make the speakers
#  behave as though they are all equidistant, which is important for proper
#  playback of 3D sound rendering. Requires the proper distances to be
#  specified in the decoder configuration file.
#distance-comp=true

## nfc:
#  Enables near-field control filters. This simulates and compensates for low-
#  frequency effects caused by the curvature of nearby sound-waves, which
#  creates a more realistic perception of sound distance with surround sound
#  output. Note that the effect may be stronger or weaker than intended if the
#  application doesn't use or specify an appropriate unit scale, or if
#  incorrect speaker distances are set. For HRTF output, hrtf-mode must be set
#  to one of the ambi* values for this to function.
#nfc=false

## speaker-dist:
#  Specifies the speaker distance in meters, used by the near-field control
#  filters with surround sound output. For ambisonic output modes, this value
#  is the basis for the NFC-HOA Reference Delay parameter (calculated as
#  delay_seconds=speaker_dist/343.3). This value is not used when a decoder
#  configuration is set for the output mode (since they specify the per-speaker
#  distances, overriding this setting), or when the NFC filters are off. Valid
#  values range from 0.1 to 10.
#speaker-dist=1


##
## Reverb effect stuff (includes EAX reverb)
##
[reverb]

## boost: (global)
#  A global amplification for reverb output, expressed in decibels. The value
#  is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will be a
#  scale of 4x, etc. Similarly, -6 will be about half, and -12 about 1/4th. A
#  value of 0 means no change.
boost=0

##
## ALSA backend stuff
##
[alsa]

## allow-resampler:
#  Specifies whether to allow ALSA's built-in resampler. Enabling this will
#  allow the playback device to be set to a different sample rate than the
#  actual output, causing ALSA to apply its own resampling pass after OpenAL
#  Soft resamples and mixes the sources and effects for output.
allow-resampler=true

## mmap:
#  Sets whether to try using mmap mode (helps reduce latencies and CPU
#  consumption). If mmap isn't available, it will automatically fall back to
#  non-mmap mode. True, yes, on, and non-0 values will attempt to use mmap. 0
#  and anything else will force mmap off.
mmap=true

##
## PipeWire backend stuff
##
[pipewire]

## assume-audio: (global)
#  Causes the backend to succeed initialization even if PipeWire reports no
#  audio support. Currently, audio support is detected by the presence of audio
#  source or sink nodes, although this can cause false negatives in cases where
#  device availability during library initialization is spotty. Future versions
#  of PipeWire are expected to have a more robust method to test audio support,
#  but in the mean time this can be set to true to assume PipeWire has audio
#  support even when no nodes may be reported at initialization time.
#assume-audio=false

## rt-mix:
#  Renders samples directly in the real-time processing callback. This allows
#  for lower latency and less overall CPU utilization, but can increase the
#  risk of underruns when increasing the amount of work the mixer needs to do.
#rt-mix=false

##
## PulseAudio backend stuff
##
[pulse]

## spawn-server: (global)
#  Attempts to autospawn a PulseAudio server whenever needed (initializing the
#  backend, enumerating devices, etc). Setting autospawn to false in Pulse's
#  client.conf will still prevent autospawning even if this is set to true.
#spawn-server=false

## allow-moves: (global)
#  Allows PulseAudio to move active streams to different devices. Note that the
#  device specifier (seen by applications) will not be updated when this
#  occurs, and neither will the AL device configuration (sample rate, format,
#  etc).
#allow-moves=true

## fix-rate:
#  Specifies whether to match the playback stream's sample rate to the device's
#  sample rate. Enabling this forces OpenAL Soft to mix sources and effects
#  directly to the actual output rate, avoiding a second resample pass by the
#  PulseAudio server.
#fix-rate=false

## adjust-latency:
#  Attempts to adjust the overall latency of device playback. Note that this
#  may have adverse effects on the resulting internal buffer sizes and mixing
#  updates, leading to performance problems and drop-outs. However, if the
#  PulseAudio server is creating a lot of latency, enabling this may help make
#  it more manageable.
#adjust-latency=false

##
## JACK backend stuff
##
[jack]

## spawn-server: (global)
#  Attempts to autospawn a JACK server when initializing.
#spawn-server=false

## rt-mix:
#  Renders samples directly in the real-time processing callback. This allows
#  for lower latency and less overall CPU utilization, but can increase the
#  risk of underruns when increasing the amount of work the mixer needs to do.
rt-mix=true

## connect-ports:
#  Attempts to automatically connect the client ports to physical server ports.
#  Client ports that fail to connect will leave the remaining channels
#  unconnected and silent (the device format won't change to accommodate).
connect-ports=true
Stereo headphones (2.0 or 2.1)

Windows

## CONFIG - Headphones - Basic Stereo
## General stuff
##
[General]

## stereo-mode:
#  Specifies if stereo output is treated as being headphones or speakers. With
#  headphones, HRTF or crossfeed filters may be used for better audio quality.
#  Valid settings are auto, speakers, and headphones.
stereo-mode=headphones

#  Sets the default output channel configuration. If left unspecified, one will
#  try to be detected from the system, with a fallback to stereo. The available
#  values are: mono, stereo, quad, surround51, surround61, surround71,
#  surround714, 3d71, ambi1, ambi2, ambi3, ambi4. Note that the ambi*
#  configurations output ambisonic channels of the given order (using ACN
#  ordering and SN3D normalization by default), which need to be decoded to
#  play correctly on speakers.
channels=stereo

## stereo-encoding:
#  Specifies the default encoding method for stereo output. Valid values are:
#  basic - Standard amplitude panning (aka pair-wise, stereo pair, etc) between
#          -30 and +30 degrees.
#  uhj - Creates a stereo-compatible two-channel UHJ mix, which encodes some
#        continuous surround sound information into stereo output that can be
#        decoded with a surround sound receiver.
#  tsme - Creates a stereo-compatible two-channel surround matrix encoded mix,
#         which encodes some discrete surround sound and height information
#         into the stereo output that can be decoded with a surround sound
#         receiver.
#  hrtf - Uses filters to provide better spatialization of sounds while using
#         stereo headphones.
#  If crossfeed filters are used, basic stereo mixing is used.
stereo-encoding=basic

## hrtf-mode:
#  Specifies the rendering mode for HRTF processing. Setting the mode to full
#  (default) applies a unique HRIR filter to each source given its relative
#  location, providing the clearest directional response at the cost of the
#  highest CPU usage. Setting the mode to ambi1, ambi2, ambi3, or ambi4 will
#  instead mix to an ambisonic buffer of the given order, then decode that
#  buffer with HRTF filters. Ambi1 has the lowest CPU usage, replacing the per-
#  source HRIR filter for a simple 4-channel panning mix, but retains full 3D
#  placement at the cost of a more diffuse response. Higher ambisonic orders
#  increasingly improve the directional clarity, at the cost of more CPU usage
#  (still less than "full", given some number of active sources).
#hrtf-mode=full

## resampler: (global)
#  Selects the default resampler used when mixing sources. Valid values are:
#  point - nearest sample, no interpolation
#  linear - extrapolates samples using a linear slope between samples
#  spline - extrapolates samples using a Catmull-Rom spline
#  gaussian - extrapolates samples using a 4-point Gaussian filter
#  bsinc12 - extrapolates samples using a band-limited Sinc filter (varying between 12 and 24 points, with anti-aliasing)
#  fast_bsinc12 - same as bsinc12, except without interpolation between down-sampling scales
#  bsinc24 - extrapolates samples using a band-limited Sinc filter (varying between 24 and 48 points, with anti-aliasing)
#  fast_bsinc24 - same as bsinc24, except without interpolation between down-sampling scales
#  bsinc48 - extrapolates samples using a band-limited Sinc filter (48 points, with anti-aliasing)
#  fast_bsinc48 - same as bsinc48, except without interpolation between down-sampling scales
resampler=spline

## period_size:
#  Sets the update period size, in sample frames. This is the number of frames
#  needed for each mixing update. Acceptable values range between 64 and 8192.
#  If left unspecified it will default to 512 sample frames (~10.7ms).
period_size=512

## periods:
#  Sets the number of update periods. Higher values create a larger mix ahead,
#  which helps protect against skips when the CPU is under load, but increases
#  the delay between a sound getting mixed and being heard. Acceptable values
#  range between 2 and 16.
periods=3

## sources:
#  Sets the maximum number of allocatable sources. Lower values may help for
#  systems with apps that try to play more sounds than the CPU can handle.
sources=256

## slots:
#  Sets the maximum number of Auxiliary Effect Slots an app can create. A slot
#  can use a non-negligible amount of CPU time if an effect is set on it even
#  if no sources are feeding it, so this may help when apps use more than the
#  system can handle.
slots=64

## front-stablizer:
#  Applies filters to "stablize" front sound imaging. A psychoacoustic method
#  is used to generate a front-center channel signal from the front-left and
#  front-right channels, improving the front response by reducing the combing
#  artifacts and phase errors. Consequently, it will only work with channel
#  configurations that include front-left, front-right, and front-center.
#front-stablizer=false

## volume-adjust:
#  A global volume adjustment for source output, expressed in decibels. The
#  value is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will
#  be a scale of 4x, etc. Similarly, -6 will be x1/2, and -12 is about x1/4. A
#  value of 0 means no change.
volume-adjust=0

## cf_level:
#  Sets the crossfeed level for stereo output. Valid values are:
#  0 - No crossfeed
#  1 - Low crossfeed
#  2 - Middle crossfeed
#  3 - High crossfeed (virtual speakers are closer to itself)
#  4 - Low easy crossfeed
#  5 - Middle easy crossfeed
#  6 - High easy crossfeed
#  Users of headphones may want to try various settings. Has no effect on non-
#  stereo modes.
#cf_level=0


##
## Ambisonic decoder stuff
##
[decoder]
## hq-mode:
#  Enables a high-quality ambisonic decoder. This mode is capable of frequency-
#  dependent processing, creating a better reproduction of 3D sound rendering
#  over surround sound speakers.
#hq-mode=true

## distance-comp:
#  Enables compensation for the speakers' relative distances to the listener.
#  This applies the necessary delays and attenuation to make the speakers
#  behave as though they are all equidistant, which is important for proper
#  playback of 3D sound rendering. Requires the proper distances to be
#  specified in the decoder configuration file.
#distance-comp=true

## nfc:
#  Enables near-field control filters. This simulates and compensates for low-
#  frequency effects caused by the curvature of nearby sound-waves, which
#  creates a more realistic perception of sound distance with surround sound
#  output. Note that the effect may be stronger or weaker than intended if the
#  application doesn't use or specify an appropriate unit scale, or if
#  incorrect speaker distances are set. For HRTF output, hrtf-mode must be set
#  to one of the ambi* values for this to function.
#nfc=false

## speaker-dist:
#  Specifies the speaker distance in meters, used by the near-field control
#  filters with surround sound output. For ambisonic output modes, this value
#  is the basis for the NFC-HOA Reference Delay parameter (calculated as
#  delay_seconds=speaker_dist/343.3). This value is not used when a decoder
#  configuration is set for the output mode (since they specify the per-speaker
#  distances, overriding this setting), or when the NFC filters are off. Valid
#  values range from 0.1 to 10.
#speaker-dist=1


##
## Reverb effect stuff (includes EAX reverb)
##
[reverb]

## boost: (global)
#  A global amplification for reverb output, expressed in decibels. The value
#  is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will be a
#  scale of 4x, etc. Similarly, -6 will be about half, and -12 about 1/4th. A
#  value of 0 means no change.
boost=0

##
## WASAPI backend stuff
##
[wasapi]

## spatial-api:
#  Specifies whether to use a Spatial Audio stream for playback. This may
#  provide expanded capabilities for surround sound and with-height speaker
#  configurations. Very experimental.
#spatial-api=false

## exclusive-mode:
#  Enables Exlusive mode for playback devices. This uses the device directly,
#  allowing lower latencies but prevents the device from being used multiple
#  times simultaneously. Ignores the periods setting when enabled, as WASAPI
#  automatically sets a buffer size based on the period size.
#exclusive-mode=true

## allow-resampler:
#  Specifies whether to allow an extra resampler pass on the output. Enabling
#  this will allow the playback device to be set to a different sample rate
#  than the actual output can accept, causing the backend to apply its own
#  resampling pass after OpenAL Soft mixes the sources and processes effects
#  for output.
allow-resampler=true

##
## DirectSound backend stuff
##
[dsound]

##
## Windows Multimedia backend stuff
##
[winmm]

##
## EAX extensions stuff
##
[eax]

## enable: (global)
#  Sets whether to enable EAX extensions or not.
enable=true

Linux

## CONFIG - Headphones - Basic Stereo
## General stuff
##
[General]

## stereo-mode:
#  Specifies if stereo output is treated as being headphones or speakers. With
#  headphones, HRTF or crossfeed filters may be used for better audio quality.
#  Valid settings are auto, speakers, and headphones.
stereo-mode=headphones

#  Sets the default output channel configuration. If left unspecified, one will
#  try to be detected from the system, with a fallback to stereo. The available
#  values are: mono, stereo, quad, surround51, surround61, surround71,
#  surround714, 3d71, ambi1, ambi2, ambi3, ambi4. Note that the ambi*
#  configurations output ambisonic channels of the given order (using ACN
#  ordering and SN3D normalization by default), which need to be decoded to
#  play correctly on speakers.
channels=stereo

## stereo-encoding:
#  Specifies the default encoding method for stereo output. Valid values are:
#  basic - Standard amplitude panning (aka pair-wise, stereo pair, etc) between
#          -30 and +30 degrees.
#  uhj - Creates a stereo-compatible two-channel UHJ mix, which encodes some
#        continuous surround sound information into stereo output that can be
#        decoded with a surround sound receiver.
#  tsme - Creates a stereo-compatible two-channel surround matrix encoded mix,
#         which encodes some discrete surround sound and height information
#         into the stereo output that can be decoded with a surround sound
#         receiver.
#  hrtf - Uses filters to provide better spatialization of sounds while using
#         stereo headphones.
#  If crossfeed filters are used, basic stereo mixing is used.
stereo-encoding=basic

## hrtf-mode:
#  Specifies the rendering mode for HRTF processing. Setting the mode to full
#  (default) applies a unique HRIR filter to each source given its relative
#  location, providing the clearest directional response at the cost of the
#  highest CPU usage. Setting the mode to ambi1, ambi2, ambi3, or ambi4 will
#  instead mix to an ambisonic buffer of the given order, then decode that
#  buffer with HRTF filters. Ambi1 has the lowest CPU usage, replacing the per-
#  source HRIR filter for a simple 4-channel panning mix, but retains full 3D
#  placement at the cost of a more diffuse response. Higher ambisonic orders
#  increasingly improve the directional clarity, at the cost of more CPU usage
#  (still less than "full", given some number of active sources).
#hrtf-mode=full

## resampler: (global)
#  Selects the default resampler used when mixing sources. Valid values are:
#  point - nearest sample, no interpolation
#  linear - extrapolates samples using a linear slope between samples
#  spline - extrapolates samples using a Catmull-Rom spline
#  gaussian - extrapolates samples using a 4-point Gaussian filter
#  bsinc12 - extrapolates samples using a band-limited Sinc filter (varying between 12 and 24 points, with anti-aliasing)
#  fast_bsinc12 - same as bsinc12, except without interpolation between down-sampling scales
#  bsinc24 - extrapolates samples using a band-limited Sinc filter (varying between 24 and 48 points, with anti-aliasing)
#  fast_bsinc24 - same as bsinc24, except without interpolation between down-sampling scales
#  bsinc48 - extrapolates samples using a band-limited Sinc filter (48 points, with anti-aliasing)
#  fast_bsinc48 - same as bsinc48, except without interpolation between down-sampling scales
resampler=spline

## period_size:
#  Sets the update period size, in sample frames. This is the number of frames
#  needed for each mixing update. Acceptable values range between 64 and 8192.
#  If left unspecified it will default to 512 sample frames (~10.7ms).
period_size=512

## periods:
#  Sets the number of update periods. Higher values create a larger mix ahead,
#  which helps protect against skips when the CPU is under load, but increases
#  the delay between a sound getting mixed and being heard. Acceptable values
#  range between 2 and 16.
periods=3

## sources:
#  Sets the maximum number of allocatable sources. Lower values may help for
#  systems with apps that try to play more sounds than the CPU can handle.
sources=256

## slots:
#  Sets the maximum number of Auxiliary Effect Slots an app can create. A slot
#  can use a non-negligible amount of CPU time if an effect is set on it even
#  if no sources are feeding it, so this may help when apps use more than the
#  system can handle.
slots=64

## front-stablizer:
#  Applies filters to "stablize" front sound imaging. A psychoacoustic method
#  is used to generate a front-center channel signal from the front-left and
#  front-right channels, improving the front response by reducing the combing
#  artifacts and phase errors. Consequently, it will only work with channel
#  configurations that include front-left, front-right, and front-center.
#front-stablizer=false

## volume-adjust:
#  A global volume adjustment for source output, expressed in decibels. The
#  value is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will
#  be a scale of 4x, etc. Similarly, -6 will be x1/2, and -12 is about x1/4. A
#  value of 0 means no change.
#volume-adjust=0

## cf_level:
#  Sets the crossfeed level for stereo output. Valid values are:
#  0 - No crossfeed
#  1 - Low crossfeed
#  2 - Middle crossfeed
#  3 - High crossfeed (virtual speakers are closer to itself)
#  4 - Low easy crossfeed
#  5 - Middle easy crossfeed
#  6 - High easy crossfeed
#  Users of headphones may want to try various settings. Has no effect on non-
#  stereo modes.
#cf_level=0

##
## Ambisonic decoder stuff
##
[decoder]

## hq-mode:
#  Enables a high-quality ambisonic decoder. This mode is capable of frequency-
#  dependent processing, creating a better reproduction of 3D sound rendering
#  over surround sound speakers.
# hq-mode=true

## distance-comp:
#  Enables compensation for the speakers' relative distances to the listener.
#  This applies the necessary delays and attenuation to make the speakers
#  behave as though they are all equidistant, which is important for proper
#  playback of 3D sound rendering. Requires the proper distances to be
#  specified in the decoder configuration file.
#distance-comp=true

## nfc:
#  Enables near-field control filters. This simulates and compensates for low-
#  frequency effects caused by the curvature of nearby sound-waves, which
#  creates a more realistic perception of sound distance with surround sound
#  output. Note that the effect may be stronger or weaker than intended if the
#  application doesn't use or specify an appropriate unit scale, or if
#  incorrect speaker distances are set. For HRTF output, hrtf-mode must be set
#  to one of the ambi* values for this to function.
#nfc=false

## speaker-dist:
#  Specifies the speaker distance in meters, used by the near-field control
#  filters with surround sound output. For ambisonic output modes, this value
#  is the basis for the NFC-HOA Reference Delay parameter (calculated as
#  delay_seconds=speaker_dist/343.3). This value is not used when a decoder
#  configuration is set for the output mode (since they specify the per-speaker
#  distances, overriding this setting), or when the NFC filters are off. Valid
#  values range from 0.1 to 10.
# speaker-dist=1


##
## Reverb effect stuff (includes EAX reverb)
##
[reverb]

## boost: (global)
#  A global amplification for reverb output, expressed in decibels. The value
#  is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will be a
#  scale of 4x, etc. Similarly, -6 will be about half, and -12 about 1/4th. A
#  value of 0 means no change.
boost=0

##
## ALSA backend stuff
##
[alsa]

## allow-resampler:
#  Specifies whether to allow ALSA's built-in resampler. Enabling this will
#  allow the playback device to be set to a different sample rate than the
#  actual output, causing ALSA to apply its own resampling pass after OpenAL
#  Soft resamples and mixes the sources and effects for output.
allow-resampler=true

## mmap:
#  Sets whether to try using mmap mode (helps reduce latencies and CPU
#  consumption). If mmap isn't available, it will automatically fall back to
#  non-mmap mode. True, yes, on, and non-0 values will attempt to use mmap. 0
#  and anything else will force mmap off.
mmap=true

##
## PipeWire backend stuff
##
[pipewire]

## assume-audio: (global)
#  Causes the backend to succeed initialization even if PipeWire reports no
#  audio support. Currently, audio support is detected by the presence of audio
#  source or sink nodes, although this can cause false negatives in cases where
#  device availability during library initialization is spotty. Future versions
#  of PipeWire are expected to have a more robust method to test audio support,
#  but in the mean time this can be set to true to assume PipeWire has audio
#  support even when no nodes may be reported at initialization time.
#assume-audio=false

## rt-mix:
#  Renders samples directly in the real-time processing callback. This allows
#  for lower latency and less overall CPU utilization, but can increase the
#  risk of underruns when increasing the amount of work the mixer needs to do.
#rt-mix=false

##
## PulseAudio backend stuff
##
[pulse]

## spawn-server: (global)
#  Attempts to autospawn a PulseAudio server whenever needed (initializing the
#  backend, enumerating devices, etc). Setting autospawn to false in Pulse's
#  client.conf will still prevent autospawning even if this is set to true.
#spawn-server=false

## allow-moves: (global)
#  Allows PulseAudio to move active streams to different devices. Note that the
#  device specifier (seen by applications) will not be updated when this
#  occurs, and neither will the AL device configuration (sample rate, format,
#  etc).
#allow-moves=true

## fix-rate:
#  Specifies whether to match the playback stream's sample rate to the device's
#  sample rate. Enabling this forces OpenAL Soft to mix sources and effects
#  directly to the actual output rate, avoiding a second resample pass by the
#  PulseAudio server.
#fix-rate=false

## adjust-latency:
#  Attempts to adjust the overall latency of device playback. Note that this
#  may have adverse effects on the resulting internal buffer sizes and mixing
#  updates, leading to performance problems and drop-outs. However, if the
#  PulseAudio server is creating a lot of latency, enabling this may help make
#  it more manageable.
#adjust-latency=false

##
## JACK backend stuff
##
[jack]

## spawn-server: (global)
#  Attempts to autospawn a JACK server when initializing.
#spawn-server=false

## rt-mix:
#  Renders samples directly in the real-time processing callback. This allows
#  for lower latency and less overall CPU utilization, but can increase the
#  risk of underruns when increasing the amount of work the mixer needs to do.
rt-mix=true

## connect-ports:
#  Attempts to automatically connect the client ports to physical server ports.
#  Client ports that fail to connect will leave the remaining channels
#  unconnected and silent (the device format won't change to accommodate).
connect-ports=true
Stereo headphones with HRTF enabled

Windows

## CONFIG - Headphones + HRTF
## General stuff
##
[General]

## stereo-mode:
#  Specifies if stereo output is treated as being headphones or speakers. With
#  headphones, HRTF or crossfeed filters may be used for better audio quality.
#  Valid settings are auto, speakers, and headphones.
stereo-mode=headphones

#  Sets the default output channel configuration. If left unspecified, one will
#  try to be detected from the system, with a fallback to stereo. The available
#  values are: mono, stereo, quad, surround51, surround61, surround71,
#  surround714, 3d71, ambi1, ambi2, ambi3, ambi4. Note that the ambi*
#  configurations output ambisonic channels of the given order (using ACN
#  ordering and SN3D normalization by default), which need to be decoded to
#  play correctly on speakers.
channels=stereo

## stereo-encoding:
#  Specifies the default encoding method for stereo output. Valid values are:
#  basic - Standard amplitude panning (aka pair-wise, stereo pair, etc) between
#          -30 and +30 degrees.
#  uhj - Creates a stereo-compatible two-channel UHJ mix, which encodes some
#        continuous surround sound information into stereo output that can be
#        decoded with a surround sound receiver.
#  tsme - Creates a stereo-compatible two-channel surround matrix encoded mix,
#         which encodes some discrete surround sound and height information
#         into the stereo output that can be decoded with a surround sound
#         receiver.
#  hrtf - Uses filters to provide better spatialization of sounds while using
#         stereo headphones.
#  If crossfeed filters are used, basic stereo mixing is used.
stereo-encoding=hrtf

## hrtf-mode:
#  Specifies the rendering mode for HRTF processing. Setting the mode to full
#  (default) applies a unique HRIR filter to each source given its relative
#  location, providing the clearest directional response at the cost of the
#  highest CPU usage. Setting the mode to ambi1, ambi2, ambi3, or ambi4 will
#  instead mix to an ambisonic buffer of the given order, then decode that
#  buffer with HRTF filters. Ambi1 has the lowest CPU usage, replacing the per-
#  source HRIR filter for a simple 4-channel panning mix, but retains full 3D
#  placement at the cost of a more diffuse response. Higher ambisonic orders
#  increasingly improve the directional clarity, at the cost of more CPU usage
#  (still less than "full", given some number of active sources).
hrtf-mode=full

## resampler: (global)
#  Selects the default resampler used when mixing sources. Valid values are:
#  point - nearest sample, no interpolation
#  linear - extrapolates samples using a linear slope between samples
#  spline - extrapolates samples using a Catmull-Rom spline
#  gaussian - extrapolates samples using a 4-point Gaussian filter
#  bsinc12 - extrapolates samples using a band-limited Sinc filter (varying between 12 and 24 points, with anti-aliasing)
#  fast_bsinc12 - same as bsinc12, except without interpolation between down-sampling scales
#  bsinc24 - extrapolates samples using a band-limited Sinc filter (varying between 24 and 48 points, with anti-aliasing)
#  fast_bsinc24 - same as bsinc24, except without interpolation between down-sampling scales
#  bsinc48 - extrapolates samples using a band-limited Sinc filter (48 points, with anti-aliasing)
#  fast_bsinc48 - same as bsinc48, except without interpolation between down-sampling scales
resampler=spline

## period_size:
#  Sets the update period size, in sample frames. This is the number of frames
#  needed for each mixing update. Acceptable values range between 64 and 8192.
#  If left unspecified it will default to 512 sample frames (~10.7ms).
period_size=512

## periods:
#  Sets the number of update periods. Higher values create a larger mix ahead,
#  which helps protect against skips when the CPU is under load, but increases
#  the delay between a sound getting mixed and being heard. Acceptable values
#  range between 2 and 16.
periods=3

## sources:
#  Sets the maximum number of allocatable sources. Lower values may help for
#  systems with apps that try to play more sounds than the CPU can handle.
sources=256

## slots:
#  Sets the maximum number of Auxiliary Effect Slots an app can create. A slot
#  can use a non-negligible amount of CPU time if an effect is set on it even
#  if no sources are feeding it, so this may help when apps use more than the
#  system can handle.
slots=64

## front-stablizer:
#  Applies filters to "stablize" front sound imaging. A psychoacoustic method
#  is used to generate a front-center channel signal from the front-left and
#  front-right channels, improving the front response by reducing the combing
#  artifacts and phase errors. Consequently, it will only work with channel
#  configurations that include front-left, front-right, and front-center.
#front-stablizer=false

## volume-adjust:
#  A global volume adjustment for source output, expressed in decibels. The
#  value is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will
#  be a scale of 4x, etc. Similarly, -6 will be x1/2, and -12 is about x1/4. A
#  value of 0 means no change.
#volume-adjust=0

## cf_level:
#  Sets the crossfeed level for stereo output. Valid values are:
#  0 - No crossfeed
#  1 - Low crossfeed
#  2 - Middle crossfeed
#  3 - High crossfeed (virtual speakers are closer to itself)
#  4 - Low easy crossfeed
#  5 - Middle easy crossfeed
#  6 - High easy crossfeed
#  Users of headphones may want to try various settings. Has no effect on non-
#  stereo modes.
cf_level=0


##
## Ambisonic decoder stuff
##
[decoder]

## hq-mode:
#  Enables a high-quality ambisonic decoder. This mode is capable of frequency-
#  dependent processing, creating a better reproduction of 3D sound rendering
#  over surround sound speakers.
# hq-mode=true

## distance-comp:
#  Enables compensation for the speakers' relative distances to the listener.
#  This applies the necessary delays and attenuation to make the speakers
#  behave as though they are all equidistant, which is important for proper
#  playback of 3D sound rendering. Requires the proper distances to be
#  specified in the decoder configuration file.
distance-comp=false

## nfc:
#  Enables near-field control filters. This simulates and compensates for low-
#  frequency effects caused by the curvature of nearby sound-waves, which
#  creates a more realistic perception of sound distance with surround sound
#  output. Note that the effect may be stronger or weaker than intended if the
#  application doesn't use or specify an appropriate unit scale, or if
#  incorrect speaker distances are set. For HRTF output, hrtf-mode must be set
#  to one of the ambi* values for this to function.
nfc=false

## speaker-dist:
#  Specifies the speaker distance in meters, used by the near-field control
#  filters with surround sound output. For ambisonic output modes, this value
#  is the basis for the NFC-HOA Reference Delay parameter (calculated as
#  delay_seconds=speaker_dist/343.3). This value is not used when a decoder
#  configuration is set for the output mode (since they specify the per-speaker
#  distances, overriding this setting), or when the NFC filters are off. Valid
#  values range from 0.1 to 10.
#speaker-dist=1


##
## Reverb effect stuff (includes EAX reverb)
##
[reverb]

## boost: (global)
#  A global amplification for reverb output, expressed in decibels. The value
#  is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will be a
#  scale of 4x, etc. Similarly, -6 will be about half, and -12 about 1/4th. A
#  value of 0 means no change.
boost=0

##
## WASAPI backend stuff
##
[wasapi]

## spatial-api:
#  Specifies whether to use a Spatial Audio stream for playback. This may
#  provide expanded capabilities for surround sound and with-height speaker
#  configurations. Very experimental.
#spatial-api=false

## exclusive-mode:
#  Enables Exlusive mode for playback devices. This uses the device directly,
#  allowing lower latencies but prevents the device from being used multiple
#  times simultaneously. Ignores the periods setting when enabled, as WASAPI
#  automatically sets a buffer size based on the period size.
#exclusive-mode=true

## allow-resampler:
#  Specifies whether to allow an extra resampler pass on the output. Enabling
#  this will allow the playback device to be set to a different sample rate
#  than the actual output can accept, causing the backend to apply its own
#  resampling pass after OpenAL Soft mixes the sources and processes effects
#  for output.
allow-resampler=true

##
## DirectSound backend stuff
##
[dsound]

##
## Windows Multimedia backend stuff
##
[winmm]

##
## EAX extensions stuff
##
[eax]

## enable: (global)
#  Sets whether to enable EAX extensions or not.
enable=true

Linux

## CONFIG - Headphones + HRTF
## General stuff
##
[General]

## stereo-mode:
#  Specifies if stereo output is treated as being headphones or speakers. With
#  headphones, HRTF or crossfeed filters may be used for better audio quality.
#  Valid settings are auto, speakers, and headphones.
stereo-mode=headphones

#  Sets the default output channel configuration. If left unspecified, one will
#  try to be detected from the system, with a fallback to stereo. The available
#  values are: mono, stereo, quad, surround51, surround61, surround71,
#  surround714, 3d71, ambi1, ambi2, ambi3, ambi4. Note that the ambi*
#  configurations output ambisonic channels of the given order (using ACN
#  ordering and SN3D normalization by default), which need to be decoded to
#  play correctly on speakers.
channels=stereo

## stereo-encoding:
#  Specifies the default encoding method for stereo output. Valid values are:
#  basic - Standard amplitude panning (aka pair-wise, stereo pair, etc) between
#          -30 and +30 degrees.
#  uhj - Creates a stereo-compatible two-channel UHJ mix, which encodes some
#        continuous surround sound information into stereo output that can be
#        decoded with a surround sound receiver.
#  tsme - Creates a stereo-compatible two-channel surround matrix encoded mix,
#         which encodes some discrete surround sound and height information
#         into the stereo output that can be decoded with a surround sound
#         receiver.
#  hrtf - Uses filters to provide better spatialization of sounds while using
#         stereo headphones.
#  If crossfeed filters are used, basic stereo mixing is used.
stereo-encoding=hrtf

## hrtf-mode:
#  Specifies the rendering mode for HRTF processing. Setting the mode to full
#  (default) applies a unique HRIR filter to each source given its relative
#  location, providing the clearest directional response at the cost of the
#  highest CPU usage. Setting the mode to ambi1, ambi2, ambi3, or ambi4 will
#  instead mix to an ambisonic buffer of the given order, then decode that
#  buffer with HRTF filters. Ambi1 has the lowest CPU usage, replacing the per-
#  source HRIR filter for a simple 4-channel panning mix, but retains full 3D
#  placement at the cost of a more diffuse response. Higher ambisonic orders
#  increasingly improve the directional clarity, at the cost of more CPU usage
#  (still less than "full", given some number of active sources).
hrtf-mode=full

## resampler: (global)
#  Selects the default resampler used when mixing sources. Valid values are:
#  point - nearest sample, no interpolation
#  linear - extrapolates samples using a linear slope between samples
#  spline - extrapolates samples using a Catmull-Rom spline
#  gaussian - extrapolates samples using a 4-point Gaussian filter
#  bsinc12 - extrapolates samples using a band-limited Sinc filter (varying between 12 and 24 points, with anti-aliasing)
#  fast_bsinc12 - same as bsinc12, except without interpolation between down-sampling scales
#  bsinc24 - extrapolates samples using a band-limited Sinc filter (varying between 24 and 48 points, with anti-aliasing)
#  fast_bsinc24 - same as bsinc24, except without interpolation between down-sampling scales
#  bsinc48 - extrapolates samples using a band-limited Sinc filter (48 points, with anti-aliasing)
#  fast_bsinc48 - same as bsinc48, except without interpolation between down-sampling scales
resampler=spline

## period_size:
#  Sets the update period size, in sample frames. This is the number of frames
#  needed for each mixing update. Acceptable values range between 64 and 8192.
#  If left unspecified it will default to 512 sample frames (~10.7ms).
period_size=512

## periods:
#  Sets the number of update periods. Higher values create a larger mix ahead,
#  which helps protect against skips when the CPU is under load, but increases
#  the delay between a sound getting mixed and being heard. Acceptable values
#  range between 2 and 16.
periods=3

## sources:
#  Sets the maximum number of allocatable sources. Lower values may help for
#  systems with apps that try to play more sounds than the CPU can handle.
sources=256

## slots:
#  Sets the maximum number of Auxiliary Effect Slots an app can create. A slot
#  can use a non-negligible amount of CPU time if an effect is set on it even
#  if no sources are feeding it, so this may help when apps use more than the
#  system can handle.
slots=64

## front-stablizer:
#  Applies filters to "stablize" front sound imaging. A psychoacoustic method
#  is used to generate a front-center channel signal from the front-left and
#  front-right channels, improving the front response by reducing the combing
#  artifacts and phase errors. Consequently, it will only work with channel
#  configurations that include front-left, front-right, and front-center.
#front-stablizer=false

## volume-adjust:
#  A global volume adjustment for source output, expressed in decibels. The
#  value is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will
#  be a scale of 4x, etc. Similarly, -6 will be x1/2, and -12 is about x1/4. A
#  value of 0 means no change.
#volume-adjust=0

## cf_level:
#  Sets the crossfeed level for stereo output. Valid values are:
#  0 - No crossfeed
#  1 - Low crossfeed
#  2 - Middle crossfeed
#  3 - High crossfeed (virtual speakers are closer to itself)
#  4 - Low easy crossfeed
#  5 - Middle easy crossfeed
#  6 - High easy crossfeed
#  Users of headphones may want to try various settings. Has no effect on non-
#  stereo modes.
cf_level=0


##
## Ambisonic decoder stuff
##
[decoder]

## hq-mode:
#  Enables a high-quality ambisonic decoder. This mode is capable of frequency-
#  dependent processing, creating a better reproduction of 3D sound rendering
#  over surround sound speakers.
# hq-mode=true

## distance-comp:
#  Enables compensation for the speakers' relative distances to the listener.
#  This applies the necessary delays and attenuation to make the speakers
#  behave as though they are all equidistant, which is important for proper
#  playback of 3D sound rendering. Requires the proper distances to be
#  specified in the decoder configuration file.
distance-comp=false

## nfc:
#  Enables near-field control filters. This simulates and compensates for low-
#  frequency effects caused by the curvature of nearby sound-waves, which
#  creates a more realistic perception of sound distance with surround sound
#  output. Note that the effect may be stronger or weaker than intended if the
#  application doesn't use or specify an appropriate unit scale, or if
#  incorrect speaker distances are set. For HRTF output, hrtf-mode must be set
#  to one of the ambi* values for this to function.
nfc=false

## speaker-dist:
#  Specifies the speaker distance in meters, used by the near-field control
#  filters with surround sound output. For ambisonic output modes, this value
#  is the basis for the NFC-HOA Reference Delay parameter (calculated as
#  delay_seconds=speaker_dist/343.3). This value is not used when a decoder
#  configuration is set for the output mode (since they specify the per-speaker
#  distances, overriding this setting), or when the NFC filters are off. Valid
#  values range from 0.1 to 10.
#speaker-dist=1


##
## Reverb effect stuff (includes EAX reverb)
##
[reverb]

## boost: (global)
#  A global amplification for reverb output, expressed in decibels. The value
#  is logarithmic, so +6 will be a scale of (approximately) 2x, +12 will be a
#  scale of 4x, etc. Similarly, -6 will be about half, and -12 about 1/4th. A
#  value of 0 means no change.
boost=0

##
## ALSA backend stuff
##
[alsa]

## allow-resampler:
#  Specifies whether to allow ALSA's built-in resampler. Enabling this will
#  allow the playback device to be set to a different sample rate than the
#  actual output, causing ALSA to apply its own resampling pass after OpenAL
#  Soft resamples and mixes the sources and effects for output.
allow-resampler=true

## mmap:
#  Sets whether to try using mmap mode (helps reduce latencies and CPU
#  consumption). If mmap isn't available, it will automatically fall back to
#  non-mmap mode. True, yes, on, and non-0 values will attempt to use mmap. 0
#  and anything else will force mmap off.
mmap=true

##
## PipeWire backend stuff
##
[pipewire]

## assume-audio: (global)
#  Causes the backend to succeed initialization even if PipeWire reports no
#  audio support. Currently, audio support is detected by the presence of audio
#  source or sink nodes, although this can cause false negatives in cases where
#  device availability during library initialization is spotty. Future versions
#  of PipeWire are expected to have a more robust method to test audio support,
#  but in the mean time this can be set to true to assume PipeWire has audio
#  support even when no nodes may be reported at initialization time.
#assume-audio=false

## rt-mix:
#  Renders samples directly in the real-time processing callback. This allows
#  for lower latency and less overall CPU utilization, but can increase the
#  risk of underruns when increasing the amount of work the mixer needs to do.
#rt-mix=false

##
## PulseAudio backend stuff
##
[pulse]

## spawn-server: (global)
#  Attempts to autospawn a PulseAudio server whenever needed (initializing the
#  backend, enumerating devices, etc). Setting autospawn to false in Pulse's
#  client.conf will still prevent autospawning even if this is set to true.
#spawn-server=false

## allow-moves: (global)
#  Allows PulseAudio to move active streams to different devices. Note that the
#  device specifier (seen by applications) will not be updated when this
#  occurs, and neither will the AL device configuration (sample rate, format,
#  etc).
#allow-moves=true

## fix-rate:
#  Specifies whether to match the playback stream's sample rate to the device's
#  sample rate. Enabling this forces OpenAL Soft to mix sources and effects
#  directly to the actual output rate, avoiding a second resample pass by the
#  PulseAudio server.
#fix-rate=false

## adjust-latency:
#  Attempts to adjust the overall latency of device playback. Note that this
#  may have adverse effects on the resulting internal buffer sizes and mixing
#  updates, leading to performance problems and drop-outs. However, if the
#  PulseAudio server is creating a lot of latency, enabling this may help make
#  it more manageable.
#adjust-latency=false

##
## JACK backend stuff
##
[jack]

## spawn-server: (global)
#  Attempts to autospawn a JACK server when initializing.
#spawn-server=false

## rt-mix:
#  Renders samples directly in the real-time processing callback. This allows
#  for lower latency and less overall CPU utilization, but can increase the
#  risk of underruns when increasing the amount of work the mixer needs to do.
rt-mix=true

## connect-ports:
#  Attempts to automatically connect the client ports to physical server ports.
#  Client ports that fail to connect will leave the remaining channels
#  unconnected and silent (the device format won't change to accommodate).
connect-ports=true

*Might require a custom HRTF profile - depending on physical characteristics of your ears

File path

Windows
  • Per-user: C:\Users\%USERNAME%\AppData\Roaming\alsoft.ini
  • Game-specific: C:\UT2004\System\alsoft.ini
Linux
  • System-wide: /etc/xdg/alsoft.conf
  • Per-user: ~/.config/alsoft.conf
  • Game-specific: ~/.ut2004/System/alsoft.conf