HOA Library  beta 3.0
High Order Ambisonics Library
Public Member Functions | List of all members
Wider< D, T > Class Template Reference

The class widens the propagation of the sounds in a sound field. More...

#include <Hoa_Wider.hpp>

Inheritance diagram for Wider< D, T >:
ProcessorHarmonics< D, T > Processor< D, T >

Public Member Functions

 Wider (const size_t order)
 The constructor. More...
 
 ~Wider ()
 The destructor.
 
void setWidening (const T value) hoa_noexcept
 This method set factor of widening. More...
 
getWidening () const hoa_noexcept
 Returns the the widening value.
 
void process (const T *inputs, T *outputs) hoa_noexcept hoa_final
 The method performs the widening on the harmonics signal. More...
 
- Public Member Functions inherited from ProcessorHarmonics< D, T >
 ProcessorHarmonics (const size_t order) hoa_noexcept
 The harmonics constructor. More...
 
virtual ~ProcessorHarmonics () hoa_noexcept
 The harmonics destructor.
 
size_t getDecompositionOrder () const hoa_noexcept
 Returns the order of decomposition.
 
size_t getNumberOfHarmonics () const hoa_noexcept
 Returns the number of harmonics.
 
size_t getHarmonicDegree (const size_t index) const hoa_noexcept
 Returns the degree of an harmonic. More...
 
long getHarmonicOrder (const size_t index) const hoa_noexcept
 Returns the azimuthal order of an harmonic. More...
 
size_t getHarmonicIndex (const size_t degree, const long order) const hoa_noexcept
 Returns the index of an harmonic given the degree and the azimuthal order. More...
 
std::string getHarmonicName (const size_t index) const hoa_noexcept
 Returns the name of an harmonic. More...
 
getHarmonicNormalization (const size_t index) const hoa_noexcept
 Returns the normalization of an harmonic. More...
 
getHarmonicSemiNormalization (const size_t index) const hoa_noexcept
 Returns the semi-normalization of an harmonic. More...
 
- Public Member Functions inherited from Processor< D, T >
virtual ~Processor () hoa_noexcept
 The destructor.
 

Detailed Description

template<Dimension D, typename T>
class hoa::Wider< D, T >

The class widens the propagation of the sounds in a sound field.

The class simulates fractional orders of decomposition to reduce the precision of the sound field. When the factor of widening is \(0\) sound field, only the first hamonic \(Y_{0,0}\) remains and the sound field is omni directional. By increasing the factor of widening toward \(1\), the other harmonics appears in a logarithmic way, increasing the precision of the sound field that becomes more and more directional until all the harmonics appeared. The weight of the harmonics are defined by:

\[W_{l,m}(x) = x^l((1-x)(N-l)+1)\]


with \(N\) the order of decomposition, \(l\) the degree, \(m\) the azimuthal order and \(x\) the factor of widening.

Definition at line 30 of file Hoa_Wider.hpp.

Constructor & Destructor Documentation

Wider ( const size_t  order)
inline

The constructor.

Parameters
orderThe order of decomposition.

Definition at line 36 of file Hoa_Wider.hpp.

Member Function Documentation

void setWidening ( const T  value)
inline

This method set factor of widening.

Parameters
valueThe factor of widening.

Definition at line 47 of file Hoa_Wider.hpp.

void process ( const T *  inputs,
T *  outputs 
)
inlinevirtual

The method performs the widening on the harmonics signal.

The method can be used for in-place or not-in-place processing and sample by sample. The inputs array and outputs array contains the spherical harmonics samples thus the minimum size of the array must be the number of harmonics.

Parameters
inputsThe inputs array.
outputsThe outputs array.

Reimplemented from Processor< D, T >.

Definition at line 69 of file Hoa_Wider.hpp.