38 static constexpr uint32 cFDNChannels = 16;
39 static constexpr uint32 cScratchSize = 480;
42 static constexpr float cMinRT60 = 0.03f;
43 static constexpr float cMaxRT60 = 10.0f;
45 static constexpr float cMinSlope = -60.0f / cMinRT60;
46 static constexpr float cMaxSlope = -60.0f / cMaxRT60;
50 struct AttenuationFilter
59 return Crossover.ProcessSample(
sample, DecayGains);
70 simd DecayGains{ 0.999f };
104 using SafeRT60Write =
typename SafeRT60::ScopedAccess<JPL::ThreadType::nonRealtime>;
105 using SafeRT60Read =
typename SafeRT60::ScopedAccess<JPL::ThreadType::realtime>;
106 SafeRT60 mDecaySlopeDbPerSecond{ -60.0f / 1.0f};
Definition LateReverb.h:37
void ProcessInterleaved(std::span< const float > input, std::span< float > output, uint32 numFrames)
void SetRT60(const simd &newRT60Seconds)
void Prepare(float sampleRate, const SplitFrequencies &splits={})
void SetDecaySlope(const simd &newDecaySlope)
~ReverbBus() noexcept=default
Definition AcousticMaterial.h:36
JPL_INLINE T dBToGain(const T &dB) noexcept
Definition DecibelsAndGain.h:40
std::uint32_t uint32
Definition Core.h:311
JPL_INLINE simd min(const simd &a, const simd &b) noexcept
Element-wise min.
Definition SIMD.h:1813
4th order Linkwitz-Riley 4-band crossover
Definition CrossoverFilter.h:417
Split frequencies points for crossover.
Definition FrequencyBands.h:41
Minimal 4-wide 32-bit float vector implementation for SIMD.
Definition SIMD.h:60