Don't sample & filter EMU8000 voice if current volume is zero.

This commit is contained in:
SarahW 2020-09-29 21:16:47 +01:00
commit dbb10c0894

View file

@ -1719,15 +1719,17 @@ void emu8k_update(emu8k_t *emu8k)
{ {
int32_t dat; int32_t dat;
if (emu_voice->cvcf_curr_volume)
{
/* Waveform oscillator */ /* Waveform oscillator */
#ifdef RESAMPLER_LINEAR #ifdef RESAMPLER_LINEAR
dat = EMU8K_READ_INTERP_LINEAR(emu8k, emu_voice->addr.int_address, dat = EMU8K_READ_INTERP_LINEAR(emu8k, emu_voice->addr.int_address,
emu_voice->addr.fract_address); emu_voice->addr.fract_address);
#elif defined RESAMPLER_CUBIC #elif defined RESAMPLER_CUBIC
dat = EMU8K_READ_INTERP_CUBIC(emu8k, emu_voice->addr.int_address, dat = EMU8K_READ_INTERP_CUBIC(emu8k, emu_voice->addr.int_address,
emu_voice->addr.fract_address); emu_voice->addr.fract_address);
#endif #endif
/* Filter section */ /* Filter section */
if (emu_voice->filterq_idx || emu_voice->cvcf_curr_filt_ctoff != 0xFFFF ) if (emu_voice->filterq_idx || emu_voice->cvcf_curr_filt_ctoff != 0xFFFF )
@ -1821,6 +1823,7 @@ void emu8k_update(emu8k_t *emu8k)
emu8k->chorus_in_buffer[pos]+=(dat*emu_voice->csl_chor_send) >> 8; emu8k->chorus_in_buffer[pos]+=(dat*emu_voice->csl_chor_send) >> 8;
} }
} }
}
if ( emu_voice->env_engine_on) if ( emu_voice->env_engine_on)
{ {