Sound: Difference between revisions

From Unreal Tournament 2004 MiA Wiki
Holyspam (talk | contribs)
 
(43 intermediate revisions by one other user not shown)
Line 1: Line 1:
'''THIS PAGE IS A WORK IN PROGRESS'''
= 🎧 Sound Configuration Guide =


'''Will add some presets for 5.1/7.1 surround and provide suggestions for higher quality'''
== 1️⃣ What Changed in 3374? ==
The 3374 patch uses '''OpenAL Soft''', a modern audio engine that replaces the older DirectSound system.


= OpenAL Soft =
<big>Why this is good</big>
'''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.
* Better 3D positional audio
* Proper surround sound (5.1 / 7.1)
* Headphone spatial audio (HRTF)
* More configurable and higher quality sound


== Audio Features & Options ==
If configured correctly, you’ll hear:


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


== Configuration files & Presets ==
== 2️⃣ How Sound Configuration Works ==
Audio behavior can be customized through files containing settings for different use cases (e.g., competitive HRTF headphones, high-quality surround, low-latency setup).
There are '''two layers''' of sound settings:
{| class="wikitable"
!File
!What It Controls
|-
|<code>UT2004.ini</code>
|In-game sound behavior
|-
|<code>alsoft.ini</code> (or <code>alsoft.conf</code>)
|How OpenAL outputs sound to your device
|}
You may only need to adjust one — but for best results, configure both.


You can place the file next to the game executable and OpenAL Soft will override the system or user config
<big>📂 Where Are the Sound Config Files?</big>


Common adjustable options include:
For '''Unreal Tournament 2004''' there are '''two main config files''' related to sound:
* <code>stereo-mode = auto / speakers / headphones</code>  Self-explanatory
* <code>frequency = <sample rate></code>  Default is 48000
* <code>channels = auto / stereo / surround51 / surround71 / 3d71</code>  Default is <code>auto</code> which will try to detect the output, or it will fallback to <code>stereo</code>
* <code>resampler = point / linear / spline / gaussian / bsinc12 / fast_bsinc12 / bsinc24 / fast_bsinc24 / bsinc48 / fast_bsinc48</code>  Default is spline
* <code>period_size</code> and <code>periods</code> (latency tuning)
* <code>stereo-encoding = basic / hrtf / uhj / tsme</code> Default is <code>basic</code>.  <code>hrtf</code> only used with headphones. <code>uhj</code> and <code>tsme</code> are only for surround output.


=== '''Default presets''' ===
# <code>UT2004.ini</code> → game audio settings
They will provide a basic experience and override most existing config options.  
# <code>alsoft.ini</code> (or <code>alsoft.conf</code>) → OpenAL Soft output settings


First try the stereo speakers setup, then try headphones
Their locations depend on your operating system.
* Stereo speakers (default)
* Stereo headphones/Stereo headphones + HRTF
* Surround 5.1/7.1 speakers


For HRTF you can read more [https://github.com/kcat/openal-soft/blob/master/docs/hrtf.txt here]
<big>🔊 OpenAL Config</big>


<div class="mw-collapsible mw-collapsed">
<big>'''Windows location'''</big>
    <h4>
C:\Users\<YourName>\AppData\Roaming\alsoft.ini
         <span>Default - stereo speakers</span>
🎮 Game Config (recommended)
         <div class="mw-collapsible-toggle-placeholder"></div>
C:\Games\UT2004\System\alsoft.ini
     </h4>
<big>'''Linux location'''</big>
 
Global
/etc/xdg/alsoft.conf
User-specific
~/.config/alsoft.conf
🎮 Game Config (recommended)
~/.ut2004/System/alsoft.conf
If installed via Wine/Proton (Steam)
~/.steam/steam/steamapps/common/Unreal Tournament 2004/System/alsoft.ini
If it doesn’t exist, you can create it.
 
You can find available options and documentation [https://github.com/kcat/openal-soft/blob/master/alsoftrc.sample here]
 
== 3️⃣ Step-By-Step Setup ==
 
=== 🎮 Step A — Configure the Game (UT2004.ini) ===
Find <code>UT2004.ini</code> inside your UT2004 <code>System</code> folder.
 
Look for this section:
[ALAudio.ALAudioSubsystem]
Here are the important settings:
<syntaxhighlight>[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</syntaxhighlight><big>'''What These Do'''</big>
* '''Use3DSound=True'''  Enables positional audio. Keep this ON.
* '''Channels=32'''  controls how many simultaneous sounds play — more = richer sound but higher CPU usage.
** 32 = good balance - default
** 64 = richer sound (uses more CPU)
** 128 = highest quality
* '''MusicVolume'''  Background music level
* '''SoundVolume'''  Weapons, effects, explosions
* '''AmbientVolume'''  Environmental sounds
* '''VoiceVolume'''  Player voice chat
* '''UseEAX=true''' - Enables EAX (Environmental Audio Extensions) - See [[Sound#🎧 What Is EAX?|🎧 What Is EAX?]]
* '''Rolloff=0.5'''  controls '''how quickly sound volume decreases with distance'''
** Higher rolloff → sound gets quiet '''faster'''
** Lower rolloff → sound stays audible '''longer'''
** Recommended range  → 0.3 - 0.5
 
=== 🔊 Step B — Configure OpenAL ===
This file goes in your game System folder (Windows/Linux). If it does not exist, you can create it.
 
It lets you choose:
 
* '''Stereo, headphones, or surround setups'''
* '''HRTF on/off (for 3D sound on headphones)'''
* '''Best resampler for quality vs performance'''
 
== 4️⃣ Choose Your Audio Setup ==
The wiki has '''preset blocks''' you can copy/paste depending on your output device:
 
📌 ''Stereo (speakers)''
 
📌 ''Stereo with HRTF (headphones)''
 
📌 ''Surround 5.1 / 7.1''
 
…and variants for both Windows and Linux<div class="mw-collapsible mw-collapsed">
====         <span><span>🔈 Stereo Speakers         <div class="mw-collapsible-toggle-placeholder"></div>    ====
     <div class="mw-collapsible-content">
     <div class="mw-collapsible-content">
         <p>Basic stereo setup</p>
         <p>Basic stereo setup</p>
Line 52: Line 136:
             </h5>
             </h5>
             <div class="mw-collapsible-content">
             <div class="mw-collapsible-content">
                <syntaxhighlight copy>
<syntaxhighlight copy="">
## CONFIG - Default
## CONFIG - Default
## General stuff
## General stuff
Line 273: Line 357:
             </h5>
             </h5>
             <div class="mw-collapsible-content">
             <div class="mw-collapsible-content">
                <syntaxhighlight copy>
<syntaxhighlight copy="">
## CONFIG - Default
## CONFIG - Default
## General stuff
## General stuff
Line 543: Line 627:
----
----
<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible mw-collapsed">
    <h4>
====         <span>🎧 Headphones</span>         <div class="mw-collapsible-toggle-placeholder"></div>    ====
         <span>Headphones (Stereo)</span>
        <div class="mw-collapsible-toggle-placeholder"></div>
     </h4>
     <div class="mw-collapsible-content">
     <div class="mw-collapsible-content">
         <p>Basic stereo setup for headphones</p>
         <p>Basic stereo setup for headphones</p>
Line 555: Line 636:
             </h5>
             </h5>
             <div class="mw-collapsible-content">
             <div class="mw-collapsible-content">
                 <syntaxhighlight>## CONFIG - Headphones - Basic Stereo
                 <syntaxhighlight copy>## CONFIG - Headphones - Basic Stereo
## General stuff
## General stuff
##
##
Line 1,044: Line 1,125:


<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible mw-collapsed">
    <h4>
 
         <span>Headphones with HRTF</span>
====         <span>🎧 Headphones + HRTF (Recommended for Competitive Play)</span>        <div class="mw-collapsible-toggle-placeholder"></div>    ====
         <div class="mw-collapsible-toggle-placeholder"></div>
     </h4>
     <div class="mw-collapsible-content">
     <div class="mw-collapsible-content">
        <p>Default HRTF profile for headphones</p>
For more information about HRTF, see the documentation page [https://github.com/kcat/openal-soft/blob/master/docs/hrtf.txt here]
         <div class="mw-collapsible mw-collapsed">
         <div class="mw-collapsible mw-collapsed">
             <h5>
             <h5>
Line 1,546: Line 1,625:


<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible mw-collapsed">
    <h4>
====         <span>🔊 5.1 Surround Sound</span>        <div class="mw-collapsible-toggle-placeholder"></div>    ====
         <span>Surround 5.1 speakers</span>
         <div class="mw-collapsible-toggle-placeholder"></div>
     </h4>
     <div class="mw-collapsible-content">
     <div class="mw-collapsible-content">
         <p></p>
         <p></p>
Line 2,051: Line 2,127:


<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible mw-collapsed">
    <h4>
====         <span>🔊 7.1 Surround Sound</span>        <div class="mw-collapsible-toggle-placeholder"></div>    ====
         <span>Surround 7.1 speakers</span>
         <div class="mw-collapsible-toggle-placeholder"></div>
     </h4>
     <div class="mw-collapsible-content">
     <div class="mw-collapsible-content">
         <p>Basic stereo setup</p>
         <p></p>
         <div class="mw-collapsible mw-collapsed">
         <div class="mw-collapsible mw-collapsed">
             <h5>
             <h5>
Line 2,063: Line 2,136:
             </h5>
             </h5>
             <div class="mw-collapsible-content">
             <div class="mw-collapsible-content">
                <syntaxhighlight copy>
<syntaxhighlight copy="">
## Surround 7.1
## Surround 7.1
## General stuff
## General stuff
Line 2,285: Line 2,358:
             </h5>
             </h5>
             <div class="mw-collapsible-content">
             <div class="mw-collapsible-content">
                <syntaxhighlight copy>
<syntaxhighlight copy="">
## Surround 7.1
## Surround 7.1
## General stuff
## General stuff
Line 2,549: Line 2,622:
</syntaxhighlight>
</syntaxhighlight>
             </div>
             </div>
        </div>
    </div>
</div>
</div>
</div>
</div>
== 5️⃣ Recommended Settings by Player Type ==
=== 🏆 Competitive Players ===
* Headphones + HRTF
* Channels = 32 or 64
* Lower music volume
* Higher sound effects
=== 🎮 Casual Players ===
* Stereo or surround
* Balanced volume levels
* Keep defaults unless something sounds wrong
=== ✔️ Quick Setup (for headphones) ===
# Create/edit <code>alsoft.ini</code>:
#* Choose headphone preset from wiki.
# Open <code>UT2004.ini</code>
#* Set <code>Use3DSound=True</code>
#* Raise <code>Channels</code> to at least 32
# Restart the game and test.
=== ✔️ Quick Surround Setup ===


=== File path ===
# Pick the '''5.1 or 7.1 preset''' from the wiki for <code>alsoft.ini</code>
Depending on your operating system, there are different locations where you can find a configuration file.
# Test in game with maps that have lots of sound effects (like crowded DM or Freon).


The priority is:
== 🎧 What Is EAX? ==
'''EAX (Environmental Audio Extensions)''' was a Creative Labs technology that added:


# System
* Reverb effects (echo in large rooms)
# User
* Environmental acoustics (muffled sounds behind walls)
# App
* More immersive indoor/outdoor audio


System options can be overriden by the user, which can be overriden by the app, only when explicitly configured.
''Originally, it required specific Sound Blaster hardware.''


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


==== Windows ====
✅ Should You Enable It?
Per-user: <code>C:\Users\%USERNAME%\AppData\Roaming\alsoft.ini</code>


Game-specific: <code>C:\UT2004\System\alsoft.ini</code> (or the equivalent path to where you installed the game)
* Better environmental immersion
* More realistic reverb indoors
* No modern hardware downside
* Minimal performance cost


==== Linux ====
❌ When to Turn It Off
System-wide: <code>/etc/xdg/alsoft.conf</code>


Per-user: <code>~/.config/alsoft.conf</code>
* You want the cleanest, driest competitive audio
* You dislike environmental reverb
* You're troubleshooting weird sound artifacts


Game-specific: <code>~/.ut2004/System/alsoft.conf</code>
Competitive players sometimes disable it to reduce “audio clutter.

Latest revision as of 15:50, 26 February 2026

🎧 Sound Configuration Guide

1️⃣ What Changed in 3374?

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

Why this is good

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

If configured correctly, you’ll hear:

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

2️⃣ How Sound Configuration Works

There are two layers of sound settings:

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

You may only need to adjust one — but for best results, configure both.

📂 Where Are the Sound Config Files?

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

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

Their locations depend on your operating system.

🔊 OpenAL Config

Windows location

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

🎮 Game Config (recommended)

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

Linux location

Global

/etc/xdg/alsoft.conf

User-specific

~/.config/alsoft.conf

🎮 Game Config (recommended)

~/.ut2004/System/alsoft.conf

If installed via Wine/Proton (Steam)

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

If it doesn’t exist, you can create it.

You can find available options and documentation here

3️⃣ Step-By-Step Setup

🎮 Step A — Configure the Game (UT2004.ini)

Find UT2004.ini inside your UT2004 System folder.

Look for this section:

[ALAudio.ALAudioSubsystem]

Here are the important settings:

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

What These Do

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

🔊 Step B — Configure OpenAL

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

It lets you choose:

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

4️⃣ Choose Your Audio Setup

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

📌 Stereo (speakers)

📌 Stereo with HRTF (headphones)

📌 Surround 5.1 / 7.1

…and variants for both Windows and Linux

🔈 Stereo Speakers

Basic stereo setup

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

🎧 Headphones

Basic stereo setup for headphones

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

🎧 Headphones + HRTF (Recommended for Competitive Play)

For more information about HRTF, see the documentation page here

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

🔊 5.1 Surround Sound

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

🔊 7.1 Surround Sound

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

🏆 Competitive Players

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

🎮 Casual Players

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

✔️ Quick Setup (for headphones)

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

✔️ Quick Surround Setup

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

🎧 What Is EAX?

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

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

Originally, it required specific Sound Blaster hardware.


✅ Should You Enable It?

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

❌ When to Turn It Off

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

Competitive players sometimes disable it to reduce “audio clutter.”