Sound

From Unreal Tournament 2004 MiA Wiki
Revision as of 15:50, 26 February 2026 by Piglet (talk | contribs) (โ†’๐ŸŽง Headphones)
(diff) โ† Older revision | Latest revision (diff) | Newer revision โ†’ (diff)

๐ŸŽง Sound Configuration Guide

1๏ธโƒฃ What Changed in 3374?

The 3374 patch uses OpenAL Soft, a modern audio engine that replaces the older DirectSound system.

Why this is good

  • Better 3D positional audio
  • Proper surround sound (5.1 / 7.1)
  • Headphone spatial audio (HRTF)
  • More configurable and higher quality sound

If configured correctly, youโ€™ll hear:

  • Footsteps more precisely
  • Better directional cues
  • Clearer voice chat
  • Cleaner ambient audio

2๏ธโƒฃ How Sound Configuration Works

There are two layers of sound settings:

File What It Controls
UT2004.ini In-game sound behavior
alsoft.ini (or alsoft.conf) How OpenAL outputs sound to your device

You may only need to adjust one โ€” but for best results, configure both.

๐Ÿ“‚ Where Are the Sound Config Files?

For Unreal Tournament 2004 there are two main config files related to sound:

  1. UT2004.ini โ†’ game audio settings
  2. alsoft.ini (or alsoft.conf) โ†’ OpenAL Soft output settings

Their locations depend on your operating system.

๐Ÿ”Š OpenAL Config

Windows location

C:\Users\<YourName>\AppData\Roaming\alsoft.ini

๐ŸŽฎ Game Config (recommended)

C:\Games\UT2004\System\alsoft.ini

Linux location

Global

/etc/xdg/alsoft.conf

User-specific

~/.config/alsoft.conf

๐ŸŽฎ Game Config (recommended)

~/.ut2004/System/alsoft.conf

If installed via Wine/Proton (Steam)

~/.steam/steam/steamapps/common/Unreal Tournament 2004/System/alsoft.ini

If it doesnโ€™t exist, you can create it.

You can find available options and documentation here

3๏ธโƒฃ Step-By-Step Setup

๐ŸŽฎ Step A โ€” Configure the Game (UT2004.ini)

Find UT2004.ini inside your UT2004 System folder.

Look for this section:

[ALAudio.ALAudioSubsystem]

Here are the important settings:

[ALAudio.ALAudioSubsystem]
UseEAX=True
Use3DSound=True
UseDefaultDriver=True
CompatibilityMode=False
MaxEAXVersion=255
UsePrecache=True
ReverseStereo=False
Channels=32
MusicVolume=0.10000
AmbientVolume=0.500000
SoundVolume=0.30000
VoiceVolume=4.000000
VolumeScaleRec=0.100000
DopplerFactor=1.0
Rolloff=0.5
TimeBetweenHWUpdates=15
DisablePitch=False
LowQualitySound=False
UseVoIP=True
UseVAD=False
UseSpatializedVoice=False
SpatializedVoiceRadius=100000
EnhancedDenoiser=False
LocalZOffset=0.0

What These Do

  • Use3DSound=True Enables positional audio. Keep this ON.
  • Channels=32 controls how many simultaneous sounds play โ€” more = richer sound but higher CPU usage.
    • 32 = good balance - default
    • 64 = richer sound (uses more CPU)
    • 128 = highest quality
  • MusicVolume Background music level
  • SoundVolume Weapons, effects, explosions
  • AmbientVolume Environmental sounds
  • VoiceVolume Player voice chat
  • UseEAX=true - Enables EAX (Environmental Audio Extensions) - See ๐ŸŽง What Is EAX?
  • Rolloff=0.5 controls how quickly sound volume decreases with distance
    • Higher rolloff โ†’ sound gets quiet faster
    • Lower rolloff โ†’ sound stays audible longer
    • Recommended range โ†’ 0.3 - 0.5

๐Ÿ”Š Step B โ€” Configure OpenAL

This file goes in your game System folder (Windows/Linux). If it does not exist, you can create it.

It lets you choose:

  • Stereo, headphones, or surround setups
  • HRTF on/off (for 3D sound on headphones)
  • Best resampler for quality vs performance

4๏ธโƒฃ Choose Your Audio Setup

The wiki has preset blocks you can copy/paste depending on your output device:

๐Ÿ“Œ Stereo (speakers)

๐Ÿ“Œ Stereo with HRTF (headphones)

๐Ÿ“Œ Surround 5.1 / 7.1

โ€ฆand variants for both Windows and Linux

๐Ÿ”ˆ 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

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 + HRTF (Recommended for Competitive Play)

For more information about HRTF, see the documentation page here

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

๐Ÿ”Š 5.1 Surround Sound

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

๐Ÿ”Š 7.1 Surround Sound

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

๐Ÿ† Competitive Players

  • Headphones + HRTF
  • Channels = 32 or 64
  • Lower music volume
  • Higher sound effects

๐ŸŽฎ Casual Players

  • Stereo or surround
  • Balanced volume levels
  • Keep defaults unless something sounds wrong

โœ”๏ธ Quick Setup (for headphones)

  1. Create/edit alsoft.ini:
    • Choose headphone preset from wiki.
  2. Open UT2004.ini
    • Set Use3DSound=True
    • Raise Channels to at least 32
  3. Restart the game and test.

โœ”๏ธ Quick Surround Setup

  1. Pick the 5.1 or 7.1 preset from the wiki for alsoft.ini
  2. Test in game with maps that have lots of sound effects (like crowded DM or Freon).

๐ŸŽง What Is EAX?

EAX (Environmental Audio Extensions) was a Creative Labs technology that added:

  • Reverb effects (echo in large rooms)
  • Environmental acoustics (muffled sounds behind walls)
  • More immersive indoor/outdoor audio

Originally, it required specific Sound Blaster hardware.


โœ… Should You Enable It?

  • Better environmental immersion
  • More realistic reverb indoors
  • No modern hardware downside
  • Minimal performance cost

โŒ When to Turn It Off

  • You want the cleanest, driest competitive audio
  • You dislike environmental reverb
  • You're troubleshooting weird sound artifacts

Competitive players sometimes disable it to reduce โ€œaudio clutter.โ€