JPL Spatial
Sound spatialization and propagation library
Loading...
Searching...
No Matches
JPL::VBAP Namespace Reference

Forward declaration. More...

Namespaces

namespace  Internal
 

Classes

struct  ChannelAngle
 
class  DummySpeakers
 Utility class to encapsulate dummy speaker handling while building a LUT. More...
 
struct  DynamicDataTrait
 
struct  DynamicDataTrait< DynamicDataTypeNone >
 
struct  DynamicDataTri
 
struct  DynamicDataWithMat
 
struct  LUT
 
class  LUT2D
 Look-up table containing channel gains for each direction. More...
 
struct  LUT< ELUTSize::KB_65, N, Vec3Type >
 
struct  LUT< ELUTSize::KB_655, N, Vec3Type >
 
struct  LUT< ELUTSize::KB_786, N, Vec3Type >
 
struct  LUT< ELUTSize::KB_851, N, Vec3Type >
 
struct  LUT< ELUTSize::KB_983, N, Vec3Type >
 Available LUT specializations. More...
 
struct  LUTBase
 Base to compose LUT specializations. More...
 
struct  LUTBase< N, GainTypeNone, SpeakerIndexType_, DynamicDataType_ >
 Specialization of the base without precomputed gains. More...
 
class  LUTBuilder
 Forward declarations. More...
 
class  LUTBuilder2D
 Forward declarations. More...
 
class  LUTInterface
 
class  LUTInterface2D
 
class  LUTQuery
 Interface to query LUT gains for a direction. More...
 
class  LUTQuery2D
 Interface to query LUT gains for a direction. More...
 
class  Panning2D
 
class  Panning3D
 

Concepts

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

Typedefs

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

Enumerations

enum class  ELUTSize {
  KB_983 , KB_851 , KB_786 , KB_655 ,
  KB_65
}
 

Detailed Description

Forward declaration.

Typedef Documentation

◆ DynamicDataTypeNone

◆ GainPack

template<class T >
using JPL::VBAP::GainPack = typedef std::array<T, 3>

Alias for speaker triplet gains.

◆ GainTypeNone

LUT can be made out of just the selected speaker triplets, without precomputed gains.

◆ LUT_65

◆ LUT_655

◆ LUT_786

◆ LUT_851

◆ LUT_983

Just some more convenient aliases.

◆ SpeakerIdx

Index of a speaker/channel.

◆ SpeakerTripletIdx

Direct indices of the speakers, corersponding to channels in the output buffer.

◆ TripletIdx

Index of a 'SpeakerTripletIdx' (one extra indirection to select actual speakers/channels) For this, a small array of all triplets has to be stored alongside the LUT

Enumeration Type Documentation

◆ ELUTSize

LUT type selector parameter based on approximate size of the static data. Sizes are approximate for Octahedron16Bit encoding, not including dynamic data.

Enumerator
KB_983 
KB_851 
KB_786 
KB_655 
KB_65