VISR  0.12.0
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 
9 #include <libvisr/constants.hpp>
10 #include <libvisr/audio_output.hpp>
12 
13 #include <libefl/aligned_array.hpp>
14 #include <libefl/basic_matrix.hpp>
15 
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 
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 
90 
95 
96  AudioOutput mOutput;
97 };
98 
99 } // namespace rcl
100 } // namespace visr
101 
102 #endif // #ifndef VISR_LIBRCL_TIME_FREQUENCY_INVERSE_TRANSFORM_HPP_INCLUDED
Definition: time_frequency_inverse_transform.hpp:38
Definition: options.cpp:10
Definition: atomic_component.hpp:21
Definition: parameter_input.hpp:45
Definition: composite_component.hpp:29
Definition: signal_flow_context.hpp:15
float SampleType
Definition: constants.hpp:14