Krotos Modules 3
Loading...
Searching...
No Matches
IRConvolver.h
Go to the documentation of this file.
1namespace krotos
2{
3 class FloatBuffer : public ReferenceCountedObject
4 {
5 public:
6 typedef ReferenceCountedObjectPtr<FloatBuffer> Ptr;
7
8 explicit FloatBuffer(size_t size) : juce::ReferenceCountedObject(), m_buffer(size) {}
9
10 size_t getSize() const { return m_buffer.size(); }
11
12 float* data() { return m_buffer.data(); }
13
14 const float* data() const { return m_buffer.data(); }
15
16 private:
17 std::vector<float> m_buffer;
18
19 // Prevent uncontrolled usage
22 };
23
24 //==============================================================================
29 {
30 public:
32 virtual ~IRConvolver();
33
34 // impulse response used by this convolver
37
39 void setConvolver(Convolver* convolver);
40 void resetConvolver();
41 void resetConvolver(FloatBuffer::Ptr irBuffer, float headBlockSize, float tailBlockSize);
42 void clearConvolver();
43
44 void process(const float* input, float* output, int len);
45
46 private:
49
51
52 CriticalSection m_convolverMutex;
53 std::unique_ptr<Convolver> m_convolver;
54
55 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(IRConvolver)
56 };
57} // namespace krotos
Definition Convolver.h:4
Definition IRConvolver.h:4
size_t getSize() const
Definition IRConvolver.h:10
const float * data() const
Definition IRConvolver.h:14
float * data()
Definition IRConvolver.h:12
FloatBuffer(const FloatBuffer &)
FloatBuffer & operator=(const FloatBuffer &)
FloatBuffer(size_t size)
Definition IRConvolver.h:8
ReferenceCountedObjectPtr< FloatBuffer > Ptr
Definition IRConvolver.h:6
std::vector< float > m_buffer
Definition IRConvolver.h:17
Used in the ConvolutionReverb class, performs single-channel convolution.
Definition IRConvolver.h:29
float m_tailBlockSize
Definition IRConvolver.h:48
Convolver * getConvolver()
Definition IRConvolver.cpp:15
void clearConvolver()
Definition IRConvolver.cpp:47
virtual ~IRConvolver()
Definition IRConvolver.cpp:5
float m_headBlockSize
Definition IRConvolver.h:47
FloatBuffer::Ptr m_irBuffer
Definition IRConvolver.h:50
void resetConvolver()
Definition IRConvolver.cpp:26
CriticalSection m_convolverMutex
Definition IRConvolver.h:52
void clearImpulseResponse()
Definition IRConvolver.cpp:9
FloatBuffer::Ptr getImpulseResponse() const
Definition IRConvolver.cpp:7
IRConvolver()
Definition IRConvolver.cpp:3
void setConvolver(Convolver *convolver)
Definition IRConvolver.cpp:17
std::unique_ptr< Convolver > m_convolver
Definition IRConvolver.h:53
void process(const float *input, float *output, int len)
Definition IRConvolver.cpp:49
Definition AirAbsorptionFilter.cpp:2