VISR
0.11.7
Versatile Interactive Scene Renderer
time_frequency_inverse_transform.hpp
Go to the documentation of this file.
1
/* Copyright Institute of Sound and Vibration Research - All rights reserved */
2
3
#ifndef VISR_LIBRCL_TIME_FREQUENCY_INVERSE_TRANSFORM_HPP_INCLUDED
4
#define VISR_LIBRCL_TIME_FREQUENCY_INVERSE_TRANSFORM_HPP_INCLUDED
5
6
#include "
export_symbols.hpp
"
7
8
#include <
libvisr/atomic_component.hpp
>
9
#include <
libvisr/constants.hpp
>
10
#include <
libvisr/audio_output.hpp
>
11
#include <
libvisr/parameter_input.hpp
>
12
13
#include <
libefl/aligned_array.hpp
>
14
#include <
libefl/basic_matrix.hpp
>
15
16
#include <
libpml/time_frequency_parameter.hpp
>
17
#include <
libpml/shared_data_protocol.hpp
>
18
19
#include <cstddef>
// for std::size_t
20
21
namespace
visr
22
{
23
24
// Forward declarations
25
namespace
rbbl
26
{
27
template
<
typename
SampleType >
28
class
FftWrapperBase;
29
30
template
<
typename
SampleType >
31
class
CircularBuffer;
32
33
}
34
35
namespace
rcl
36
{
37
38
class
VISR_RCL_LIBRARY_SYMBOL
TimeFrequencyInverseTransform
:
public
AtomicComponent
39
{
40
using
SampleType =
visr::SampleType
;
41
public
:
53
explicit
TimeFrequencyInverseTransform
(
SignalFlowContext
const
& context,
54
char
const
* name,
55
CompositeComponent
* parent,
56
std::size_t numberOfChannels,
57
std::size_t dftLength,
58
std::size_t hopSize,
59
char
const
* fftImplementation =
"default"
);
60
61
~
TimeFrequencyInverseTransform
()
override
;
62
63
void
process( )
override
;
64
65
private
:
66
std::size_t
const
mAlignment;
67
71
std::size_t
const
mNumberOfChannels;
72
76
std::size_t
const
mDftLength;
77
78
std::size_t
const
mDftSamplesPerPeriod;
79
80
std::size_t
const
mHopSize;
81
82
efl::BasicMatrix<SampleType>
mAccumulationBuffer;
83
87
std::unique_ptr< rbbl::FftWrapperBase<SampleType> > mFftWrapper;
88
89
efl::AlignedArray<SampleType>
mCalcBuffer;
90
94
ParameterInput<pml::SharedDataProtocol, pml::TimeFrequencyParameter<SampleType>
> mInput;
95
96
AudioOutput
mOutput;
97
};
98
99
}
// namespace rcl
100
}
// namespace visr
101
102
#endif // #ifndef VISR_LIBRCL_TIME_FREQUENCY_INVERSE_TRANSFORM_HPP_INCLUDED
visr::rcl::TimeFrequencyInverseTransform
Definition:
time_frequency_inverse_transform.hpp:38
parameter_input.hpp
visr::AudioOutputT< SampleType >
basic_matrix.hpp
visr
Definition:
options.cpp:10
visr::AtomicComponent
Definition:
atomic_component.hpp:21
visr::ParameterInput
Definition:
parameter_input.hpp:45
visr::CompositeComponent
Definition:
composite_component.hpp:29
visr::SignalFlowContext
Definition:
signal_flow_context.hpp:15
audio_output.hpp
time_frequency_parameter.hpp
export_symbols.hpp
constants.hpp
aligned_array.hpp
atomic_component.hpp
visr::efl::AlignedArray< SampleType >
shared_data_protocol.hpp
visr::SampleType
float SampleType
Definition:
constants.hpp:14
visr::efl::BasicMatrix< SampleType >
src
librcl
time_frequency_inverse_transform.hpp
Generated on Mon Nov 12 2018 12:57:38 for VISR by
1.8.14