We are using Unreal (older integration) so I'll post my answer here if someone else needs it.
I added a call to register the bus volume callback for the master audio bus in the initialization routine.
if (AK_Success != AK::SoundEngine::RegisterBusVolumeCallback(MASTER_AUDIO_BUS, AkMasterBusSpeakerVolumeMatrixCallback))
{
UE_LOG(LogInit, Warning, TEXT("Could not register the master bus volume callback."));
}
Then had the callback set the rtpc based on the number of channels, removing the low frequency effects channel in the count if found.
static const AkUniqueID MASTER_AUDIO_BUS = 3803692087U;
void FAkAudioDevice::AkMasterBusSpeakerVolumeMatrixCallback(AkSpeakerVolumeMatrixCallbackInfo *in_pCallbackInfo)
{
static unsigned long LastNumChannels = 0xffffffff;
if (in_pCallbackInfo
&& (in_pCallbackInfo->outputConfig.uNumChannels != LastNumChannels))
{
auto AudioDevice = FAkAudioDevice::Get();
if (!AudioDevice)
{
return;
}
LastNumChannels = in_pCallbackInfo->outputConfig.uNumChannels;
const FString& ChannelRtpc = GetDefault<UAkSettings>()->SpeakerChannelRtpcName;
if (ChannelRtpc.Len())
{
// remove the .1 low frequency effects channel from the reported channel count
const bool HasLFE = in_pCallbackInfo->outputConfig.HasLFE();
const unsigned long ReportedChannels = LastNumChannels - (HasLFE ? 1 : 0);
UE_LOG(LogAkAudio, Display, TEXT("Number of audio channels found: %d%s"), ReportedChannels, (HasLFE ? TEXT(".1") : TEXT("")));
AudioDevice->SetRTPCValue(*ChannelRtpc, ReportedChannels);
}
}
}