menu
 

Audiokinetic의 커뮤니티 Q&A는 사용자가 Wwise와 Strata 커뮤니티 내에서 서로 질문과 답변을 하는 포럼입니다. Audiokinetic의 기술 지원팀에게 문의하고 싶으신 경우 지원 티켓 페이지를 사용해주세요.

0 투표
Hi everyone,

I'd like to send some portion of a signal from a 2.0 audio bus to a 5.1 audio bus — but only to surround speakers (Ls, Rs). Is there a proven method for that in Wwise?
 

 

Best regards, Serge.
General Discussion Sergey E. (230 포인트) 로 부터

1 답변

0 투표

Hi Serge,

The best way to do that is with a speaker volume matrix callback.

Something like this ( although note i haven't compiled or tested the code ):

// consider using AK::SoundEngine::GetIDFromString to get this id
AkUint32 target_bus_id = 0x123456;

void speaker_volume_matrix_callback( AkSpeakerVolumeMatrixCallbackInfo* info ) {
    AkUniqueID bus_id = info->pMixerContext->GetBusID();
    if ( bus_id != target_bus_id ) {
        // or some other way to making sure you only do this when you need it
        return;
    }
    
    AKASSERT( info->outputConfig.uNumChannels == 6 );
    AKPLATFORM::AkMemSet( info->pVolumes, 0, sizeof( AkReal32 ) * info->outputConfig.uNumChannels );
    Ak::SpeakerVolumes::Matrix::VectorPtr ls = AK::SpeakerVolumes::Matrix::GetChannel( info->pVolumes, 4, 6 );
    ls[ 0 ] = 1.0f;
    Ak::SpeakerVolumes::Matrix::VectorPtr rs = AK::SpeakerVolumes::Matrix::GetChannel( info->pVolumes, 5, 6 );
    rs[ 1 ] = 1.0f;
}
Dan M. (2.6k 포인트) 로 부터
Thank you Dan, I'll discuss this with our programmers. :)
...