47 const simd initialFilterGains,
48 float initialDelayTimeInSeconds,
49 std::span<const float> initialMixMap);
65 void UpdateParameters(
const simd& filterGains,
float delayTimeSeconds, std::span<const float> channelMixMap);
70 struct DirectEffectTargetData
72 explicit DirectEffectTargetData(std::pmr::memory_resource* memoryResource)
75 , ChannelGains(memoryResource)
82 std::pmr::vector<float> ChannelGains;
87 class ChannelRTData final
90 static constexpr uint32 cScratchSize = 480;
95 ChannelRTData() =
default;
96 ~ChannelRTData() =
default;
108 static constexpr uint32 cScratchSize = ChannelRTData::cScratchSize;
111 using SafeDirectEffectTDWrite =
typename SafeDirectEffectTD::ScopedAccess<JPL::ThreadType::nonRealtime>;
112 using SafeDirectEffectTDRead =
typename SafeDirectEffectTD::ScopedAccess<JPL::ThreadType::realtime>;
115 SafeDirectEffectTD mTargetData;
120 std::span<ChannelRTData> mChannels;
122 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)
Definition RealtimeObject.h:69
Definition AcousticMaterial.h:36
std::uint32_t uint32
Definition Core.h:311
std::unique_ptr< T, PmrDeleter< T > > pmr_unique_ptr
Alias for unique ptr using pmr allocator and deleter.
Definition Memory.h:233
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