VISR
0.11.8
Versatile Interactive Scene Renderer
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
time_frequency_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_TRANSFORM_HPP_INCLUDED
4
#define VISR_LIBRCL_TIME_FREQUENCY_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_input.hpp
>
11
#include <
libvisr/parameter_output.hpp
>
12
13
#include <
libefl/basic_vector.hpp
>
14
15
#include <
libpml/time_frequency_parameter.hpp
>
16
#include <
libpml/shared_data_protocol.hpp
>
17
18
#include <
librbbl/circular_buffer.hpp
>
19
20
#include <cstddef>
// for std::size_t
21
#include <memory>
22
23
namespace
visr
24
{
25
26
// Forward declarations
27
namespace
rbbl
28
{
29
template
<
typename
SampleType >
30
class
FftWrapperBase;
31
}
32
33
namespace
rcl
34
{
35
39
class
VISR_RCL_LIBRARY_SYMBOL
TimeFrequencyTransform
:
public
AtomicComponent
40
{
41
public
:
42
using
SampleType
=
visr::SampleType
;
43
56
explicit
TimeFrequencyTransform
(
SignalFlowContext
const
& context,
57
char
const
* name,
58
CompositeComponent
* parent,
59
std::size_t numberOfChannels,
60
std::size_t dftLength,
61
std::size_t windowLength,
62
std::size_t hopSize,
63
char
const
* fftImplementation =
"default"
);
64
77
explicit
TimeFrequencyTransform
(
SignalFlowContext
const
& context,
78
char
const
* name,
79
CompositeComponent
* parent,
80
std::size_t numberOfChannels,
81
std::size_t dftLength,
82
efl::BasicVector<SampleType>
const
& window,
83
std::size_t hopSize,
84
char
const
* fftImplementation =
"default"
);
85
89
~
TimeFrequencyTransform
()
override
;
90
91
void
process( )
override
;
92
93
private
:
94
95
std::size_t
const
mAlignment;
96
100
std::size_t
const
mNumberOfChannels;
101
105
std::size_t
const
mDftlength;
106
107
std::size_t
const
mWindowLength;
108
109
std::size_t mDftSamplesPerPeriod;
110
111
std::size_t
const
mHopSize;
112
113
rbbl::CircularBuffer<SampleType>
mInputBuffer;
114
118
std::unique_ptr< rbbl::FftWrapperBase<SampleType> > mFftWrapper;
119
123
efl::BasicVector<SampleType>
mWindow;
124
125
efl::BasicVector<SampleType>
mCalcBuffer;
126
127
AudioInput
mInput;
128
132
ParameterOutput<pml::SharedDataProtocol, pml::TimeFrequencyParameter<SampleType>
> mOutput;
133
};
134
135
}
// namespace rcl
136
}
// namespace visr
137
138
#endif // #ifndef VISR_LIBRCL_TIME_FREQUENCY_TRANSFORM_HPP_INCLUDED
visr::ParameterOutput
Definition:
parameter_output.hpp:45
visr::rcl::TimeFrequencyTransform
Definition:
time_frequency_transform.hpp:39
visr::rbbl::CircularBuffer< SampleType >
visr::rcl::TimeFrequencyTransform::SampleType
visr::SampleType SampleType
Definition:
time_frequency_transform.hpp:42
visr
Definition:
options.cpp:10
visr::AtomicComponent
Definition:
atomic_component.hpp:21
visr::CompositeComponent
Definition:
composite_component.hpp:29
basic_vector.hpp
parameter_output.hpp
visr::SignalFlowContext
Definition:
signal_flow_context.hpp:15
visr::AudioInputT< SampleType >
time_frequency_parameter.hpp
export_symbols.hpp
circular_buffer.hpp
constants.hpp
atomic_component.hpp
shared_data_protocol.hpp
visr::efl::BasicVector< SampleType >
visr::SampleType
float SampleType
Definition:
constants.hpp:14
audio_input.hpp
src
librcl
time_frequency_transform.hpp
Generated on Fri Nov 16 2018 13:42:28 for VISR by
1.8.11