Don't bypass effects without inputs
It's not really a great idea if you have long tails..
This commit is contained in:
parent
f8ffb5294c
commit
a74bd5eee0
2 changed files with 2 additions and 6 deletions
|
|
@ -119,8 +119,6 @@ void EffectBus::addToInputs(const float* const addInput[], float addGain, unsign
|
||||||
if (addGain == 0)
|
if (addGain == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_hasSignal = true;
|
|
||||||
|
|
||||||
for (unsigned c = 0; c < EffectChannels; ++c) {
|
for (unsigned c = 0; c < EffectChannels; ++c) {
|
||||||
absl::Span<const float> addIn { addInput[c], nframes };
|
absl::Span<const float> addIn { addInput[c], nframes };
|
||||||
sfz::multiplyAdd1(addGain, addIn, _inputs.getSpan(c).first(nframes));
|
sfz::multiplyAdd1(addGain, addIn, _inputs.getSpan(c).first(nframes));
|
||||||
|
|
@ -165,8 +163,6 @@ void EffectBus::process(unsigned nframes)
|
||||||
fx::Nothing().process(
|
fx::Nothing().process(
|
||||||
AudioSpan<float>(_inputs), AudioSpan<float>(_outputs), nframes);
|
AudioSpan<float>(_inputs), AudioSpan<float>(_outputs), nframes);
|
||||||
}
|
}
|
||||||
|
|
||||||
_hasSignal = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void EffectBus::mixOutputsTo(float* const mainOutput[], float* const mixOutput[], unsigned nframes)
|
void EffectBus::mixOutputsTo(float* const mainOutput[], float* const mixOutput[], unsigned nframes)
|
||||||
|
|
@ -185,6 +181,7 @@ size_t EffectBus::numEffects() const noexcept
|
||||||
{
|
{
|
||||||
return _effects.size();
|
return _effects.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EffectBus::setSamplesPerBlock(int samplesPerBlock) noexcept
|
void EffectBus::setSamplesPerBlock(int samplesPerBlock) noexcept
|
||||||
{
|
{
|
||||||
_inputs.resize(samplesPerBlock);
|
_inputs.resize(samplesPerBlock);
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,7 @@ public:
|
||||||
/**
|
/**
|
||||||
@brief Checks whether this bus can produce output.
|
@brief Checks whether this bus can produce output.
|
||||||
*/
|
*/
|
||||||
bool hasNonZeroOutput() const { return _hasSignal && (_gainToMain != 0 || _gainToMix != 0); }
|
bool hasNonZeroOutput() const { return (_gainToMain != 0 || _gainToMix != 0); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@brief Sets the amount of effect output going to the main.
|
@brief Sets the amount of effect output going to the main.
|
||||||
|
|
@ -189,7 +189,6 @@ private:
|
||||||
AudioBuffer<float> _outputs { EffectChannels, config::defaultSamplesPerBlock };
|
AudioBuffer<float> _outputs { EffectChannels, config::defaultSamplesPerBlock };
|
||||||
float _gainToMain { Default::effect };
|
float _gainToMain { Default::effect };
|
||||||
float _gainToMix { Default::effect };
|
float _gainToMix { Default::effect };
|
||||||
bool _hasSignal { false };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace sfz
|
} // namespace sfz
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue