Sound

From Unreal Tournament 2004 MiA Wiki
Revision as of 12:21, 22 February 2026 by Holyspam (talk | contribs) (Surround 5.1/7.1 presets)

THIS PAGE IS A WORK IN PROGRESS

Will add some presets for 5.1/7.1 surround and provide suggestions for higher quality

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 & Presets

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:

  • stereo-mode = auto / speakers / headphones
  • frequency = <sample rate>
  • channels = stereo / surroundX / 3d71 / ambiX
  • resampler = <type>
  • period_size and periods (latency tuning)

Default presets

You can find these presets below:

  • Stereo speakers (default)
  • Stereo headphones
  • Stereo headphones with the default HRTF profile

They will provide a basic experience and override most existing config options. I suggest to start with the stereo speakers setup first, then try headphones.

For HRTF you can read more here


Default - stereo speakers

Basic stereo setup

For 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
For Linux
## 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

##
## 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

Headphones (Stereo)

Basic stereo setup for headphones

For 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
For 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

Headphones with HRTF

Default HRTF profile for headphones

For 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
For 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

Surround 5.1 speakers

For Windows
## Surround 5.1
## 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=surround51

## 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=uhj

## 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
For Linux
## Surround 5.1
## 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=surround51

## 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=uhj

## 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

Surround 7.1 speakers

Basic stereo setup

For Windows
## Surround 7.1
## 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=surround71

## 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=uhj

## 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
For Linux
## Surround 7.1
## 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=surround71

## 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=uhj

## 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

File path

Depending on your operating system, there are different locations where you can find a configuration file.

The priority is:

  1. System
  2. User
  3. App

System options can be overriden by the user, which can be overriden by the app, only when explicitly configured.

If they are not configured, then they follow the higher priority, or if an option is not configured anywhere, the OpenAL Soft defaults will be used.

Windows

Per-user: C:\Users\%USERNAME%\AppData\Roaming\alsoft.ini

Game-specific: C:\UT2004\System\alsoft.ini (or the equivalent path to where you installed the game)

Linux

System-wide: /etc/xdg/alsoft.conf

Per-user: ~/.config/alsoft.conf

Game-specific: ~/.ut2004/System/alsoft.conf