JPL Spatial
Sound spatialization and propagation library
Loading...
Searching...
No Matches
ReverbDesign.h File Reference
#include <JPLSpatial/Core.h>
#include "JPLSpatial/Auralization/ChannelMixing.h"
#include <JPLSpatial/Auralization/DelayLine.h>
#include <JPLSpatial/Math/Math.h>
#include <JPLSpatial/Math/SIMD.h>
#include <algorithm>
#include <array>
#include <bit>
#include <concepts>
#include <ranges>
#include <span>
#include <random>

Go to the source code of this file.

Classes

class  JPL::Matrix::Householder
 
class  JPL::Matrix::Hadamard
 
struct  JPL::Matrix::FDNInput
 
struct  JPL::Matrix::FDNOutputMixer
 
struct  JPL::Matrix::FDNOutputProjection< MaxOutputChannels >
 
struct  JPL::Feedback
 
struct  JPL::MultiChannelFeedbackBase< NumChannels, AttenuationFilter >
 
class  JPL::MultiChannelFeedback< NumChannels, AttenuationFilter >
 
class  JPL::MultiChannelMixedFeedback< NumChannels, AttenuationFilter >
 
struct  JPL::DiffusionStep< NumChannels >
 
struct  JPL::DiffuserBase< NumChannels, StepCount >
 
struct  JPL::DiffuserEqualLengths< NumChannels, StepCount >
 
struct  JPL::DiffuserHalfLengths< NumChannels, StepCount >
 

Namespaces

namespace  JPL
 
namespace  JPL::Detail
 
namespace  JPL::Matrix
 

Functions

JPL_INLINE uint32 JPL::Detail::CeilToPrime (uint32 number)
 
template<class Sample >
constexpr Sample JPL::Detail::GenRandomSign (uint32 outChannel, uint32 fdnChannel)
 
template<class Sample , std::size_t Size>
JPL_INLINE void JPL::Matrix::Multiply (const std::array< Sample, Size > &dataA, std::array< Sample, Size > &dataBOut)
 
template<class Sample >
JPL_INLINE void JPL::Matrix::Multiply (std::span< Sample > data, Sample value)
 
template<class Sample , std::size_t Size>
JPL_INLINE void JPL::Matrix::Multiply (std::array< Sample, Size > &data, Sample value)
 
template<class Sample , std::size_t Size>
JPL_INLINE void JPL::Matrix::Add (std::array< Sample, Size > &data, Sample value)
 
template<class Sample , std::size_t Size>
JPL_INLINE void JPL::Matrix::Add (const std::array< Sample, Size > &dataA, std::array< Sample, Size > &dataBOut)
 
template<class Sample , std::size_t Size>
JPL_INLINE Sample JPL::Matrix::ReduceSum (const std::array< Sample, Size > &data)
 
template<class Sample , std::size_t Size>
JPL_INLINE void JPL::Matrix::AssignRandomSign (std::array< Sample, Size > &data)
 
template<std::size_t MaxOutSize, class Sample , std::size_t Size>
JPL_INLINE void JPL::Matrix::AssignRandomSign (std::array< Sample, Size > &data, uint32 outIndex)
 

Variables

constexpr auto JPL::Detail::cPrimes
 
constexpr uint32 JPL::Detail::cMaxFDNOrder = 64
 
constexpr uint32 JPL::Detail::cMaxDelayInSamples = cPrimes.back()
 
template<uint32 FDNOrder>
constexpr bool JPL::Detail::cValidFDNOrder = FDNOrder > 0 and FDNOrder <= cMaxFDNOrder