VISR
0.11.7
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
8
#include <
libvisr/composite_component.hpp
>
9
#include <
libvisr/audio_input.hpp
>
10
#include <
libvisr/audio_output.hpp
>
11
#include <
libvisr/parameter_input.hpp
>
12
13
#include <
librcl/add.hpp
>
14
#include <
librcl/biquad_iir_filter.hpp
>
15
#include <
librcl/delay_vector.hpp
>
16
#include <
librcl/fir_filter_matrix.hpp
>
17
#include <
librcl/gain_matrix.hpp
>
18
#include <
librcl/signal_routing.hpp
>
19
20
#include "
late_reverb_filter_calculator.hpp
"
21
#include "
reverb_parameter_calculator.hpp
"
22
23
#include <
libefl/basic_matrix.hpp
>
24
25
#include <
libpml/listener_position.hpp
>
26
#include <
libpml/double_buffering_protocol.hpp
>
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
66
~
ReverbObjectRenderer
();
67
68
private
:
69
AudioInput
mObjectSignalInput;
70
71
AudioOutput
mLoudspeakerOutput;
72
73
ParameterInput< pml::DoubleBufferingProtocol, pml::ObjectVector >
mObjectVector;
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
double_buffering_protocol.hpp
visr::rcl::DelayVector
Definition:
delay_vector.hpp:42
fir_filter_matrix.hpp
visr::rcl::Add
Definition:
add.hpp:27
parameter_input.hpp
add.hpp
visr::rcl::FirFilterMatrix
Definition:
fir_filter_matrix.hpp:43
visr::AudioOutputT< SampleType >
visr::reverbobject::ReverbParameterCalculator
Definition:
reverb_parameter_calculator.hpp:47
late_reverb_filter_calculator.hpp
visr::reverbobject::ReverbObjectRenderer
Definition:
reverb_object_renderer.hpp:42
delay_vector.hpp
basic_matrix.hpp
gain_matrix.hpp
export_symbols.hpp
visr
Definition:
options.cpp:10
object_vector.hpp
visr::ParameterInput
Definition:
parameter_input.hpp:45
visr::CompositeComponent
Definition:
composite_component.hpp:29
visr::panning::LoudspeakerArray
Definition:
LoudspeakerArray.h:42
visr::rcl::SignalRouting
Definition:
signal_routing.hpp:31
visr::SignalFlowContext
Definition:
signal_flow_context.hpp:15
audio_output.hpp
visr::AudioInputT< SampleType >
biquad_iir_filter.hpp
reverb_parameter_calculator.hpp
listener_position.hpp
visr::rcl::BiquadIirFilter
Definition:
biquad_iir_filter.hpp:47
signal_routing.hpp
audio_input.hpp
visr::rcl::GainMatrix
Definition:
gain_matrix.hpp:46
composite_component.hpp
src
libreverbobject
reverb_object_renderer.hpp
Generated on Mon Nov 12 2018 12:57:38 for VISR by
1.8.14