Audio: add master volume (listener AL_GAIN); default 0.6, BT_AUDIO_VOLUME override (task #50)
The raw AWE32 samples are hot and everything plays at full per-source gain, so the mix was loud. Set alListenerf(AL_GAIN) once at device init -- it scales EVERY source (master volume). Default 0.6; override with BT_AUDIO_VOLUME=<0.0..1.0+> (0 = mute, 1 = full, >1 = boost). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
c27af4800b
commit
01261d72f3
@@ -382,7 +382,12 @@ void
|
||||
{
|
||||
ALCcontext *context = alcCreateContext(device,NULL);
|
||||
alcMakeContextCurrent(context);
|
||||
if (getenv("BT_AUDIO_LOG")) DEBUG_STREAM << "[audio] OpenAL device OPENED + context current\n" << std::flush;
|
||||
// Master volume: AL_GAIN on the listener scales EVERY source. Default 0.6
|
||||
// (the raw samples are hot); override with BT_AUDIO_VOLUME=<0.0..1.0+>.
|
||||
float masterVol = 0.6f;
|
||||
if (const char *v = getenv("BT_AUDIO_VOLUME")) { float f = (float)atof(v); if (f >= 0.0f) masterVol = f; }
|
||||
alListenerf(AL_GAIN, masterVol);
|
||||
if (getenv("BT_AUDIO_LOG")) DEBUG_STREAM << "[audio] OpenAL device OPENED + context current; master gain=" << masterVol << "\n" << std::flush;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user