JPL Spatial
Sound spatialization and propagation library
Loading...
Searching...
No Matches
VBAPLUT3D.h File Reference
#include "JPLSpatial/Core.h"
#include "JPLSpatial/ChannelMap.h"
#include "JPLSpatial/Panning/VBAPEx.h"
#include "JPLSpatial/Panning/DummySpeakers.h"
#include "JPLSpatial/Math/Math.h"
#include "JPLSpatial/Math/MinimalMat.h"
#include "JPLSpatial/Math/SIMD.h"
#include "JPLSpatial/Memory/Memory.h"
#include "JPLSpatial/Utilities/GainEncoding.h"
#include <array>
#include <cstring>
#include <vector>
#include <span>
#include <concepts>
#include <type_traits>
#include <algorithm>
#include <memory>

Go to the source code of this file.

Classes

class  JPL::VBAP::LUTInterface< GetSpeakerVectorFunction, LUTCodec, LUTType >
 
struct  JPL::VBAP::DynamicDataTri
 
struct  JPL::VBAP::DynamicDataWithMat< Vec3Type >
 
struct  JPL::VBAP::DynamicDataTrait< DynamicDataType_ >
 
struct  JPL::VBAP::DynamicDataTrait< DynamicDataTypeNone >
 
struct  JPL::VBAP::LUTBase< N, GainType_, SpeakerIndexType_, DynamicDataType_ >
 Base to compose LUT specializations. More...
 
struct  JPL::VBAP::LUTBase< N, GainTypeNone, SpeakerIndexType_, DynamicDataType_ >
 Specialization of the base without precomputed gains. More...
 
struct  JPL::VBAP::LUT< ELUTSize::KB_983, N, Vec3Type >
 Available LUT specializations. More...
 
struct  JPL::VBAP::LUT< ELUTSize::KB_851, N, Vec3Type >
 
struct  JPL::VBAP::LUT< ELUTSize::KB_786, N, Vec3Type >
 
struct  JPL::VBAP::LUT< ELUTSize::KB_655, N, Vec3Type >
 
struct  JPL::VBAP::LUT< ELUTSize::KB_65, N, Vec3Type >
 
class  JPL::VBAP::LUTQuery< LUTType, LUTCodec, Vec3TypeImplicit >
 Interface to query LUT gains for a direction. More...
 
struct  JPL::VBAP::LUTQuery< LUTType, LUTCodec, Vec3TypeImplicit >::VBAPCell
 Data extracted from LUT for specific source direction. More...
 
class  JPL::VBAP::LUTBuilder< GetSpeakerVectorFunction, LUTCodec, Vec3Type, LUTType >
 Forward declarations. More...
 

Namespaces

namespace  JPL
 
namespace  JPL::VBAP
 Forward declaration.
 

Concepts

concept  JPL::VBAP::CLUT
 VBAP LUT interfaces only accept LUT types defined below.
 
concept  JPL::VBAP::CLUTType
 

Macros

#define JPL_DBG_DUMP_SPEAKER_FAILED_SELECTION   0
 
#define JPL_NORMALIZE_GAINS_WITH_DUMMY   0
 

Typedefs

template<class T >
using JPL::VBAP::GainPack = std::array< T, 3 >
 Alias for speaker triplet gains.
 
using JPL::VBAP::GainTypeNone = void *
 LUT can be made out of just the selected speaker triplets, without precomputed gains.
 
using JPL::VBAP::SpeakerIdx = uint8
 Index of a speaker/channel.
 
using JPL::VBAP::SpeakerTripletIdx = std::array< SpeakerIdx, 3 >
 Direct indices of the speakers, corersponding to channels in the output buffer.
 
using JPL::VBAP::TripletIdx = uint8
 
using JPL::VBAP::DynamicDataTypeNone = void *
 
template<size_t N>
using JPL::VBAP::LUT_983 = LUTBase< N, float, SpeakerTripletIdx >
 Just some more convenient aliases.
 
template<size_t N>
using JPL::VBAP::LUT_851 = LUTBase< N, float, TripletIdx, DynamicDataTri >
 
template<size_t N>
using JPL::VBAP::LUT_786 = LUTBase< N, Gain24Bit, SpeakerTripletIdx >
 
template<size_t N>
using JPL::VBAP::LUT_655 = LUTBase< N, Gain24Bit, TripletIdx, DynamicDataTri >
 
template<size_t N, CVec3 Vec3Type>
using JPL::VBAP::LUT_65 = LUTBase< N, GainTypeNone, TripletIdx, DynamicDataWithMat< Vec3Type > >
 

Enumerations

enum class  JPL::VBAP::ELUTSize {
  JPL::VBAP::KB_983 , JPL::VBAP::KB_851 , JPL::VBAP::KB_786 , JPL::VBAP::KB_655 ,
  JPL::VBAP::KB_65
}
 

Macro Definition Documentation

◆ JPL_DBG_DUMP_SPEAKER_FAILED_SELECTION

#define JPL_DBG_DUMP_SPEAKER_FAILED_SELECTION   0

◆ JPL_NORMALIZE_GAINS_WITH_DUMMY

#define JPL_NORMALIZE_GAINS_WITH_DUMMY   0