VISR  0.12.0
Versatile Interactive Scene Renderer
AllRAD.h
Go to the documentation of this file.
1 //
2 // AllRAD.h
3 //
4 // Calculate HOA decode matrix by feeding regular HOA decode to external VBAP of virtual louspeakers.
5 // Suitable for fast update for listener tracking.
6 //
7 // Created by Dylan Menzies on 12/12/2014.
8 // Copyright (c) ISVR, University of Southampton. All rights reserved.
9 //
10 
11 #ifndef __S3A_renderer_dsp__AllRAD__
12 #define __S3A_renderer_dsp__AllRAD__
13 
14 #include "VBAP.h"
15 
16 #include "export_symbols.hpp"
17 
18 #include <libefl/basic_matrix.hpp>
19 
20 namespace visr
21 {
22 
23 namespace panning
24 {
25 // forward declaration
26 class LoudspeakerArray;
27 
28 class VISR_PANNING_LIBRARY_SYMBOL AllRAD
29 {
30 public:
31 
41  explicit AllRAD( LoudspeakerArray const & regularArray,
42  LoudspeakerArray const & realArray,
43  efl::BasicMatrix<Afloat> const & decodeCoeffs,
44  unsigned int maxHoaOrder );
45 
49  void setListenerPosition( SampleType x, SampleType y, SampleType z );
50 
56  {
57  return mRealDecodeCoefficients;
58  }
59 private:
60 
65  void updateDecodingCoefficients();
66 
67 
72  efl::BasicMatrix<SampleType> mRegularLoudspeakerPositions;
73 
78  VBAP mRealDecoder;
79 
83  std::size_t const mNumberOfHarmonics;
84 
90  efl::BasicMatrix<SampleType> mRegularDecodeCoefficients;
91 
96  efl::BasicMatrix<SampleType> mRealDecodeCoefficients;
97 
101  std::size_t const mRegularArraySize;
102 
108  efl::BasicMatrix<SampleType> mRegularToRealDecodeCoefficients;
109 };
110 
111 } // namespace panning
112 } // namespace visr
113 
114 #endif /* defined(__S3A_renderer_dsp__AllRAD__) */
Definition: AllRAD.h:28
Definition: VBAP.h:26
Definition: options.cpp:10
Definition: LoudspeakerArray.h:42
efl::BasicMatrix< Afloat > const & decodingGains() const
Definition: AllRAD.h:55
float SampleType
Definition: constants.hpp:14