VISR  0.12.0
Versatile Interactive Scene Renderer
reverb_object_renderer.hpp
Go to the documentation of this file.
1 /* Copyright Institute of Sound and Vibration Research - All rights reserved */
2 
3 #ifndef VISR_REVERBOBJECT_REVERB_OBJECT_RENDERER_HPP_INCLUDED
4 #define VISR_REVERBOBJECT_REVERB_OBJECT_RENDERER_HPP_INCLUDED
5 
6 #include "export_symbols.hpp"
7 
10 #include <libvisr/audio_output.hpp>
12 
13 #include <librcl/add.hpp>
15 #include <librcl/delay_vector.hpp>
17 #include <librcl/gain_matrix.hpp>
19 
22 
23 #include <libefl/basic_matrix.hpp>
24 
27 #include <libpml/object_vector.hpp>
28 
29 #include <memory>
30 #include <string>
31 
32 namespace visr
33 {
34 namespace reverbobject
35 {
36 
42 class VISR_REVERBOBJECT_LIBRARY_SYMBOL ReverbObjectRenderer: public CompositeComponent
43 {
44 public:
59  explicit ReverbObjectRenderer( SignalFlowContext const & context,
60  char const * name,
61  CompositeComponent * parent,
62  std::string const & reverbConfig,
63  panning::LoudspeakerArray const & arrayConfig,
64  std::size_t numberOfObjectSignals );
65 
67 
68 private:
69  AudioInput mObjectSignalInput;
70 
71  AudioOutput mLoudspeakerOutput;
72 
74 
75  ReverbParameterCalculator mReverbParameterCalculator;
76 
77  rcl::SignalRouting mReverbSignalRouting;
78 
79  rcl::DelayVector mDiscreteReverbDelay;
80 
81  rcl::BiquadIirFilter mDiscreteReverbReflFilters;
82 
83  rcl::GainMatrix mDiscreteReverbPanningMatrix;
84 
85  std::unique_ptr<LateReverbFilterCalculator> mLateReverbFilterCalculator;
86 
93  rcl::DelayVector mLateReverbGainDelay;
94 
95  rcl::FirFilterMatrix mLateReverbFilter;
96 
97  rcl::FirFilterMatrix mLateDiffusionFilter;
98 
99  rcl::Add mReverbMix;
100 };
101 
102 } // namespace reverbobject
103 } // namespace visr
104 
105 #endif // VISR_REVERBOBJECT_REVERB_OBJECT_RENDERER_HPP_INCLUDED
Definition: delay_vector.hpp:42
Definition: add.hpp:27
Definition: fir_filter_matrix.hpp:43
Definition: reverb_parameter_calculator.hpp:47
Definition: reverb_object_renderer.hpp:42
Definition: options.cpp:10
Definition: parameter_input.hpp:45
Definition: composite_component.hpp:29
Definition: LoudspeakerArray.h:42
Definition: signal_routing.hpp:31
Definition: signal_flow_context.hpp:15
Definition: biquad_iir_filter.hpp:47
Definition: gain_matrix.hpp:46