<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">Hi everyone,</span><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">I'm experiencing a bug in OpenAL Soft 1.13 on Linux where with two sources playing, only one can be heard. The exact use case is as follows:</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">a) gameplay audio → custom software audio mixer → OpenAL AL_FORMAT_STEREO16 44100Hz streamed (queued buffers) source,</div><div style="font-family:arial,sans-serif;font-size:13px">b) video clips → OpenAL AL_FORMAT_51CHN32 44100Hz streamed source.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">The symptom is that gameplay audio does not play when video clips are playing as well. However, if I "cherry-pick" video clip channels to stereo like this and play it as AL_FORMAT_STEREO32 instead:</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><span style="font-family:arial,sans-serif;font-size:13px">    float tmp[ audio->frames * sizeof( *audio->samples ) * 2 ];</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">    for( int i = 0; i < audio->frames; ++i )</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">    {</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">        int L = i * audio->channels + ( 0 % audio->channels );</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">        int R = i * audio->channels + ( 1 % audio->channels );</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">        tmp[ i * 2 + 0 ] = audio->samples[ L ];</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">        tmp[ i * 2 + 1 ] = audio->samples[ R ];</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">    }</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">    alBufferData( buffer, getFormatForChannelCount( 2 ), tmp, audio->frames * sizeof( *audio->samples ) * 2, audio->freq );</span><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Then gameplay audio can be heard all right.<br><div><br></div><div>There are no other sources playing. Both sources have been put at (0,0,0) with AL_SOURCE_RELATIVE set to AL_TRUE, with AL_MAX_DISTANCE and AL_MIN_GAIN at 1.f. Preliminary debugging within OpenAL Soft shows that both sources are active (I've put breakpoints in aluMixData() and inspected the context).</div></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Am I hitting a known caveat? Or is there anything else I can do to quickly diagnose the problem?</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Regards,</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Leszek</div></div>