Q2PRO-X

Q2PRO-X 1.6 Beta 5 by ly — Q2PRO-X 1.6 Beta 5 Sound Guide

The complete guide in HTML. The original DOCX is available from its documentation card.

Q2PRO-X 1.6 Beta 5 by ly

Q2PRO-X 1.6 Beta 5 Sound Guide

Q2PRO-X document image

Project author: ly

DMA, OpenAL, HRTF, reverberation, volumes and online music

English edition • Q2PRO-X 1.6 Beta 5 by ly • 2026-10-10


Contents

The entries are links: click one to jump to that section.

Beta4: audio and window focus

Player-state ambient and playback priority

Q2PRO-X: detailed sound guide

1. Quick map: what Q2PRO-X currently has for sound

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

9. What exists only in OpenAL

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

24. Relation to the built-in voice chat

25. The shortest practical cheat sheet

26. Conclusion

27. AVFX audio

28. Music

29. Item timer audio

30. Conclusion for the release's audio


Beta4: audio and window focus

The audio menu exposes all three s_auto_focus values: 0 always, 1 while visible (not minimized), 2 only when focused. The old Yes/No control did not represent these values correctly. Saved numeric preferences and volume are preserved; the separate s_mute_when_inactive override remains.

Online/adaptive audio can no longer resume a deactivated stream. OpenAL also mutes voice sources and effect tails, restores the selected volume on return and preserves manual music pause. Demo launch fades intro music before a separate demo music profile starts. Without that profile, normal background music pause/resume rules apply. Duplicate predicted/server rocket and hyperblaster impact audio and rocket/rail firing sequences have been fixed; server damage authority is unchanged.


Player-state ambient and playback priority

The sound menu adds optional health/armor ambient 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.

Explicit online tracks and musical AVFX presets take priority. Disconnect restores ordinary autoplay. Fixed genre selection and a false Playing state while a musical preset was actually paused.

A separate Audio Assets guide lists PAK and loose-file paths, content and replacement options, including the trusted intro restrictions.



Q2PRO-X: detailed sound guide

Why this document exists

The sound subsystem in Q2PRO-X is much richer than in a “plain Quake II client”, and that also makes it harder to understand. This guide collects both the practical and theoretical sides of the current Q2PRO-X sound stack:

which sound modes actually exist;
how DMA and OpenAL differ;
which options are available in each mode;
which settings apply live and which ones require snd_restart;
what HRTF, binaural sound, reverb, decay, diffusion, crossfeed, and the other parameters really mean;
what the difference is between OpenAL Q2PRO-X and R1Q2-like;
how to tune sound for different scenarios: speakers, headphones, competitive play, or a more immersive presentation.

This document is written as a user-facing guide, not as a private developer note.


1. Quick map: what Q2PRO-X currently has for sound

Q2PRO-X currently has three sound layers:

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 settingMenu path
Sound engine, acoustics, submenusMain menu → Options → Sound & Acoustics
Advanced sound settingsMain menu → Options → Sound & Acoustics → Q2PRO-X / Advanced audio
Binaural and 3D soundMain menu → Quick Setup → Binaural / 3D Sound
Sound volumesMain menu → Options → Sound & Acoustics → Sound Volumes
Weapon volumesMain menu → Options → Sound & Acoustics → Sound Volumes → Weapon Volumes
Other sound volumesMain menu → Options → Sound & Acoustics → Sound Volumes → Other Sound Volumes
AVFX sound volumesMain menu → Advanced Visual Effects → AVFX Detailed Settings → Local FX & Sound → AVFX Sound Volumes
Online musicMain menu → Online Music (PROMODJ)
Voice chatMain menu → Quick Setup → Q2PRO-X / Voice Chat

The main sound page

Sound & Acoustics

TypeSectionRowVariable or targetWhat it does
SectionBasicsBasics
ListBasicsSound engines_enables_enable: OpenAL is required for al_profile, HRTF, room acoustics. Applies immediately. [no sound / software / OpenAL]
ToggleBasicsFollow default output devices_auto_deviceFollow 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.
SliderBasicsMaster volumes_volumes_volume: master sound volume (0..1). Applies immediately.
SliderBasicsMusic volumeogg_volumeogg_volume: OGG music / soundtrack volume (0..1). Applies immediately.
ListBasicsAmbient soundss_ambients_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]
SliderBasicsMax voicess_maxchannelss_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.
SectionSubmenusSubmenus
NavigationSubmenusOpenAL & acoustics...q2prox_soundOpenAL profile, reverb, HRTF, room acoustics.
NavigationSubmenusHeadphone 3D sound...q2prox_binauralHeadphone 3D / HRTF / crossfeed / encoding.
NavigationSubmenusSound volumes...q2prox_sound_volSound volume hub: weapons, other categories, AVFX sounds
NavigationSubmenusAdvanced audio...q2prox_advanced_audioUnderwater filter, focus, mix-ahead, swap stereo, music (ogg) options.
NavigationSubmenusVoice chat...q2prox_voiceIn-game voice chat (PTT / VAD, LiveKit; OpenAL required for transmit and receive).
NavigationSubmenusOnline music...q2prox_online_musicOpen the online music player (PROMODJ): search, play, overlay.
NavigationSubmenusPlayer state ambient...q2prox_health_ambientAdaptive music based on health and protection.
SectionBehaviorBehavior
ToggleBehaviorMute when inactives_mute_when_inactiveMute audio when the window is not focused (Alt+Tab). Applies immediately.
NavigationBehaviorRestart sound...snd_restartRestart 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

In Q2PRO-X, DMA does not mean “magically better old-school sound”, and it does not mean hardware 3D.

It is the classic software path:

the client mixes all sounds itself;
chooses format, sample rate, and resampler;
writes the final PCM stream into the system sound driver.

Advantages:

simple and predictable;
closer to the classic Quake II client feel;
fewer advanced spatial and acoustics layers;
useful when you want a conservative sound path without HRTF and room acoustics.

Disadvantages:

no OpenAL layer;
no modern room acoustics;
no OpenAL HRTF / binaural path;
no OpenAL-specific resamplers;
less flexibility in spatial processing.

3.2 What OpenAL means in Q2PRO-X

OpenAL is a dedicated audio backend/API for spatial sound.

In Q2PRO-X it is used not just as “another driver”, but as a full foundation for:

spatial source positioning;
multiple distance models;
HRTF;
binaural headphone rendering;
EFX / room acoustics;
routing by source class;
OpenAL-specific resamplers.

Advantages:

modern spatial sound;
especially useful for headphones;
more control over acoustics;
much easier to adapt to competitive and immersive scenarios.

Disadvantages:

more complex;
bad tuning can make the sound too processed;
some changes require snd_restart;
some behavior depends on the OpenAL Soft runtime and device support.


4. The main split: DMA or OpenAL

When DMA usually makes sense

Choose DMA if you want:

the simplest and most classic sound path;
the minimum number of extra processing layers;
a sound character as close as possible to the traditional client;
no HRTF, binaural mode, or room acoustics.

Typical scenario:

playing on speakers;
wanting a conservative sound presentation;
not needing modern 3D headphone rendering.

When OpenAL usually makes sense

Choose OpenAL if you want:

stronger control over spatial sound;
headphone use with HRTF;
room acoustics / reverb;
sound profiles;
a binaural layer;
access to the full modern Q2PRO-X sound feature set.

Typical scenario:

playing on headphones;
wanting maximum spatial information;
wanting to tune the acoustic character more deeply;
using the built-in voice chat Phase 1, which also requires OpenAL for send/receive.


5. s_enable: the master backend switch

What it does

s_enable selects the backend:

0 = no sound
1 = software (DMA)
2 = OpenAL

When to apply it

When you change s_enable, you will normally need:

either restart sound... in the menu;
or in the console:

snd_restart

Practical advice

If you are not sure where to begin:

start with OpenAL if you play on headphones;
start with DMA if you want the simplest and most classic sound path.


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:

11 kHz
22 kHz
44 kHz
48 kHz
96 kHz

The higher the rate:

the more high-frequency detail can be represented;
the more work the backend must do;
the more stress there can be on the audio path and runtime.

In Q2PRO-X, this is controlled by:

s_khz

Important:

s_khz is the requested output rate;
the actual opened rate may differ;
to verify the real result, use:

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:

auto
s16
float32

s16

Classic 16-bit PCM.

Advantages:

maximum compatibility;
familiar and lightweight;
usually good enough for Quake II.

Disadvantages:

less headroom;
less internal precision during more complex processing.

float32

32-bit floating-point audio.

Advantages:

more headroom;
less risk of rough cumulative error under complex processing;
useful when the path includes multiple layers and you want a cleaner internal representation.

Disadvantages:

depends on backend/runtime support;
if the runtime cannot do float32, the client will fall back.

This is controlled by:

s_sampleformat

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:

the original sound asset is stored at one rate;
the backend/device runs at another;
the client must convert between them.

A poor resampler can cause:

graininess;
“stepped” sound;
rough high-frequency texture;
less pleasant transients.

A better resampler can provide:

smoother output;
fewer conversion artifacts;
a cleaner overall impression.

But:

it can cost more CPU;
in practice the difference is more obvious on some sound types than on others.


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:

0.7

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:

11
22
44
48
96

In practice:

44 or 48 are the most sensible general-purpose choices;
96 is more of an “I know exactly why I want this” option.

s_sampleformat

Preferred sample format:

auto
s16
float32

A good practical choice:

auto if you want the runtime to decide;
float32 if you use OpenAL and want a modern high-precision output path.

s_ambient

Controls ambient/world sounds.

Values:

0 = no
1 = yes
2 = only the player’s own sounds

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:

0 = do not mute
1 = mute

This is a very practical QoL setting.

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

Very useful diagnostic command.

Use it to see:

which backend is actually active;
which sample rate and format the device really opened;
what happened after auto / fallback decisions.

snd_restart

The main “restart the sound backend” command.

It is needed after most major sound-path changes:

backend choice;
output format;
HRTF settings;
OpenAL profile;
many binaural engine options.


8. What exists only, or primarily, in DMA

s_driver

This selects the DMA driver.

On Windows, typical values are:

dsound = DirectSound
wave = Windows waveform audio
sdl = SDL2 audio

If empty, auto-detection is used.

Practical meaning:

most players only touch this if there is a compatibility problem;
for normal use, auto is usually enough.

s_mixahead

This is the DMA mix-ahead window.

In practical terms:

how far in advance the engine prepares sound.

If the value is lower:

latency can be lower;
but the risk of glitches, crackle, or instability is higher.

If the value is higher:

more stable;
but with more perceived delay.

Practical range:

roughly 0.05 .. 0.3

This is one of the most characteristically DMA-oriented parameters.

s_swapstereo

Swaps left and right channels.

Only works in DMA.

Useful only rarely:

for genuinely reversed channels in the user’s hardware/virtual path.

s_resampler

This is the DMA resampler.

Values:

legacy
linear
cubic

What they mean

legacy

The old, simplest path.

Advantages:

maximally “as before”;
least likely to change the familiar character.

Disadvantages:

usually the weakest quality of the DMA choices.

linear

Linear interpolation.

A compromise:

better than legacy;
not too expensive;
often a good middle ground.

cubic

Cubic interpolation.

Usually:

the smoothest DMA option;
better when you care about resampling artifacts;
somewhat heavier computationally.

When DMA still makes sense today

DMA is a logical choice if you want:

the most classic path;
no HRTF;
no room acoustics;
no OpenAL-specific voicing;
manual control through s_mixahead, s_driver, and s_resampler.


9. What exists only in OpenAL

Everything below is part of the main reason to choose OpenAL.

Key OpenAL-only feature families

al_profile
al_sound_profile
al_hrtf
al_resampler
al_reverb / al_eax
the entire al_reverb_* family
the entire al_eax_* family
the entire al_binaural_* family
al_resampler_list
al_reverb_info
al_reverb_reload
al_binaural_info


10. al_profile: the difference between OpenAL Q2PRO-X and R1Q2-like

This is one of the most important settings in the entire sound stack.

What it actually is

al_profile is not a volume control and not a quality setting.

It is a behavior / voicing profile for the OpenAL sound path.

Current main values:

0 = Q2PRO-X
1 = R1Q2-like

Theory: why profiles differ at all

Even if both paths use OpenAL, they can still differ in:

distance attenuation behavior;
world loop presentation;
the confidence or clarity of positional cues;
the overall character of the sound field.

So this is not “the same OpenAL with one different checkbox”.

It is two different voicing approaches on top of the OpenAL backend.

Q2PRO-X profile

Main idea:

the modern Q2PRO-X path;
linear-distance voicing;
richer room-acoustics stack;
better fit with current Q2PRO-X acoustics, routing, and profiles.

Under the hood it is closer to:

AL_LINEAR_DISTANCE_CLAMPED

In practice:

useful if you want room acoustics;
pairs well with al_sound_profile;
feels like the current “modern Q2PRO-X” presentation.

R1Q2-like profile

Main idea:

to bring the OpenAL presentation closer to the classic R1Q2 school.

Under the hood it is closer to:

a more old-school, drier positional feel.

In practice:

often preferred by players who want more traditional competitive cues;
can feel more familiar to users who historically liked R1Q2 behavior;
often combines well with headphones and a more restrained acoustics path.

Practical rule of thumb

If you want:

a more modern, richer Q2PRO-X soundfield → start with Q2PRO-X
a more classic, sharper, more conservative competitive feel → try R1Q2-like


11. al_sound_profile: ready-made acoustic profiles

What it is

al_sound_profile is a curated preset layer that applies a more coherent acoustic “intent” instead of forcing the user to hand-tune every parameter from zero.

Typical logic:

a profile is not the same as the engine backend;
a profile is a bundle of voicing choices on top of OpenAL.

Why it exists

Many players do not want to tune every single cvar by hand.

They want a reasonable overall target instead of a forest of parameters.

The current values are:

custom
competitive
balanced
immersive
cinematic
cathedral

Important logic

These profiles do not govern everything. They mainly govern the acoustic layer:

al_reverb
al_eax_preset
al_reverb_lerp_time
al_eax_wet
al_eax_local_wet
al_eax_occlusion
explosion and transport wetness
the reverb tuning parameters

And they must not override:

al_hrtf
al_profile
al_resampler
s_resampler
s_enable
s_khz
s_sampleformat

In other words, a sound profile is an acoustic preset, not a change of the whole audio world.

Typical practical meanings

custom

No curated voicing is imposed.

Use this if:

you want full manual control;
you are already tuning al_eax_*, al_reverb_*, HRTF, and other parameters yourself.

competitive

Typical goal:

tighter;
drier;
less room-heavy;
easier to read in terms of spatial information.

Good when:

you care about combat information first;
you do not want excess reverb blur.

balanced

Middle-ground profile.

Typical goal:

keep useful spatial information;
keep some environment richness;
avoid going too dry or too cinematic.

Good default if:

you want OpenAL quality but not an extreme preset.

immersive

Typical goal:

richer space;
more acoustics;
larger room impression;
more environmental depth.

Good when:

you want atmosphere and weight;
you do not mind a more processed sound.

cinematic

Even more emphasis on presentation than immersive.

Good when:

you are recording video or watching a demo;
the impression of the space matters more than combat readability.

cathedral

A deliberately strong, almost demonstrative mode.

It is meant for a sense of scale rather than for honest competitive readability.


12. HRTF: what it is and how it works

Theory: what HRTF means

HRTF = Head-Related Transfer Function.

This is a model of how sound changes before it reaches your ears because of:

the shape of your head;
the shape of your outer ears;
the direction from which the sound arrives.

In plain language:

a sound from the left, right, front, behind, above, or below does not hit your ears the same way;
the body changes it before you hear it;
HRTF tries to simulate those changes through stereo headphones.

Why this matters in games

Without HRTF, headphones often still give you left/right separation, but front/back and elevation cues can be weak or ambiguous.

With HRTF:

front/back can become easier to read;
the sound scene can feel less “inside the head”;
positional cues often become more believable.

The tradeoff

HRTF is not a guaranteed universal upgrade.

Possible benefits:

better front/back cues;
more realistic spatial impression;
stronger externalization.

Possible downsides:

some listeners dislike the coloration;
some HRTF sets fit one person better than another;
it can feel too processed if the rest of the sound path is already very wet.

In Q2PRO-X

HRTF is controlled through OpenAL / binaural settings.

Practical recommendation:

if you play on headphones, you should absolutely test it;
if you play on speakers, HRTF is normally not the right tool.


13. Binaural sound: what it is and how it differs from plain HRTF

Theory: what binaural sound is

Binaural rendering is an audio approach that tries to present sound the way a real pair of ears would receive it.

In games, this usually means:

a stereo output specifically designed for headphones;
with direction cues shaped in a more ear-aware way than simple pan + distance.

How it differs from plain HRTF

In everyday discussion the two often overlap, but conceptually:

HRTF is the ear/head transfer model itself;
a binaural path is the wider headphone-oriented rendering chain that can include HRTF, encoding decisions, filter sizes, and crossfeed.

So:

HRTF is one major building block;
binaural mode is the broader headphone rendering mode.

Why Q2PRO-X exposes both

Because different users may want:

only the OpenAL HRTF path;
or a stronger dedicated binaural layer on top of the broader OpenAL stack.

Main binaural cvars

al_binaural
al_binaural_profile
al_binaural_encoding
al_binaural_hrtf_mode
al_binaural_hrtf_size
al_binaural_crossfeed

al_binaural

Master on/off switch for the binaural layer.

Typical values:

0 = off
1 / 2 = enabled variants depending on runtime/menu path

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:

which concrete headphone rendering path / representation is preferred.

al_binaural_hrtf_mode

Controls how HRTF is selected or enforced inside the binaural path.

Typical meaning:

runtime default;
stronger forced mode;
or a more conservative/automatic path.

al_binaural_hrtf_size

Theory: what filter size means

This is effectively the size/length of the HRTF filter.

Larger filters can:

potentially carry more detail;
preserve subtler direction information.

But they can also:

cost more CPU;
change the character of the output;
be unnecessary if the runtime default is already good.

al_binaural_crossfeed

Theory: what crossfeed is

Crossfeed is a headphone technique where a controlled amount of left signal leaks into right and vice versa.

The idea:

in real speaker listening, each ear hears both speakers to some degree;
in headphones, left and right can feel too isolated;
crossfeed reduces that hard separation.

Potential benefits:

a less fatiguing scene;
less extreme “inside the skull” separation;
more speaker-like cohesion.

Potential downside:

too much crossfeed can blur directional precision.

Practical rule:

keep it low;
use it to soften a too-hard headphone stage, not to replace proper HRTF.


14. Reverb / room acoustics: what it is

Theory: what reverb actually is

Reverb is the collection of reflections and late tail that make a sound feel like it exists inside a space.

Without reverb, a sound can feel:

dry;
detached from the room;
close and direct.

With reverb, a sound can feel:

placed in a space;
larger;
farther;
more atmospheric.

Why games use it

Because space matters:

corridors, large halls, metal rooms, open areas, and transport spaces do not sound the same;
reverb helps the world feel more believable and can strengthen positional context.

Why it can be a problem

Too much reverb can:

reduce clarity;
smear transients;
make competitive reading harder;
make the whole game feel overprocessed.

That is why Q2PRO-X exposes both:

the master room-acoustics switch;
and fine control over the wetness and tail behavior.


15. Reverb parameters: each one explained

al_reverb

Master enable for room acoustics / reverb.

Values:

0 = off
1 = on

If you want the simplest OpenAL path:

keep this off

If you want room simulation:

enable it

al_reverb_lerp_time

Theory: what interpolation time means

When the client changes from one room preset / classification state to another, it can either:

snap instantly;
or transition smoothly.

al_reverb_lerp_time is that smoothing window.

If it is higher:

transitions feel smoother;
room changes feel less abrupt.

If it is lower:

room changes react faster;
but can feel more “poppy”.

al_eax_preset

Room preset selector.

Typical meaning:

-1 = automatic room classification
other values = force a specific preset

Usually:

auto is the right baseline;
forcing a preset is more for testing or very specific taste.

al_eax_wet

Theory: what “wet” means

In audio, “wet” is the processed/reverberated part of the signal.

The opposite is “dry” — the direct, unprocessed sound.

If wet is higher:

you hear more room / reflected sound.

If wet is lower:

the sound is drier and more direct.

This is one of the most important practical reverb controls.

al_eax_local_wet

This is the wetness for local / near-player sounds.

Very useful because many players want:

room acoustics in the world;
but not too much reverb on their own immediate actions.

If local wet is too high:

your own close-range sounds may feel overly washed.

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:

less high-frequency content;
more muffled / obstructed sound.

If this is enabled:

blocked sounds can feel more believable.

If disabled:

the sound field is cleaner but less realistic.

al_eax_explosion_wet

Specific wetness / reverb send for explosions.

Useful when you want:

explosions to feel bigger and more environmental;
without making the entire world more reverberant.

al_eax_explosion_decay

Theory: what decay means

Decay is how long the reverb tail lasts before fading away.

If decay is higher:

the tail lasts longer.

If decay is lower:

the tail fades faster.

For explosions:

higher decay can make them feel larger and heavier;
too much can make the match sound muddy.

al_eax_explosion_late

Late reverb emphasis for explosions.

Useful if you want:

more long-tail “bloom” after a blast.

al_eax_transport_wet

Reverb send / environment treatment for transport-like world spaces or loops.

Useful if:

a moving platform / ambient transport layer feels too dry or too present.

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:

how near walls are;
how enclosed the space is;
what kind of room shape is implied.

If reflections are stronger:

the room “starts speaking” sooner.

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:

the tail feels bigger and more massive.

al_reverb_decay

General decay-time multiplier.

If increased:

room tails become longer.

If reduced:

room tails become shorter.

al_reverb_delay

Theory: what delay means in this context

This is not a guitar pedal delay.

It is the timing of how reflections / later reverb separate from the direct sound.

If higher:

reflections peel away later;
the room can feel larger.

If lower:

reflections arrive sooner;
the room feels smaller or tighter.

al_reverb_hf

Theory: what HF brightness means

HF = high frequency.

This controls how bright or dark the reverberant tail is.

If higher:

brighter, glassier, more present highs.

If lower:

darker, softer, more muffled tail.

al_reverb_diffusion

Theory: what diffusion means

Diffusion controls how smooth and dense the reverberant field feels.

If higher:

smoother, denser, less grainy tail.

If lower:

sparser, rougher, more discrete-feeling tail.

al_eax_debug

Diagnostic/debug mode.

Useful to inspect:

which room preset is active;
how the environment was classified;
how routing is currently behaving.


16. Commands for OpenAL / reverb / binaural

al_reverb_info

Prints:

current room class;
classifier data;
routing mode;
wet-state;
diagnostic details about the current acoustic state.

Very useful if you are tuning room acoustics seriously instead of turning knobs blindly.

al_reverb_reload

Forces the client to rebuild / re-snap the current reverb preset.

Useful:

after a set of manual changes;
to re-apply the current room state immediately.

al_binaural_info

Prints:

requested vs actual binaural runtime state;
what really enabled;
which values the runtime actually accepted.

al_resampler_list

Prints the actual list of OpenAL resamplers available from the runtime.

This matters because the theoretical set can include:

default
point
linear
cubic
bsinc12
bsinc24

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:

default
point
linear
cubic
bsinc12
bsinc24

What these mean in practice

point

The roughest and simplest path.

Think of it as:

almost no smooth interpolation.

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:

cleaner;
more refined;
potentially heavier;
useful if you really care about extracting the best quality from OpenAL Soft.

Practical choices

If you do not want to think too much:

default

If you want a good high-quality but not too exotic option:

cubic

If you want to experiment with OpenAL Soft’s highest-quality path:

bsinc12 or bsinc24

After changing it:

snd_restart


18. Per-weapon and per-category volume controls

This is one of the most practically useful QoL features in Q2PRO-X.

How the scale works

The menu scale is:

50 = default
0 = completely mute
100 = roughly 2x compared to default

So this is not “percentage from zero to one hundred” in a naive sense.

It is a user-facing volume scale relative to the stock Q2PRO-X baseline.

Weapon volumes

There are dedicated cvars for:

s_weapon_blaster_volume
s_weapon_shotgun_volume
s_weapon_supershotgun_volume
s_weapon_machinegun_volume
s_weapon_chaingun_volume
s_weapon_handgrenade_volume
s_weapon_grenadelauncher_volume
s_weapon_rocketlauncher_volume
s_weapon_hyperblaster_volume
s_weapon_railgun_volume
s_weapon_bfg_volume

This lets you:

reduce weapons that feel too aggressive to your ears;
raise weapon classes you want to read more clearly;
build your own match mix without bluntly flattening everything.

Category volumes

There are also category cvars:

s_player_volume — movement: jumps, falls, landings, steps
s_voice_volume — pain, death, taunts, drowning, and other player vocal events
s_pickup_volume — pickups
s_environment_volume — doors, glass, platforms, debris, and other world actions
s_monster_volume — enemy / monster sounds
s_announcer_volume — announcer / computer updated / secrets
s_interface_volume — menu / UI sounds
s_other_volume — anything not caught by a narrower class
s_ambient_volume — ambient/world loops: hums, movers, teleports

Practical examples

For competitive play

It often makes sense to:

slightly reduce your loudest weapons;
keep or raise player-relevant classes;
avoid inflating ambient/world loops.

For a more cinematic sound

You can:

raise environment / ambient;
keep weapons richer;
enable reverb.


19. What requires snd_restart, and what changes live

This is one of the most important practical sections.

Usually requires snd_restart

s_enable
s_khz
s_sampleformat
al_profile
al_resampler
al_reverb
al_hrtf
al_binaural
al_binaural_encoding
al_binaural_hrtf_mode
al_binaural_hrtf_size
al_binaural_crossfeed

Usually applies live

al_eax_wet
al_eax_local_wet
al_eax_occlusion
al_eax_explosion_wet
al_eax_explosion_decay
al_eax_explosion_late
al_eax_transport_wet
al_reverb_reflections
al_reverb_late
al_reverb_decay
al_reverb_delay
al_reverb_hf
al_reverb_diffusion
per-weapon volume cvars
per-category volume cvars
s_mute_when_inactive

Practical rule

If you change:

the backend;
the output format;
HRTF/binaural engine settings;
the OpenAL profile;

you should immediately think:

snd_restart

If you are only tuning:

wetness;
decay;
reflections;
category volumes;

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

CvarCurrent default valueWhat it means
s_enable2OpenAL is the default backend
s_khz44Base request is 44 kHz
s_sampleformatautoFormat is auto-selected
s_resamplerlegacyDMA resampler defaults to the classic path
s_volume0.7Master volume in code
s_ambient1Ambient sounds are enabled
s_underwater1Underwater processing is enabled
s_underwater_gain_hf0.25Underwater high frequencies are strongly reduced
s_mute_when_inactive0The game does not mute itself on focus loss by default
ogg_enable1OGG music is allowed
ogg_volume1Music plays at full relative level
ogg_shuffle0Shuffle is off

OpenAL defaults

CvarCurrent default valueWhat it means
al_profile0Base OpenAL profile = Q2PRO-X
al_reverb0Room acoustics are off by default
al_reverb_lerp_time2.0Room-preset transitions are smoothed across 2 seconds
al_eax_preset-1Automatic room classification
al_eax_wet0.80Fairly strong world reverb send
al_eax_local_wet0.08Local sounds are drier by default
al_eax_occlusion1Occlusion is enabled
al_reverb_reflections1.0Early reflections at neutral strength
al_reverb_late1.0Late tail at neutral strength
al_reverb_decay1.0Base decay length
al_reverb_delay1.0Base reverb timing
al_reverb_hf1.0Base HF brightness
al_reverb_diffusion1.0Base diffusion / smoothness
al_resamplerdefaultOpenAL runtime chooses the resampler
al_sound_profile0 (custom)No curated profile is imposed by default

Binaural defaults

CvarCurrent default valueWhat it means
al_binaural0Binaural mode is off by default
al_binaural_profile0 (custom)No preset headphone profile selected in advance
al_binaural_encoding0 (auto)Encoding is auto-selected
al_binaural_hrtf_mode0 (default)HRTF mode is left to runtime defaults
al_binaural_hrtf_size0Filter size = runtime default
al_binaural_crossfeed0Crossfeed is off

Per-weapon / per-category defaults

All weapon/category volume cvars start at:

50

That means:

a neutral baseline;
not “50% volume”, but the standard Q2PRO-X reference level for that scale.


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:

DMA;
no HRTF and no room acoustics;
simple and predictable.

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:

modern OpenAL;
no headphone HRTF;
moderate acoustics.

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:

classic R1Q2-like spatial feel;
HRTF enabled;
minimum extra room coloration.

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:

more modern OpenAL profile;
room acoustics;
binaural layer;
good all-round headphone baseline.


22. What to tune for which problem

Problem: “it feels too dry”

Try:

al_reverb 1
al_sound_profile balanced or immersive
slightly raise al_eax_wet

Problem: “it feels too smeared / too much tail”

Try:

lower al_eax_wet
lower al_reverb_late
lower al_reverb_decay
switch to competitive
or disable al_reverb for a while

Problem: “on headphones I still do not read direction well”

Try:

al_hrtf on
al_binaural on
al_binaural_profile default or auto
if the stage feels too sharp, add a little al_binaural_crossfeed

Problem: “my own sounds are too boomy inside the room”

Try:

lower al_eax_local_wet

Problem: “explosions do not feel big enough”

Try:

raise al_eax_explosion_wet
slightly raise al_eax_explosion_decay
slightly raise al_eax_explosion_late

Problem: “movers / loops / hum are too loud”

Try:

lower s_ambient_volume
lower al_eax_transport_wet


23. Feature availability matrix: what works where

Feature / parameterDMAOpenAL
s_driveryesno
s_mixaheadyesno as a primary DMA-only parameter
s_swapstereoyesno
s_resampleryesno
al_profilenoyes
al_hrtfnoyes
al_binaural*noyes
al_reverb* / al_eax*noyes
al_resamplernoyes
al_resampler_listnoyes
al_reverb_infonoyes
al_binaural_infonoyes
per-weapon volumesyesyes
per-category volumesyesyes
ogg_* music controlsyesyes
s_mute_when_inactiveyesyes


24. Relation to the built-in voice chat

This is not the main topic of the document, but it is important:

the current built-in Q2PRO-X voice chat Phase 1 requires OpenAL for both transmit and receive;
if s_enable is not using the OpenAL backend, the voice layer will not be fully functional.

So if you plan to use both game sound and the built-in voice path:

OpenAL is practically the required base.


25. The shortest practical cheat sheet

If you want the shortest version:

want simple and classic → try DMA
want modern spatial sound → use OpenAL
play on headphones → definitely test al_hrtf
want a richer environment → enable al_reverb
want faster setup without hand-tuning everything → use al_sound_profile
want to balance the match mix → use weapon / player volumes
if you change backend/profile/HRTF/binaural/output format → do snd_restart
if you do not know what the backend actually opened → check soundinfo


26. Conclusion

The main idea is this:

Q2PRO-X now gives you two genuinely different sound worlds:

a conservative and more classic one (DMA, or OpenAL R1Q2-like);
a modern, spatial, and acoustically richer one (OpenAL Q2PRO-X with HRTF / binaural / reverb).

The right setup depends not on “which mode is objectively best”, but on:

whether you use speakers or headphones;
whether you want a dry competitive sound;
or whether you prefer more depth, atmosphere, and a modern presentation.

If you want the least stressful setup path, the best order is:

1. choose the backend (DMA or OpenAL);

1. if OpenAL, decide whether you want Q2PRO-X or R1Q2-like;

1. decide whether you want HRTF;

1. decide whether you want room acoustics;

1. only then start polishing weapon and category volumes.

That order gets you to a deliberate setup much faster than random knob-turning.



27. AVFX audio

The AVFX layer has audio of its own, with volumes separated from the game's overall volume.

Sounds were added for rain, snow, lava steam, surface steam, puddle and snow footsteps, and landing splashes.
Landing in a puddle uses an extra splash and footstep layer on top of the stock fall sound.
The shipped AVFX presets keep sounds enabled, so a profile activates as a full-quality experience.
The release sound files live under baseq2\sound\q2prox\avfx.

27.1. AVFX sound volumes

Menu path: Main menu → Advanced Visual Effects → AVFX Detailed Settings → Local FX & Sound → AVFX Sound Volumes

AVFX Sound Volumes

TypeSectionRowVariable or targetWhat it does
SectionMasterMaster
ToggleMasterSoundscl_avfx_audioMaster 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.
SliderMasterSound volumecl_avfx_audio_volumeOverall loudness of AVFX sound effects (multiplies s_volume and every sub-layer). Applies immediately.
SectionWeather & environmentWeather & environment
ToggleWeather & environmentWind soundcl_avfx_audio_windGate for the wind audio layer: ambient wind/dust/ash/fog loops, storm variant and gust one-shots. Silent if WAV missing. Applies immediately.
ToggleWeather & environmentRain soundcl_avfx_audio_rainGate 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.
ToggleWeather & environmentRain drop soundcl_avfx_audio_rain_dropsAllow close raindrop tick sounds (rain preset only). Silent if WAV missing. Applies immediately.
ToggleWeather & environmentSnow soundcl_avfx_audio_snowGate 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.
ToggleWeather & environmentWater soundcl_avfx_audio_waterAllow ring-plip and soft water-surface sounds for AVFX water contacts (if WAVs present). Applies immediately.
ToggleWeather & environmentThundercl_avfx_audio_thunderAllow thunder sound tied to lightning events. Applies immediately.
NavigationWeather & environmentEvents & sky...q2prox_avfxvol_eventsOpen steam, sky-event, spaceship and Black-Hole sound controls.
NavigationWeather & environmentContacts & wildlife...q2prox_avfxvol_contactsOpen surface-contact and positional wildlife sound controls.
SectionServiceService
NavigationServiceAVFX sounds offset cl_avfx_audio 0Mute AVFX through its master only. Child preferences and all visual/non-AVFX settings stay untouched.
NavigationServiceRestore AVFX sound defaultscl_avfx_defaults_audioRestore 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

TypeSectionRowVariable or targetWhat it does
SectionSteamSteam
ToggleSteamSteam soundcl_avfx_audio_lava_steamShort evaporation hiss when rain/snow hits lava; loudness scales with particle size. Visual steam is separate. Applies immediately.
ToggleSteamSurface steam soundcl_avfx_audio_lava_surface_steamSofter positional hiss from melting snow/water at lava edges (steam_surface_hiss1..3), at the soft surface-steam point. Applies immediately.
ToggleSteamSnow impact steam audiocl_avfx_weapon_snow_steam_audioSeparate steam hiss for hot weapon hits on snow. The visual steam stays part of the weapon effect. Applies immediately.
SectionCelestialCelestial
ToggleCelestialImpact bangcl_avfx_audio_impactAllow an explosion bang at the lightning strike point (rocket-style, fades with distance). Applies immediately.
ToggleCelestialImpact meteor audiocl_avfx_audio_meteor_impactFalling impact meteor audio (entry hiss, flyby whoosh, impact boom, debris). Missing WAVs silent. Applies immediately.
ToggleCelestialSky meteor audiocl_avfx_audio_meteorSky meteor audio (burnup crack). Missing WAV silent. Applies immediately.
ToggleCelestialSpaceship flyby audiocl_avfx_spaceships_soundSky spaceship flyby sound. Default ON. 0 = silent ships. Missing WAVs silent. Applies immediately.
SliderCelestialSpaceship flyby volumecl_avfx_spaceships_sound_volumeSky spaceship flyby volume. 0.35 (default). 0 = silent. Applies immediately.
ToggleCelestialBlack Hole audiocl_avfx_blackhole_consumption_audioBlack 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.
SliderCelestialBlack Hole volumecl_avfx_blackhole_consumption_audio_volumeBlack Hole presence volume before the global AVFX gain. 0.70 (default). Applies immediately.
SliderCelestialView focuscl_avfx_blackhole_consumption_audio_focusHow 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.
ToggleCelestialBlack Hole eventscl_avfx_blackhole_consumption_audio_eventsBounded 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.
SliderCelestialBlack Hole event volumecl_avfx_blackhole_consumption_audio_events_volumeVolume 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.
NavigationCelestialBackq2prox_avfxvolBack to master, weather and contact AVFX sounds.

AVFX Sounds / Contacts & Wildlife

TypeSectionRowVariable or targetWhat it does
SectionSurface footstepsSurface footsteps
ToggleSurface footstepsSurface step soundscl_avfx_audio_surface_stepsMaster 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.
ToggleSurface footstepsPuddle step soundscl_avfx_audio_puddle_stepsAllow wet footstep sounds when the player walks or runs through visible AVFX puddles. Requires Surface step sounds and the AVFX sound master. Applies immediately.
ToggleSurface footstepsSnow step soundscl_avfx_audio_snow_stepsAllow snow footstep sounds on visible snow cover. Volume and depth follow visible snow and snowdrift growth. Applies immediately.
SectionWildlifeWildlife
ToggleWildlifeHiss on tongue flickcl_avfx_surface_materials_crawlers_audio_hissPlay 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.
SliderWildlifeHiss volumecl_avfx_surface_materials_crawlers_audio_hiss_volumeSnake hiss volume before the global AVFX audio volume. Applies immediately.
ToggleWildlifeFly buzzingcl_avfx_surface_materials_crawlers_audio_fliesPlay varied positional buzzing around Snake remains after flies arrive. Different carcasses sound independently. Default off. Applies immediately.
SliderWildlifeFly volumecl_avfx_surface_materials_crawlers_audio_flies_volumeCorpse-fly buzz volume before the global AVFX audio volume. Applies immediately.
NavigationWildlifeBackq2prox_avfxvolBack 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

Q2PRO-X has three sources of music, and they do not fight each other:

SourceWhat it isWhat controls it
Startup introA separate presentation on a cold launch into the menuIts own switch; game-music settings do not reach it
Online musicThe PROMODJ player with search, playback and an overlayThe online music menu
Game musicThe classic Quake II musicIts 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)

TypeSectionRowVariable or targetWhat it does
SectionPlaybackPlayback
TogglePlaybackOnline musiccl_music_online_enableMaster (off = no network). Applies immediately.
FieldPlaybackProvidercl_music_online_providercl_music_online_provider (one provider today: promodj).
SliderPlaybackVolumecl_music_online_volumecl_music_online_volume (s_volume stays master). Applies immediately.
TogglePlaybackConsole messagescl_music_online_console_statusShow online-player status/debug messages in the console. Off keeps routine playback silent. Applies immediately.
TogglePlaybackAutoplaycl_music_online_autoplaycl_music_online_autoplay. Applies immediately.
TogglePlaybackPause in gamecl_music_online_autopause_gamecl_music_online_autopause_game. Applies immediately.
TogglePlaybackResume after gamecl_music_online_resume_after_gamecl_music_online_resume_after_game. Applies immediately.
SectionGenres & QueueGenres & Queue
ListGenres & QueueGenre modecl_music_online_genre_modecl_music_online_genre_mode. Applies immediately. [All / Selected / Random]
ToggleGenres & QueueRandomcl_music_online_randomcl_music_online_random. Applies immediately.
ToggleGenres & QueueAutoplay resultscl_music_online_autoplay_resultscl_music_online_autoplay_results. Applies immediately.
ListGenres & QueueQueue modecl_music_online_queue_modecl_music_online_queue_mode. Applies immediately. [Sequential / Roulette]
ListGenres & QueueEnd modecl_music_online_end_modecl_music_online_end_mode. Applies immediately. [Stop / Loop playlist / Loop track]
ListGenres & QueueLucky scopecl_music_online_lucky_scopecl_music_online_lucky_scope. Applies immediately. [Selected genre / Random genre / All music]
ToggleGenres & QueueLucky continuouscl_music_online_lucky_continuouscl_music_online_lucky_continuous. Applies immediately.
FieldGenres & QueueBase URLcl_music_online_base_urlcl_music_online_base_url.
FieldGenres & QueuePreferred genrescl_music_online_preferred_genresGenre slugs separated by ;, for example dark_ambient;trance. Spaces in a name become underscores.
SectionPlayer & OverlayPlayer & Overlay
NavigationPlayer & OverlayOpen player...music_online_openOpen the online music overlay.
NavigationPlayer & OverlayI'm feeling luckymusic_online_luckyPlay a random track (lucky).
NavigationPlayer & OverlayProbe...music_online_probeDiagnostic probe (console output).
NavigationPlayer & OverlayOverlay appearance...q2prox_online_music_overlayOverlay appearance settings.
NavigationPlayer & OverlayDemo player profile...q2prox_online_music_demoDemo player music profile.
KeyPlayer & OverlayToggle playermusic_online_toggleBind a key to open/close the online music player overlay.
NavigationPlayer & OverlaySound settings...g_soundOpen the main sound & acoustics menu.
SectionResetReset
NavigationResetReset...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 1Reset online music to defaults.

The player has its own overlay and a separate mode for watching recordings:

Online Music / Overlay

TypeSectionRowVariable or targetWhat it does
SliderOpacitycl_music_online_overlay_alphacl_music_online_overlay_alpha. Applies immediately.
SliderScalecl_music_online_overlay_scalecl_music_online_overlay_scale. Applies immediately.
ToggleCompactcl_music_online_overlay_compactcl_music_online_overlay_compact. Applies immediately.
ToggleShow stylescl_music_online_overlay_show_stylescl_music_online_overlay_show_styles. Applies immediately.
SliderAutohidecl_music_online_overlay_autohide_seccl_music_online_overlay_autohide_sec (0=off). Applies immediately.
NavigationReset 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 0Reset overlay placement (x/y/w/h).
NavigationReset 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 0Reset overlay appearance.

Online Music / Demo Profile

TypeSectionRowVariable or targetWhat it does
SectionPlaybackPlayback
TogglePlaybackEnable for demoscl_demoplayer_music_online_enablecl_demoplayer_music_online_enable. Applies immediately.
FieldPlaybackProvider (demo)cl_demoplayer_music_online_providercl_demoplayer_music_online_provider.
FieldPlaybackBase URL (demo)cl_demoplayer_music_online_base_urlcl_demoplayer_music_online_base_url.
SliderPlaybackDemo volumecl_demoplayer_music_online_volumecl_demoplayer_music_online_volume. Applies immediately.
TogglePlaybackDemo autoplaycl_demoplayer_music_online_autoplaycl_demoplayer_music_online_autoplay. Applies immediately.
TogglePlaybackPause with democl_demoplayer_music_online_pause_with_democl_demoplayer_music_online_pause_with_demo. Applies immediately.
SectionGenres & queueGenres & queue
FieldGenres & queuePreferred genres (demo)cl_demoplayer_music_online_preferred_genrescl_demoplayer_music_online_preferred_genres (slugs, ; separated).
ListGenres & queueDemo genre modecl_demoplayer_music_online_genre_modecl_demoplayer_music_online_genre_mode. Applies immediately. [All / Selected / Random]
ToggleGenres & queueDemo randomcl_demoplayer_music_online_randomcl_demoplayer_music_online_random. Applies immediately.
ToggleGenres & queueDemo autoplay resultscl_demoplayer_music_online_autoplay_resultscl_demoplayer_music_online_autoplay_results. Applies immediately.
ListGenres & queueDemo queuecl_demoplayer_music_online_queue_modecl_demoplayer_music_online_queue_mode. Applies immediately. [Sequential / Roulette]
ListGenres & queueDemo endcl_demoplayer_music_online_end_modecl_demoplayer_music_online_end_mode. Applies immediately. [Stop / Loop playlist / Loop track]
ListGenres & queueDemo lucky scopecl_demoplayer_music_online_lucky_scopecl_demoplayer_music_online_lucky_scope. Applies immediately. [Selected genre / Random genre / All music]
ToggleGenres & queueDemo lucky continuouscl_demoplayer_music_online_lucky_continuouscl_demoplayer_music_online_lucky_continuous. Applies immediately.
NavigationGenres & queueReset...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 1Reset 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. Conclusion for the release's audio

The Q2PRO-X audio layer has four independent parts, and it is worth not confusing them:

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.