Sound: Difference between revisions

From Unreal Tournament 2004 MiA Wiki
Holyspam (talk | contribs)
Holyspam (talk | contribs)
Line 2,603: Line 2,603:
</div>
</div>


== File Path ==
=== File Path ===
Depending on your operating system, the configuration file can be placed in different locations.
Depending on your operating system, the configuration file can be placed in different locations.



Revision as of 13:24, 22 February 2026

THIS PAGE IS A WORK IN PROGRESS

Audio subsystem - OpenAL Soft

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

Audio Features & Options

HRTF Support

Experience immersive 3D positional audio on headphones, making sounds feel like they’re coming from all around you.

Stereo / 5.1 / 7.1 Support

Enjoy crisp stereo or full surround sound with improved multi-channel handling.

Sample Rate & Resampler Settings

Adjust sample rates and resampling options to balance sound quality and system performance.

Ambisonics Support

Decode B-Format audio for advanced 3D soundscapes, ideal for immersive gaming or spatial audio projects.

Configurable Decoders & Backends

Choose your preferred audio backend (WASAPI, PulseAudio, PipeWire, etc.) and configure decoder behavior for a fully customized setup.

Configuration

Tips for Best Sound Experience

  • For headphones, enabling HRTF can make sounds feel more spatial and realistic.
  • Increasing the number of audio channels can improve multi-sound effects but may use more CPU.
  • Adjusting volumes and resampling settings can help balance sound clarity vs. performance.

You can find all available options and the documentation at the official GitHub repository of OpenAL Soft here

UT2004 configuration file

Open your UT2004.ini and find the section [ALAudio.ALAudioSubsystem]

These are the defaults for high quality 3-Dimensional sound with EAX reverb

[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

You can increase Channels up to 128 but it can increase CPU usage

OpenAL Soft configuration file

You can also create or edit an OpenAL Soft config file (e.g., alsoft.ini on Windows) to:

  • Force preferred settings for sound output
  • Enable specific features like HRTF or surround
  • Customize resampling quality and speaker layout

Available Presets

  • Stereo speakers (default)
  • Stereo headphones / Stereo headphones + HRTF
  • Surround 5.1 / 7.1 speakers

These presets provide a basic, ready-to-use setup and will override most existing configuration options.

To use one:

  1. Create a new file.
  2. Copy and paste the preset contents into it.
  3. Save the file as:
    • alsoft.ini on Windows
    • alsoft.conf on Linux

Default - Speakers (stereo)

Basic stereo setup

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

## enable: (global)
#  Sets whether to enable EAX extensions or not.
enable=true
For Linux
## CONFIG - Default
## General stuff
##
[General]

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Headphones (Stereo)

Basic stereo setup for headphones

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

## enable: (global)
#  Sets whether to enable EAX extensions or not.
enable=true
For Linux
## CONFIG - Headphones - Basic Stereo
## General stuff
##
[General]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Headphones with HRTF

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

Surround 5.1 speakers

For Windows
## Surround 5.1
## General stuff
##
[General]

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

## enable: (global)
#  Sets whether to enable EAX extensions or not.
enable=true
For Linux
## Surround 5.1
## General stuff
##
[General]

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Surround 7.1 speakers

For Windows
## Surround 7.1
## General stuff
##
[General]

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

## enable: (global)
#  Sets whether to enable EAX extensions or not.
enable=true
For Linux
## Surround 7.1
## General stuff
##
[General]

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

File Path

Depending on your operating system, the configuration file can be placed in different locations.

Priority Order

The configuration files are read in this order:

  1. System
  2. User
  3. App (Game folder)

This means:

  • User settings override System settings.
  • App (game-specific) settings override both User and System settings, but only if explicitly configured.
  • If an option is not set anywhere, OpenAL Soft uses its default values.

Windows

Per-user (only your account)

C:\Users\%USERNAME%\AppData\Roaming\alsoft.ini

Game-specific (only for UT2004)

C:\UT2004\System\alsoft.ini

(Or the equivalent path where the game is installed.)


Linux

System-wide (all users)

/etc/xdg/alsoft.conf

Per-user

~/.config/alsoft.conf

Game-specific

~/.ut2004/System/alsoft.conf