66 struct DirectEffectTargetData
68 explicit DirectEffectTargetData(std::pmr::memory_resource*
memoryResource)
78 std::pmr::vector<float> ChannelGains;
83 class ChannelRTData
final
86 static constexpr uint32 cScratchSize = 480;
91 ChannelRTData() =
default;
92 ~ChannelRTData() =
default;
104 static constexpr uint32 cScratchSize = ChannelRTData::cScratchSize;
107 using SafeDirectEffectTDWrite =
typename SafeDirectEffectTD::ScopedAccess<JPL::ThreadType::nonRealtime>;
108 using SafeDirectEffectTDRead =
typename SafeDirectEffectTD::ScopedAccess<JPL::ThreadType::realtime>;
111 SafeDirectEffectTD mTargetData;
116 std::span<ChannelRTData> mChannels;
118 std::pmr::vector<float> mCurrentGains;
Forward declaration.
Definition DelayLine.h:131
Definition DirectSound.h:42
void ProcessInterleaved(std::span< const float > input, std::span< float > output, uint32 numFrames)
DirectSoundEffect(float sampleRate, uint32 numSourceChannels, uint32 numOutputChannels, const simd initialFilterGains, float initialDelayTimeInSeconds, std::span< const float > initialMixMap)
void UpdateParameters(const simd &filterGains, float delayTimeSeconds, std::span< const float > channelMixMap)
Must be called from non-RT thread.
Definition RealtimeObject.h:69
Definition AcousticMaterial.h:36
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
Definition DelayLine.h:45
4th order Linkwitz-Riley 4-band crossover
Definition CrossoverFilter.h:417
Definition SmoothedValue.h:29
Minimal 4-wide 32-bit float vector implementation for SIMD.
Definition SIMD.h:60