This is an effect demo.
Demo to implement the following effects.
Main flow is in the order: set effect parameters, secure work memory, allocate work memory, register effect, remove effect, and release work memory.
// nw::snd::FxReverb settings
{
// Parameter settings
nw::snd::FxReverb::FilterSize filterSize;
filterSize.m_Comb0 = 20 * 160;
filterSize.m_Comb1 = 30 * 160;
filterSize.m_AllPass = 13 * 160;
m_NwFxReverbParam.m_EarlyReflectionTime = 300;
m_NwFxReverbParam.m_FusedTime = 1000;
m_NwFxReverbParam.m_PreDelayTime = 200;
m_NwFxReverbParam.m_pFilterSize = &filterSize;
m_NwFxReverb.SetParam( m_NwFxReverbParam );
// Secure work memory
size_t reverbBufferSize = m_NwFxReverb.GetRequiredMemSize();
m_pMemoryForNwFxReverb = MemAlloc( reverbBufferSize, 4 );
// Allocate work memory
m_NwFxReverb.AssignWorkBuffer(
reinterpret_cast( m_pMemoryForNwFxReverb ),
reverbBufferSize );
}
// Register effect
nw::snd::SoundSystem::AppendEffect( nw::snd::AUX_BUS_A, &m_NwFxReverb );
// Remove effect
nw::snd::SoundSystem::ClearEffect( nw::snd::AUX_BUS_A, 0 );
// Release work memory
m_NwFxReverb.ReleaseWorkBuffer();
CONFIDENTIAL