Q2PRO-X 1.6 Final by ly
Audio and music
Project author: ly
Spatial audio, reverberation and music settings.
English edition • Q2PRO-X 1.6 Final by ly • November 7, 2026
Contents
The entries are links: click one to jump to that section.
Audio when the game loses focus
Player-state ambient and playback priority
2. Where to find all of this in the menu
3. The base model: how sound is structured in Q2PRO-X
4. The main split: DMA or OpenAL
5. s_enable: the master backend switch
6. General theory: sample rate, format, precision, resampling
7. Settings that matter in both DMA and OpenAL
8. What exists only, or primarily, in DMA
10. al_profile: the difference between OpenAL Q2PRO-X and R1Q2-like
11. al_sound_profile: ready-made acoustic profiles
12. HRTF: what it is and how it works
13. Binaural sound: what it is and how it differs from plain HRTF
14. Reverb / room acoustics: what it is
15. Reverb parameters: each one explained
16. Commands for OpenAL / reverb / binaural
17. al_resampler: the OpenAL resampler
18. Per-weapon and per-category volume controls
19. What requires snd_restart, and what changes live
20. Current important defaults
21. Recommended starting configurations
22. What to tune for which problem
23. Feature availability matrix: what works where
25. The shortest practical cheat sheet
Q2PRO-X: detailed sound guide
Choosing and tuning sound
Q2PRO-X offers a classic software mixer and OpenAL with spatial audio, headphone processing and room acoustics. This guide explains how to choose between them and adjust the sound for your headphones or speakers:
Audio when the game loses focus
The audio menu offers three s_auto_focus modes: 0 — always play; 1 — play while the window is visible, even without focus; 2 — play only while the game has focus. The separate s_mute_when_inactive setting can also mute an inactive window.
When inactive-window muting applies, OpenAL also mutes voice chat and effect tails, then restores the selected volume when focus returns. A manually paused track stays paused. Starting a demo fades the intro before its separate music profile begins; without a demo profile, the normal background-music pause and resume rules apply.
Player-state ambient and playback priority
The sound menu includes optional health/armor ambience next to Online Music. It is off by default, has independent SP/DM switches and nine adjustable states. FLAC loops and state changes overlap smoothly over 2–3 seconds. Death keeps the critical state until respawn or level exit. Protection is estimated from armor type and available HUD information, not simply health plus armor.
A track selected manually or started by a musical AVFX preset takes priority over player-state ambience. Disconnecting restores ordinary autoplay.
A separate Audio Assets guide lists PAK and loose-file paths, content and replacement options, including the supported intro file layout.
1. Sound modes
The s_enable setting selects one of three modes:
1. s_enable 0
Sound is fully disabled.
1. s_enable 1 = software (DMA)
The classic software mixer path.
This is the traditional Quake II model: the client mixes PCM audio itself and feeds the finished stream into the system sound driver.
1. s_enable 2 = OpenAL
A modern 3D backend with spatial positioning, HRTF, a binaural layer, room acoustics, extra sound profiles, OpenAL resamplers, and a broader runtime feature set.
The current default backend in Q2PRO-X is `OpenAL`.
2. Where to find all of this in the menu
| What you are setting | Menu path |
|---|---|
| Sound engine, acoustics, submenus | Main menu → Options → Sound & Acoustics |
| Advanced sound settings | Main menu → Options → Sound & Acoustics → Q2PRO-X / Advanced audio |
| Binaural and 3D sound | Main menu → Quick Setup → Binaural / 3D Sound |
| Sound volumes | Main menu → Options → Sound & Acoustics → Sound Volumes |
| Weapon volumes | Main menu → Options → Sound & Acoustics → Sound Volumes → Weapon Volumes |
| Other sound volumes | Main menu → Options → Sound & Acoustics → Sound Volumes → Other Sound Volumes |
| AVFX sound volumes | Main menu → Advanced Visual Effects → AVFX Detailed Settings → Local FX & Sound → AVFX Sound Volumes |
| Online music | Main menu → Online Music (PROMODJ) |
| Voice chat | Main menu → Quick Setup → Q2PRO-X / Voice Chat |
The main sound page
Sound & Acoustics
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Navigation | Hit feedback... | q2prox_hitsound | Enable hit feedback, choose its sound and volume. | |
| Section | Basics | Basics | ||
| List | Basics | Sound engine | s_enable | s_enable: OpenAL is required for al_profile, HRTF, room acoustics. Applies immediately. [no sound / software / OpenAL] |
| Toggle | Basics | Follow default output device | s_auto_device | Follow the OS default audio output live. When you switch the Windows output (headphones <-> speakers), the game moves to it automatically with no snd_restart. OpenAL + default device only (a specific al_device is left alone). Default ON. Applies immediately. |
| Slider | Basics | Master volume | s_volume | s_volume: master sound volume (0..1). Applies immediately. |
| Slider | Basics | Music volume | ogg_volume | ogg_volume: OGG music / soundtrack volume (0..1). Applies immediately. |
| List | Basics | Ambient sounds | s_ambient | s_ambient: looping ambient world sounds. 0 = off, 1 = on, 2 = only from visible (model) entities, e.g. rocket flybys. Applies immediately. [no / yes / only player's own] |
| Slider | Basics | Max voices | s_maxchannels | s_maxchannels: max simultaneous voices (default 64). Raise if sounds drop in heavy storms/AVFX; driver may cap OpenAL lower (see soundinfo). Applies via snd_restart. |
| Section | Submenus | Submenus | ||
| Navigation | Submenus | OpenAL & acoustics... | q2prox_sound | OpenAL profile, reverb, HRTF, room acoustics. |
| Navigation | Submenus | Headphone 3D sound... | q2prox_binaural | Headphone 3D / HRTF / crossfeed / encoding. |
| Navigation | Submenus | Sound volumes... | q2prox_sound_vol | Sound volume hub: weapons, other categories, AVFX sounds |
| Navigation | Submenus | Advanced audio... | q2prox_advanced_audio | Underwater filter, focus, mix-ahead, swap stereo, music (ogg) options. |
| Navigation | Submenus | Voice chat... | q2prox_voice | In-game voice chat (PTT / VAD, LiveKit; OpenAL required for transmit and receive). |
| Navigation | Submenus | Online music... | q2prox_online_music | Open the online music player (PROMODJ): search, play, overlay. |
| Navigation | Submenus | Player state ambient... | q2prox_health_ambient | Adaptive music based on health and protection. |
| Section | Behavior | Behavior | ||
| Toggle | Behavior | Mute when inactive | s_mute_when_inactive | Mute audio when the window is not focused (Alt+Tab). Applies immediately. |
| Navigation | Behavior | Restart sound... | snd_restart | Restart the sound engine to apply s_enable / s_maxchannels changes. |
Some older base variables and music options are still reachable only from the console or the cvar reference, even though the main modern sound controls are already exposed on dedicated Q2PRO-X pages.
3. The base model: how sound is structured in Q2PRO-X
3.1 What DMA means in Q2PRO-X
DMA uses the classic software mixer:
Advantages:
Disadvantages:
3.2 What OpenAL means in Q2PRO-X
OpenAL is a dedicated audio backend/API for spatial sound.
In Q2PRO-X it provides:
Advantages:
Disadvantages:
4. The main split: DMA or OpenAL
When DMA usually makes sense
Choose DMA if you want:
Typical scenario:
When OpenAL usually makes sense
Choose OpenAL if you want:
Typical scenario:
5. s_enable: the master backend switch
What it does
s_enable selects the backend:
When to apply it
When you change s_enable, you will normally need:
snd_restart
Practical advice
If you are not sure where to begin:
6. General theory: sample rate, format, precision, resampling
Before the concrete cvars, it helps to understand a few basic audio terms.
6.1 What sample rate / output rate means
This is the output sampling frequency — how many “snapshots” of the audio signal are produced each second.
Examples:
The higher the rate:
In Q2PRO-X, this is controlled by:
Important:
soundinfo
6.2 What sample format means
This is how a single audio sample is represented internally or on output.
In current Q2PRO-X, the relevant choices are:
s16
Classic 16-bit PCM.
Advantages:
Disadvantages:
float32
32-bit floating-point audio.
Advantages:
Disadvantages:
This is controlled by:
After changing it, use:
snd_restart
6.3 What a resampler is
A resampler is the algorithm that converts sound from one frequency / representation into another.
This matters when:
A poor resampler can cause:
A better resampler can provide:
But:
7. Settings that matter in both DMA and OpenAL
Below are the shared controls that are useful regardless of backend.
s_volume
The main master game volume.
Current base default in code:
This is the overall game level on top of which narrower weapon/category volumes can later be applied.
s_khz
Requested output rate.
Common choices:
In practice:
s_sampleformat
Preferred sample format:
A good practical choice:
s_ambient
Controls ambient/world sounds.
Values:
Useful if you want less map noise without removing every useful cue.
s_mute_when_inactive
When the game window loses focus (Alt+Tab, click another window), the client can mute itself.
Values:
ogg_enable
Enables OGG background music.
ogg_volume
Music volume relative to the master sound level.
ogg_shuffle
Random music order.
These cvars do not change combat positional audio, but they do shape the overall sound environment.
soundinfo
Displays the current audio configuration.
Use it to see:
snd_restart
The main “restart the sound backend” command.
It is needed after most major sound-path changes:
8. What exists only, or primarily, in DMA
s_driver
This selects the DMA driver.
On Windows, typical values are:
If empty, auto-detection is used.
Practical meaning:
s_mixahead
This is the DMA mix-ahead window.
In practical terms:
If the value is lower:
If the value is higher:
Practical range:
This setting affects DMA playback.
s_swapstereo
Swaps left and right channels.
Only works in DMA.
Useful only rarely:
s_resampler
This is the DMA resampler.
Values:
What they mean
legacy
The old, simplest path.
Advantages:
Disadvantages:
linear
Linear interpolation.
A compromise:
cubic
Cubic interpolation.
Usually:
When DMA still makes sense today
DMA is a logical choice if you want:
9. What exists only in OpenAL
Everything below is part of the main reason to choose OpenAL.
Key OpenAL-only feature families
10. al_profile: the difference between OpenAL Q2PRO-X and R1Q2-like
What the profile changes
al_profile selects the OpenAL sound behavior: 0 is Q2PRO-X and 1 is R1Q2-like. The profiles differ in distance attenuation, looping world sounds and the presentation of positional cues. Volume and resampling quality have separate controls.
Q2PRO-X profile
Main idea:
Under the hood it is closer to:
In practice:
R1Q2-like profile
Main idea:
Under the hood it is closer to:
In practice:
Practical rule of thumb
If you want:
11. al_sound_profile: ready-made acoustic profiles
Available profiles
al_sound_profile applies a set of room-acoustics values. It lets you choose an overall sound character before adjusting individual reverb controls. The available profiles are custom, competitive, balanced, immersive, cinematic and cathedral.
Important logic
These profiles do not govern everything. They mainly govern the acoustic layer:
And they must not override:
Changing an acoustic profile leaves the audio backend, output format, resamplers and HRTF selection as you set them.
Choosing a profile
12. HRTF: what it is and how it works
How HRTF works
HRTF stands for Head-Related Transfer Function. It models how the head and outer ears change sound arriving from different directions, then reproduces those differences through stereo headphones.
Ordinary stereo provides left/right separation, but sounds from behind, in front or above can be harder to distinguish. HRTF can improve these cues and make sound seem to come from outside the headphones. The result depends on the listener and the selected HRTF model: some combinations colour the sound or make direction harder to judge. Compare it with ordinary stereo using familiar in-game sounds.
In Q2PRO-X
HRTF is controlled through OpenAL / binaural settings.
Practical recommendation:
13. Binaural sound: what it is and how it differs from plain HRTF
Binaural rendering and HRTF
Binaural rendering prepares stereo output for headphones using the differences between what each ear would hear. HRTF is the model of the head and ears within that process; the broader binaural configuration also controls encoding, filter length and crossfeed.
Q2PRO-X lets you use the OpenAL HRTF path by itself or configure the dedicated binaural layer with its own headphone profiles.
Main binaural cvars
al_binaural
Master on/off switch for the binaural layer.
Typical values:
al_binaural_profile
Curated headphone voicing profile for the binaural layer.
The idea is similar to al_sound_profile, but specifically for headphone rendering.
al_binaural_encoding
Selects how the binaural path encodes the output.
Think of this as:
al_binaural_hrtf_mode
Controls how HRTF is selected or enforced inside the binaural path.
Typical meaning:
al_binaural_hrtf_size
Theory: what filter size means
This is effectively the size/length of the HRTF filter.
Larger filters can:
But they can also:
al_binaural_crossfeed
What crossfeed changes
Crossfeed mixes a controlled amount of the left signal into the right channel and vice versa. With speakers, each ear hears some sound from both sides; headphones separate the channels much more strongly. A small amount of crossfeed can make that separation less tiring, but too much blurs directional cues. Start low and compare it with crossfeed disabled.
14. Reverb / room acoustics: what it is
Room reflections and the reverb tail
Reverb consists of reflections that follow the direct sound and gradually fade. It helps distinguish a corridor, a large hall or an open area, but a strong tail can mask footsteps and other short sounds during a match. Q2PRO-X provides a room-acoustics switch and separate controls for the amount, duration and character of those reflections.
15. Reverb parameters: each one explained
al_reverb
Master enable for room acoustics / reverb.
Values:
If you want the simplest OpenAL path:
If you want room simulation:
al_reverb_lerp_time
How transitions work
al_reverb_lerp_time controls the transition when the client changes room presets. A longer transition makes the change smoother; a shorter one responds more quickly when you move between spaces.
al_eax_preset
Room preset selector.
Typical meaning:
Usually:
al_eax_wet
Direct and reverberated sound
“Wet” is the reverberated part of the signal; “dry” is the direct sound. Raise al_eax_wet to hear more room reflections, or lower it for a drier, more direct result.
al_eax_local_wet
This is the wetness for local / near-player sounds.
Very useful because many players want:
If local wet is too high:
al_eax_occlusion
Theory: what occlusion means
Occlusion means a sound is partially blocked by geometry or material between the source and the listener.
Typical audible effect:
If this is enabled:
If disabled:
al_eax_explosion_wet
Specific wetness / reverb send for explosions.
Useful when you want:
al_eax_explosion_decay
Reverb duration
Decay controls how long the reverb tail takes to fade. A higher al_eax_explosion_decay makes the aftermath of an explosion last longer; reduce it if blasts obscure other sounds for too long.
al_eax_explosion_late
Late reverb emphasis for explosions.
Useful if you want:
al_eax_transport_wet
Reverb send / environment treatment for transport-like world spaces or loops.
Useful if:
al_reverb_reflections
Theory: what early reflections are
These are the first, more distinct reflections that arrive after the direct sound.
They help the ear feel:
If reflections are stronger:
al_reverb_late
Theory: what late reverb is
This is the later, more diffuse tail of the room, where individual reflections blur into one cloud-like reverberant field.
If late is higher:
al_reverb_decay
General decay-time multiplier.
If increased:
If reduced:
al_reverb_delay
Reflection delay
al_reverb_delay controls the separation between the direct sound and its reflections. A longer delay suggests a larger room; a shorter one makes the space sound tighter.
al_reverb_hf
Theory: what HF brightness means
HF = high frequency.
This controls how bright or dark the reverberant tail is.
If higher:
If lower:
al_reverb_diffusion
Theory: what diffusion means
Diffusion controls how smooth and dense the reverberant field feels.
If higher:
If lower:
al_eax_debug
Diagnostic/debug mode.
Useful to inspect:
16. Commands for OpenAL / reverb / binaural
al_reverb_info
Prints:
Use it to see which room settings are active while you adjust the acoustics.
al_reverb_reload
Forces the client to rebuild / re-snap the current reverb preset.
Useful:
al_binaural_info
Prints:
al_resampler_list
Prints the actual list of OpenAL resamplers available from the runtime.
This matters because the theoretical set can include:
But the actual runtime should always be checked in practice.
17. al_resampler: the OpenAL resampler
This is the OpenAL-specific resampler choice.
Typical values:
What these mean in practice
point
The roughest and simplest path.
Think of it as:
This is more of an experiment / fallback path than a best daily choice.
linear
Simple compromise.
cubic
A smoother and usually higher-quality option.
bsinc12 / bsinc24
More advanced sinc-like choices.
Usually:
Practical choices
If you do not want to think too much:
If you want a good high-quality but not too exotic option:
If you want to experiment with OpenAL Soft’s highest-quality path:
After changing it:
snd_restart
18. Per-weapon and per-category volume controls
Adjust individual weapons and sound groups without changing the overall game volume.
How the scale works
The menu scale is:
The scale is relative to the standard sound level: 50 is neutral, and 100 doubles it rather than representing an ordinary 100% ceiling.
Weapon volumes
There are dedicated cvars for:
This lets you:
Category volumes
There are also category cvars:
Practical examples
For competitive play
It often makes sense to:
For a more cinematic sound
You can:
19. What requires snd_restart, and what changes live
Usually requires snd_restart
Usually applies live
Practical rule
If you change:
you should immediately think:
snd_restart
If you are only tuning:
the change is usually already live.
20. Current important defaults
Below are not all sound cvars in the project, but the ones that matter most for real-world setup.
Base sound defaults
| Cvar | Current default value | What it means |
|---|
| s_enable | 0=sound is disabled / 1=use DMA sound engine / 2=use OpenAL sound engine | Specifies which sound engine to use. Default value is 1. |
|---|
| s_khz | 11/22/44/48 | sound output sample rate (kHz) |
|---|
| s_sampleformat | u8/s16/f32 | sample format |
|---|
| s_resampler | linear/cubic | software sound resampler |
|---|
| s_volume | 0..1 | master sound volume |
|---|
| s_ambient | 0=all ambient sounds are disabled / 1=all ambient sounds are enabled / 2=only ambient sounds from visible entities are enabled (rocket flybys, etc) / 3=only ambient sounds from player entity are enabled (railgun hum, hand grenade ticks, etc) | Specifies if ambient sounds are played. Default value is 1. |
|---|
| s_underwater | 0/1 | Enables lowpass sound filter when underwater. Default value is 1 (enabled). |
|---|
| s_underwater_gain_hf | 0..1 | Specifies HF gain value for lowpass sound filter. Default value is 0.25. |
|---|
| s_mute_when_inactive | 0=use s_auto_focus (default) / 1=mute when inactive regardless of s_auto_focus | Mute the sound engine when the game window loses focus (Alt+Tab or clicking away). Prevents Q2PRO-X from bleeding audio into other applications. |
|---|
| ogg_enable | 0/1 | Enables automatic playback of background music in supported formats. Default value is 1. |
|---|
| ogg_volume | 0..1 | Background music volume, relative to master volume. Default value is 1. |
|---|
| ogg_shuffle | 0/1 | Play _all_ supported files from the music directory in random order, ignoring track numbers. Default value is 0 (disabled). |
|---|
OpenAL defaults
| Cvar | Current default value | What it means |
|---|
| al_profile | string | OpenAL tuning profile preset |
|---|
| al_reverb | 0=dry OpenAL (no reverb) / 1=room-acoustics reverb; default 0 | Master switch for the Q2PRO-X OpenAL EFX room-acoustics reverb layer. When on, each level zone is classified and a matching reverb preset is applied with smooth parameter lerp on transitions. When off, OpenAL still runs but without reverb — dry sound. |
|---|
| al_reverb_lerp_time | 0..5 (seconds) | Reverb parameter smoothing time on preset change, in seconds. Higher = smoother but more audible lag between zones. |
|---|
| al_eax_preset | auto=classifier-driven (default) / indoor / outdoor / generic | EAX preset for the current map / zone. auto runs the internal classifier per zone. indoor / outdoor / generic override the classifier with a fixed preset for cases where the classifier misreads a level. |
|---|
| al_eax_wet | 0..1 (0 = dry, 1 = wet) | EAX wet gain: master volume of the reverb send. 0 = no reverb, 1 = full reverb. |
|---|
| al_eax_local_wet | 0..1 | EAX wet gain override for locally-emitted sounds (your own footsteps, jumps, land sounds). Usually lower than environmental sound wet — your own sounds should feel present, not echoed. |
|---|
| al_eax_occlusion | 0=no occlusion / 1=EAX occlusion active | Enable EAX occlusion: sounds behind walls / blocking geometry are muffled with a low-pass filter simulating the occluding material. Adds realism but costs a bit of audio CPU. |
|---|
| al_reverb_reflections | 0..10 | Reverb early-reflection gain — volume of the 'early' portion (first few bounces) of the reverb response. |
|---|
| al_reverb_late | 0..10 | Reverb late-reflection gain — controls the volume of the 'tail' portion of the reverb after the early reflections. |
|---|
| al_reverb_decay | 0.1..20 (seconds) | Reverb tail decay time, in seconds — larger = longer echo tail (cathedral). Smaller = shorter tail (small room). |
|---|
| al_reverb_delay | 0..0.1 (seconds) | Reverb pre-delay (sec). Delay between the dry sound and the first reflections. |
|---|
| al_reverb_hf | 0..1 | Reverb high-frequency gain. Lower values attenuate high frequencies in the reverb tail (simulates soft surfaces / carpeting). |
|---|
| al_reverb_diffusion | 0..1 | Reverb diffusion — density of reflections. 0 = sparse / flutter; 1 = smooth dense reverb. |
|---|
| al_resampler | default/linear/cubic | OpenAL resampler |
|---|
| al_sound_profile | string | sound profile preset (acoustic target) |
|---|
Binaural defaults
| Cvar | Current default value | What it means |
|---|
| al_binaural | 0/1 | enable binaural 3D sound path |
|---|
| al_binaural_profile | string | binaural tuning profile |
|---|
| al_binaural_encoding | auto/stereo/hrtf | binaural encoding backend |
|---|
| al_binaural_hrtf_mode | auto/on/off | HRTF mode for binaural rendering |
|---|
| al_binaural_hrtf_size | small/medium/large | HRTF dataset size |
|---|
| al_binaural_crossfeed | 0..1 | binaural crossfeed amount |
|---|
Per-weapon / per-category defaults
All weapon/category volume cvars start at:
That means:
21. Recommended starting configurations
Option 1: speakers, simple and clean sound
set s_enable 1
set s_khz 48
set s_sampleformat auto
set s_resampler linear
snd_restart
Meaning:
Option 2: general-purpose OpenAL on speakers
set s_enable 2
set al_profile 0
set al_hrtf 0
set al_reverb 1
set al_sound_profile balanced
set al_resampler cubic
snd_restart
Meaning:
Option 3: headphones, competitive OpenAL
set s_enable 2
set al_profile 1
set al_hrtf 2
set al_reverb 0
set al_binaural 2
set al_binaural_profile default
snd_restart
Meaning:
Option 4: headphones, spatial modern Q2PRO-X
set s_enable 2
set al_profile 0
set al_hrtf 2
set al_reverb 1
set al_sound_profile balanced
set al_binaural 2
set al_binaural_profile deep
snd_restart
Meaning:
22. What to tune for which problem
Problem: “it feels too dry”
Try:
Problem: “it feels too smeared / too much tail”
Try:
Problem: “on headphones I still do not read direction well”
Try:
Problem: “my own sounds are too boomy inside the room”
Try:
Problem: “explosions do not feel big enough”
Try:
Problem: “movers / loops / hum are too loud”
Try:
23. Feature availability matrix: what works where
| Feature / parameter | DMA | OpenAL |
|---|
| s_driver | dsound=DirectSound / wave=Windows waveform audio / sdl=SDL2 audio | Specifies which DMA sound driver to use. Default value is empty (detect automatically). Possible sound drivers are (not all of them are typically available at the same time, depending on how client was compiled): |
|---|
| s_mixahead | 0.05..0.3 | sound mix-ahead time (sec) |
|---|
| s_swapstereo | 0/1 | Swap left and right audio channels. Only effective when using DMA sound engine. Default value is 0 (dont swap). |
|---|
| s_resampler | linear/cubic | software sound resampler |
|---|
| al_profile | string | OpenAL tuning profile preset |
|---|
| al_hrtf | 0=force HRTF off / 1=use OpenAL Soft default setting (typically auto) / 2=force HRTF on | Specifies if HRTF mixing is allowed when using OpenAL Soft. Default value is 0. |
|---|
| al_binaural* | no | yes |
|---|
| al_reverb* / al_eax* | no | yes |
|---|
| al_resampler | default/linear/cubic | OpenAL resampler |
|---|
| al_resampler_list | no | yes |
|---|
| al_reverb_info | no | yes |
|---|
| al_binaural_info | no | yes |
|---|
| per-weapon volumes | yes | yes |
|---|
| per-category volumes | yes | yes |
|---|
| ogg_* music controls | yes | yes |
|---|
| s_mute_when_inactive | 0=use s_auto_focus (default) / 1=mute when inactive regardless of s_auto_focus | Mute the sound engine when the game window loses focus (Alt+Tab or clicking away). Prevents Q2PRO-X from bleeding audio into other applications. |
|---|
24. Built-in voice chat
Voice chat requires OpenAL for both microphone transmission and playback. Select s_enable 2 if you want to use it alongside game audio.
25. The shortest practical cheat sheet
If you want the shortest version:
26. Suggested setup order
Start by choosing DMA or OpenAL. With OpenAL, compare the Q2PRO-X and R1Q2-like profiles, then decide whether to enable HRTF and room acoustics. Once direction and room sound suit you, balance the weapon and sound-category volumes. Keeping that order makes it easier to hear what each change does.
27. AVFX audio
The AVFX layer has audio of its own, with volumes separated from the game's overall volume.
27.1. AVFX sound volumes
Menu path: Main menu → Advanced Visual Effects → AVFX Detailed Settings → Local FX & Sound → AVFX Sound Volumes
AVFX Sound Volumes
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Master | Master | ||
| Toggle | Master | Sounds | cl_avfx_audio | Master gate for all AVFX sound layers (thunder, rain/wind/snow/water beds, drop ticks, ring plips, footsteps). Silent if a layer's WAV is missing. Applies immediately. |
| Slider | Master | Sound volume | cl_avfx_audio_volume | Overall loudness of AVFX sound effects (multiplies s_volume and every sub-layer). Applies immediately. |
| Section | Weather & environment | Weather & environment | ||
| Toggle | Weather & environment | Wind sound | cl_avfx_audio_wind | Gate for the wind audio layer: ambient wind/dust/ash/fog loops, storm variant and gust one-shots. Silent if WAV missing. Applies immediately. |
| Toggle | Weather & environment | Rain sound | cl_avfx_audio_rain | Gate for the main rain-noise loops (light/normal/heavy + underwater). Drop ticks and ring plips have their own gates. Silent if WAV missing. Applies immediately. |
| Toggle | Weather & environment | Rain drop sound | cl_avfx_audio_rain_drops | Allow close raindrop tick sounds (rain preset only). Silent if WAV missing. Applies immediately. |
| Toggle | Weather & environment | Snow sound | cl_avfx_audio_snow | Gate for the snow-preset ambience: a deliberately soft winter-wind loop (snow_wind_loop.wav), not loud snow noise. Silent if WAV missing. Applies immediately. |
| Toggle | Weather & environment | Water sound | cl_avfx_audio_water | Allow ring-plip and soft water-surface sounds for AVFX water contacts (if WAVs present). Applies immediately. |
| Toggle | Weather & environment | Thunder | cl_avfx_audio_thunder | Allow thunder sound tied to lightning events. Applies immediately. |
| Navigation | Weather & environment | Events & sky... | q2prox_avfxvol_events | Open steam, sky-event, spaceship and Black-Hole sound controls. |
| Navigation | Weather & environment | Contacts & wildlife... | q2prox_avfxvol_contacts | Open surface-contact and positional wildlife sound controls. |
| Section | Service | Service | ||
| Navigation | Service | AVFX sounds off | set cl_avfx_audio 0 | Mute AVFX through its master only. Child preferences and all visual/non-AVFX settings stay untouched. |
| Navigation | Service | Restore AVFX sound defaults | cl_avfx_defaults_audio | Restore every AVFX sound control to its registered default. Optional Black-Hole audio remains OFF by default. |
Separate child pages own the events and the contacts:
AVFX Sounds / Events & Sky
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Steam | Steam | ||
| Toggle | Steam | Steam sound | cl_avfx_audio_lava_steam | Short evaporation hiss when rain/snow hits lava; loudness scales with particle size. Visual steam is separate. Applies immediately. |
| Toggle | Steam | Surface steam sound | cl_avfx_audio_lava_surface_steam | Softer positional hiss from melting snow/water at lava edges (steam_surface_hiss1..3), at the soft surface-steam point. Applies immediately. |
| Toggle | Steam | Snow impact steam audio | cl_avfx_weapon_snow_steam_audio | Separate steam hiss for hot weapon hits on snow. The visual steam stays part of the weapon effect. Applies immediately. |
| Section | Celestial | Celestial | ||
| Toggle | Celestial | Impact bang | cl_avfx_audio_impact | Allow an explosion bang at the lightning strike point (rocket-style, fades with distance). Applies immediately. |
| Toggle | Celestial | Impact meteor audio | cl_avfx_audio_meteor_impact | Falling impact meteor audio (entry hiss, flyby whoosh, impact boom, debris). Missing WAVs silent. Applies immediately. |
| Toggle | Celestial | Sky meteor audio | cl_avfx_audio_meteor | Sky meteor audio (burnup crack). Missing WAV silent. Applies immediately. |
| Toggle | Celestial | Spaceship flyby audio | cl_avfx_spaceships_sound | Sky spaceship flyby sound. Default ON. 0 = silent ships. Missing WAVs silent. Applies immediately. |
| Slider | Celestial | Spaceship flyby volume | cl_avfx_spaceships_sound_volume | Sky spaceship flyby volume. 0.35 (default). 0 = silent. Applies immediately. |
| Toggle | Celestial | Black Hole audio | cl_avfx_blackhole_consumption_audio | Black Hole presence sound: a deep gravitational bed that grows with the hole's APPARENT size, plus a shear layer positioned toward the hole. Requires AVFX audio and a visible Black Hole; independent of the optional consumption master. Default OFF. Missing WAVs silent. Applies immediately. |
| Slider | Celestial | Black Hole volume | cl_avfx_blackhole_consumption_audio_volume | Black Hole presence volume before the global AVFX gain. 0.70 (default). Applies immediately. |
| Slider | Celestial | View focus | cl_avfx_blackhole_consumption_audio_focus | How much looking at the hole lifts the shear layer. The hole stays audible behind you: this shapes the mix, it never mutes it. 0.30 (default). Applies immediately. |
| Toggle | Celestial | Black Hole events | cl_avfx_blackhole_consumption_audio_events | Bounded Black Hole events: object in-draw, celestial shear and positional rock fracture from Surface Lift. Bursts use fixed voice/cooldown limits. Default OFF. Applies immediately. |
| Slider | Celestial | Black Hole event volume | cl_avfx_blackhole_consumption_audio_events_volume | Volume of the Black Hole in-draw and shear events, before the global AVFX gain. Independent of the presence bed volume. 0.80 (default). Applies immediately. |
| Navigation | Celestial | Back | q2prox_avfxvol | Back to master, weather and contact AVFX sounds. |
AVFX Sounds / Contacts & Wildlife
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Surface footsteps | Surface footsteps | ||
| Toggle | Surface footsteps | Surface step sounds | cl_avfx_audio_surface_steps | Master gate for AVFX surface-contact step audio. Enables snow, wet and puddle step layers when their own sub-gates and assets are present. Applies immediately. |
| Toggle | Surface footsteps | Puddle step sounds | cl_avfx_audio_puddle_steps | Allow wet footstep sounds when the player walks or runs through visible AVFX puddles. Requires Surface step sounds and the AVFX sound master. Applies immediately. |
| Toggle | Surface footsteps | Snow step sounds | cl_avfx_audio_snow_steps | Allow snow footstep sounds on visible snow cover. Volume and depth follow visible snow and snowdrift growth. Applies immediately. |
| Section | Wildlife | Wildlife | ||
| Toggle | Wildlife | Hiss on tongue flick | cl_avfx_surface_materials_crawlers_audio_hiss | Play a positional hiss when a Snake opens its mouth and shoots its tongue. Several Snakes may hiss independently. Requires the global AVFX sound master. Default off. Applies immediately. |
| Slider | Wildlife | Hiss volume | cl_avfx_surface_materials_crawlers_audio_hiss_volume | Snake hiss volume before the global AVFX audio volume. Applies immediately. |
| Toggle | Wildlife | Fly buzzing | cl_avfx_surface_materials_crawlers_audio_flies | Play varied positional buzzing around Snake remains after flies arrive. Different carcasses sound independently. Default off. Applies immediately. |
| Slider | Wildlife | Fly volume | cl_avfx_surface_materials_crawlers_audio_flies_volume | Corpse-fly buzz volume before the global AVFX audio volume. Applies immediately. |
| Navigation | Wildlife | Back | q2prox_avfxvol | Back to master, weather and contact AVFX sounds. |
That separation lets you keep the weather visible but quiet — a frequent choice for competitive play.
28. Music
28.1. Three independent sources
The three music sources have separate controls and playback priorities:
| Source | What it is | What controls it |
|---|---|---|
| Startup intro | A separate presentation on a cold launch into the menu | Its own switch; game-music settings do not reach it |
| Online music | The PROMODJ player with search, playback and an overlay | The online music menu |
| Game music | The classic Quake II music | Its own game-music variables |
The order at launch is fixed: the intro always plays first, and online-music autoplay begins when it ends.
Details about the presentation are in the startup intro guide.
28.2. Online music
Online Music (PROMODJ)
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Playback | Playback | ||
| List | Playback | Music visualization in menus | cl_music_online_menu_visualization | Music-only fullscreen background behind menus, synchronized to playback. Global; off by default. Applies immediately. [Off / Spectrum / Waveform / Radial spectrum / Spectrogram / Automatic] |
| Slider | Playback | Visualization opacity | cl_music_online_menu_transparency | Visualization alpha: 0 = invisible, 1 = full intensity; default 0.10. Global, independent of menu opacity. Applies immediately. |
| Toggle | Playback | Online music | cl_music_online_enable | Master (off = no network). Applies immediately. |
| Field | Playback | Provider | cl_music_online_provider | cl_music_online_provider (one provider today: promodj). |
| Slider | Playback | Volume | cl_music_online_volume | cl_music_online_volume (s_volume stays master). Applies immediately. |
| Toggle | Playback | Console messages | cl_music_online_console_status | Show online-player status/debug messages in the console. Off keeps routine playback silent. Applies immediately. |
| Toggle | Playback | Autoplay | cl_music_online_autoplay | cl_music_online_autoplay. Applies immediately. |
| Toggle | Playback | Pause in game | cl_music_online_autopause_game | cl_music_online_autopause_game. Applies immediately. |
| Toggle | Playback | Resume after game | cl_music_online_resume_after_game | cl_music_online_resume_after_game. Applies immediately. |
| Section | Genres & Queue | Genres & Queue | ||
| List | Genres & Queue | Genre mode | cl_music_online_genre_mode | cl_music_online_genre_mode. Applies immediately. [All / Selected / Random] |
| Toggle | Genres & Queue | Random | cl_music_online_random | cl_music_online_random. Applies immediately. |
| Toggle | Genres & Queue | Autoplay results | cl_music_online_autoplay_results | cl_music_online_autoplay_results. Applies immediately. |
| List | Genres & Queue | Queue mode | cl_music_online_queue_mode | cl_music_online_queue_mode. Applies immediately. [Sequential / Roulette] |
| List | Genres & Queue | End mode | cl_music_online_end_mode | cl_music_online_end_mode. Applies immediately. [Stop / Loop playlist / Loop track] |
| List | Genres & Queue | Lucky scope | cl_music_online_lucky_scope | cl_music_online_lucky_scope. Applies immediately. [Selected genre / Random genre / All music] |
| Toggle | Genres & Queue | Lucky continuous | cl_music_online_lucky_continuous | cl_music_online_lucky_continuous. Applies immediately. |
| Field | Genres & Queue | Base URL | cl_music_online_base_url | cl_music_online_base_url. |
| Field | Genres & Queue | Preferred genres | cl_music_online_preferred_genres | Genre slugs separated by ;, for example dark_ambient;trance. Spaces in a name become underscores. |
| Section | Player & Overlay | Player & Overlay | ||
| Navigation | Player & Overlay | Open player... | music_online_open | Open the online music overlay. |
| Navigation | Player & Overlay | I'm feeling lucky | music_online_lucky | Play a random track (lucky). |
| Navigation | Player & Overlay | Probe... | music_online_probe | Diagnostic probe (console output). |
| Navigation | Player & Overlay | Overlay appearance... | q2prox_online_music_overlay | Overlay appearance settings. |
| Navigation | Player & Overlay | Demo player profile... | q2prox_online_music_demo | Demo player music profile. |
| Key | Player & Overlay | Toggle player | music_online_toggle | Bind a key to open/close the online music player overlay. |
| Navigation | Player & Overlay | Sound settings... | g_sound | Open the main sound & acoustics menu. |
| Section | Reset | Reset | ||
| Navigation | Reset | Reset... | set cl_music_online_enable 0; set cl_music_online_provider promodj; set cl_music_online_base_url https://promodj.com/music; set cl_music_online_preferred_genres ""; set cl_music_online_volume 0.70; set cl_music_online_console_status 0; set cl_music_online_autoplay 0; set cl_music_online_autopause_game 1; set cl_music_online_resume_after_game 1; set cl_music_online_genre_mode 0; set cl_music_online_random 0; set cl_music_online_autoplay_results 0; set cl_music_online_queue_mode 0; set cl_music_online_end_mode 0; set cl_music_online_lucky_scope 0; set cl_music_online_lucky_continuous 1; set cl_music_online_menu_visualization 0; set cl_music_online_menu_transparency 0.10 | Reset online music to defaults. |
The player has its own overlay and a separate mode for watching recordings:
Online Music / Overlay
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Slider | Opacity | cl_music_online_overlay_alpha | cl_music_online_overlay_alpha. Applies immediately. | |
| Slider | Scale | cl_music_online_overlay_scale | cl_music_online_overlay_scale. Applies immediately. | |
| Toggle | Compact | cl_music_online_overlay_compact | cl_music_online_overlay_compact. Applies immediately. | |
| Toggle | Show styles | cl_music_online_overlay_show_styles | cl_music_online_overlay_show_styles. Applies immediately. | |
| Slider | Autohide | cl_music_online_overlay_autohide_sec | cl_music_online_overlay_autohide_sec (0=off). Applies immediately. | |
| Navigation | Reset placement... | set cl_music_online_overlay_x -2147483648; set cl_music_online_overlay_y -2147483648; set cl_music_online_overlay_w 0; set cl_music_online_overlay_h 0 | Reset overlay placement (x/y/w/h). | |
| Navigation | Reset appearance... | set cl_music_online_overlay_alpha 0.90; set cl_music_online_overlay_scale 1.20; set cl_music_online_overlay_compact 0; set cl_music_online_overlay_show_styles 1; set cl_music_online_overlay_autohide_sec 0 | Reset overlay appearance. |
Online Music / Demo Profile
| Type | Section | Row | Variable or target | What it does |
|---|---|---|---|---|
| Section | Playback | Playback | ||
| Toggle | Playback | Enable for demos | cl_demoplayer_music_online_enable | cl_demoplayer_music_online_enable. Applies immediately. |
| Field | Playback | Provider (demo) | cl_demoplayer_music_online_provider | cl_demoplayer_music_online_provider. |
| Field | Playback | Base URL (demo) | cl_demoplayer_music_online_base_url | cl_demoplayer_music_online_base_url. |
| Slider | Playback | Demo volume | cl_demoplayer_music_online_volume | cl_demoplayer_music_online_volume. Applies immediately. |
| Toggle | Playback | Demo autoplay | cl_demoplayer_music_online_autoplay | cl_demoplayer_music_online_autoplay. Applies immediately. |
| Toggle | Playback | Pause with demo | cl_demoplayer_music_online_pause_with_demo | cl_demoplayer_music_online_pause_with_demo. Applies immediately. |
| Section | Genres & queue | Genres & queue | ||
| Field | Genres & queue | Preferred genres (demo) | cl_demoplayer_music_online_preferred_genres | cl_demoplayer_music_online_preferred_genres (slugs, ; separated). |
| List | Genres & queue | Demo genre mode | cl_demoplayer_music_online_genre_mode | cl_demoplayer_music_online_genre_mode. Applies immediately. [All / Selected / Random] |
| Toggle | Genres & queue | Demo random | cl_demoplayer_music_online_random | cl_demoplayer_music_online_random. Applies immediately. |
| Toggle | Genres & queue | Demo autoplay results | cl_demoplayer_music_online_autoplay_results | cl_demoplayer_music_online_autoplay_results. Applies immediately. |
| List | Genres & queue | Demo queue | cl_demoplayer_music_online_queue_mode | cl_demoplayer_music_online_queue_mode. Applies immediately. [Sequential / Roulette] |
| List | Genres & queue | Demo end | cl_demoplayer_music_online_end_mode | cl_demoplayer_music_online_end_mode. Applies immediately. [Stop / Loop playlist / Loop track] |
| List | Genres & queue | Demo lucky scope | cl_demoplayer_music_online_lucky_scope | cl_demoplayer_music_online_lucky_scope. Applies immediately. [Selected genre / Random genre / All music] |
| Toggle | Genres & queue | Demo lucky continuous | cl_demoplayer_music_online_lucky_continuous | cl_demoplayer_music_online_lucky_continuous. Applies immediately. |
| Navigation | Genres & queue | Reset... | set cl_demoplayer_music_online_enable 0; set cl_demoplayer_music_online_provider promodj; set cl_demoplayer_music_online_base_url https://promodj.com/music; set cl_demoplayer_music_online_volume 0.70; set cl_demoplayer_music_online_autoplay 0; set cl_demoplayer_music_online_pause_with_demo 0; set cl_demoplayer_music_online_preferred_genres ""; set cl_demoplayer_music_online_genre_mode 0; set cl_demoplayer_music_online_random 0; set cl_demoplayer_music_online_autoplay_results 0; set cl_demoplayer_music_online_queue_mode 0; set cl_demoplayer_music_online_end_mode 0; set cl_demoplayer_music_online_lucky_scope 0; set cl_demoplayer_music_online_lucky_continuous 1 | Reset demo music profile. |
28.3. The music buttons beside the logo
While the intro plays, small round buttons are visible beside the main-menu logo: mute the intro sound, and end it smoothly. A separate button mutes the online music. These buttons never change the stored volumes.
28.4. Music never delays the game
Loading, playing and fading music are never allowed to delay a map load, a server connection or quitting. Beginning a map load ends the intro smoothly, and the fade runs on its own without holding anything up.
An unreachable online track does not leave the player stuck: the exact address that failed to open is shown, and a bounded move to another track is performed.
29. Item timer audio
Live item timers have an audio layer of their own: a general warning cue, a per-second countdown and a separate item-respawn cue. In rich mode, phrases for specific items are used.
Every file of that layer is optional: a missing file is silently skipped and never breaks the game. Details are in the live item timers guide.
30. Separate audio controls
Sound settings are grouped into four areas:
1. Game sound — the engine, spatialization, acoustics, volumes.
2. AVFX audio — weather, events and contacts with their own volumes.
3. Music — the intro, the online player and the classic game music.
4. Voice chat — a separate subsystem described in its own guide.
Each part is configured separately and does not cancel the others.
Music while the window is inactive
When inactive-window audio is muted, intro and online-music playback keep advancing silently. An intro that has finished does not resume when focus returns. Manual pause and separate online-music auto-pause rules remain supported.
Hit feedback sound
A short hit sound can confirm a hit on an opponent. Enable it in the online-game or sound settings and adjust its volume there or in the volume hub. The settings are shared across mods; English and Russian help is available in the menus, console and Cvar Browser.
The hit sound is off by default (s_hitsound 0). Updating the client preserves your saved choice.
Audio is independent of the visual hit marker, blood and AVFX switches. It can also follow a received victim pain or death event after the shooter moves behind cover. Blood and voice evidence for the same tracked shot do not create two feedback sounds.
Online-music visualization
Online music settings offers Menu music visualization: Off, Spectrum, Waveform, Radial spectrum, Spectrogram or Automatic. Off is the default. The background fills the screen behind the open menu and follows the current online track. It fades in and dissolves with falling particles when music stops. Radial layout follows screen dimensions.
Opacity ranges from 0 (invisible) to 1 (fully visible), default 0.10, controlled globally by cl_music_online_menu_transparency. The mode is cl_music_online_menu_visualization. Game sound effects do not drive this display. Disabling in-game music also remains effective across local bot map changes.
Intro music
Intro music follows Startup intro in the settings. It defaults to on. Disabling it keeps the visual intro without its music. The global cl_q2prox_startup_intro_music setting is shared with the intro's sound button.