![]() |
VISR
0.11.1
Versatile Interactive Scene Renderer
|
#include <panning_calculator.hpp>
Public Types | |
enum | PanningMode { PanningMode::Nothing = 0, PanningMode::LF = 1, PanningMode::HF = 2, PanningMode::Diffuse = 4, PanningMode::Dualband = LF | HF, PanningMode::All = Dualband | Diffuse } |
enum | Normalisation { Normalisation::Default = 0, Normalisation::Amplitude = 1, Normalisation::Energy = 2 } |
using | CoefficientType = SampleType |
Public Member Functions | |
PanningCalculator (SignalFlowContext const &context, char const *name, CompositeComponent *parent, std::size_t numberOfObjects, panning::LoudspeakerArray const &arrayConfig, bool adaptiveListenerPosition=false, bool separateLowpassPanning=false) | |
PanningCalculator (SignalFlowContext const &context, char const *name, CompositeComponent *parent, std::size_t numberOfObjects, panning::LoudspeakerArray const &arrayConfig, bool adaptiveListenerPosition, PanningMode panningMode=PanningMode::LF, Normalisation lfNormalisation=Normalisation::Default, Normalisation hfNormalisation=Normalisation::Default, Normalisation diffuseNormalisation=Normalisation::Default, pml::ListenerPosition const &listenerPosition=pml::ListenerPosition(0.0f, 0.0f, 0.0f)) | |
PanningCalculator (PanningCalculator const &)=delete | |
~PanningCalculator () | |
void | process () |
![]() | |
AtomicComponent (SignalFlowContext const &context, char const *name, CompositeComponent *parent=nullptr) | |
AtomicComponent (AtomicComponent const &)=delete | |
AtomicComponent (AtomicComponent &&)=delete | |
virtual | ~AtomicComponent () override |
![]() | |
Component (SignalFlowContext const &context, char const *componentName, CompositeComponent *parent) | |
Component (SignalFlowContext const &context, std::string const &componentName, CompositeComponent *parent) | |
Component (Component const &)=delete | |
Component (Component &&)=delete | |
Component & | operator= (Component const &)=delete |
Component & | operator= (Component &&)=delete |
virtual | ~Component () |
std::string const & | name () const |
std::string | fullName () const |
void | status (StatusMessage::Kind status, char const *message) |
template<typename ... MessageArgs> | |
void | status (StatusMessage::Kind status, MessageArgs ... args) |
bool | isComposite () const |
AudioPortBase & | audioPort (char const *portName) |
AudioPortBase const & | audioPort (char const *portName) const |
AudioPortBase & | audioPort (std::string const &portName) |
AudioPortBase const & | audioPort (std::string const &portName) const |
ParameterPortBase & | parameterPort (char const *portName) |
ParameterPortBase const & | parameterPort (char const *portName) const |
ParameterPortBase & | parameterPort (std::string const &portName) |
ParameterPortBase const & | parameterPort (std::string const &portName) const |
SamplingFrequencyType | samplingFrequency () const |
std::size_t | period () const |
bool | isTopLevel () const |
impl::ComponentImplementation & | implementation () |
impl::ComponentImplementation const & | implementation () const |
Additional Inherited Members | |
![]() | |
static const std::string & | nameSeparator () |
![]() | |
Component (impl::ComponentImplementation *impl) | |
Audio component for calculating the gains for a variety of panning algorithms from a set of audio object descriptions.
Type of the gain coefficients. We use the same type as the samples in the signal flow graph
|
strong |
|
strong |
|
explicit |
Constructor.
context | Configuration object containing basic execution parameters. |
name | The name of the component. Must be unique within the containing composite component (if there is one). |
parent | Pointer to a containing component if there is one. Specify nullptr in case of a top-level component. |
numberOfObjects | The number of VBAP objects to be processed. |
arrayConfig | The array configuration object. |
adaptiveListenerPosition | Whether the rendering supports adaptation to a tracked listener. |
separateLowpassPanning | Whether to generate two separate gain matrixes for low and high frequencies. |
|
explicit |
Constructor. This is a legacy constructor that doesn't use the HF/LF port specification or noralisation options.
context | Configuration object containing basic execution parameters. |
name | The name of the component. Must be unique within the containing composite component (if there is one). |
parent | Pointer to a containing component if there is one. Specify nullptr in case of a top-level component. |
numberOfObjects | The number of VBAP objects to be processed. |
arrayConfig | The array configuration object. |
adaptiveListenerPosition | Whether the rendering supports adaptation to a tracked listener. |
panningMode | Select the gain outputs provided (LF, HF, Diffuse or any combination thereof) |
lfNormalisation | The normalisation norm used for the LF gains. Default is 'Energy' as in plain VBAP if HF panning is deactivated, or 'Amplitude' if HF panning is present. |
hfNormalisation | The normalisation norm used for the HF (VBIP) gains. Default is 'Energy'. |
diffuseNormalisation | The normalisation norm used for the diffuse gains. Default is 'Energy'. |
listenerPosition | The initial listener position (central position, default is (0,0,0) |
|
delete |
Disabled (deleted) copy constructor
|
default |
` Destructor.
|
virtual |
The process function. It takes a vector of objects as input and calculates a vector of output gains.
Implements visr::AtomicComponent.