ofxPDSP
IRVerb.h
1 
2 // IRVerb.h
3 // ofxPDSP
4 // Nicola Pisanti, MIT License, 2016
5 
6 #ifndef PDSP_MODULE_IRVERB_H_INCLUDED
7 #define PDSP_MODULE_IRVERB_H_INCLUDED
8 
9 #include "../../DSP/pdspCore.h"
10 #include "../../DSP/convolution/FDLConvolver.h"
11 #include "../../DSP/samplers/SampleBuffer.h"
12 
13 
14 namespace pdsp{
15 
20 class IRVerb : public Patchable {
21 
22 
23 public:
24 
25  IRVerb();
26  IRVerb(const IRVerb& other);
27  IRVerb& operator=(const IRVerb& other);
28 
29 
34  Patchable& ch( size_t index );
35 
40  void loadIR ( std::string path );
41 
45  [[deprecated("in_mono() deprecated for this module, just use one channel for that")]]
46  Patchable& in_mono();
47 
48  [[deprecated("in_0() deprecated for this module, use the ch( 0 ) method instead")]]
49  Patchable& in_0();
50 
51  [[deprecated("in_1() deprecated for this module, use the ch( 1 ) method instead")]]
52  Patchable& in_1();
53 
54  [[deprecated("out_0() deprecated for this module, use the ch( 0 ) method instead")]]
55  Patchable& out_0();
56 
57  [[deprecated("out_1() deprecated for this module, use the ch( 1 ) method instead")]]
58  Patchable& out_1();
59 
60  [[deprecated("in_L() deprecated for this module, use the ch( 0 ) method instead")]]
61  Patchable& in_L();
62 
63  [[deprecated("in_R() deprecated for this module, use the ch( 1 ) method instead")]]
64  Patchable& in_R();
65 
66  [[deprecated("out_L() deprecated for this module, use the ch( 0 ) method instead")]]
67  Patchable& out_L();
68 
69  [[deprecated("out_R() deprecated for this module, use the ch( 1 ) method instead")]]
70  Patchable& out_R();
75 private:
76  void patch();
77 
78  FDLConvolver reverbL;
79  FDLConvolver reverbR;
80 
81  SampleBuffer impulse;
82 
83 };
84 
85 
86 } // end namespace
87 
88 
89 
90 #endif // PDSP_MODULE_IRVERB_H_INCLUDED
void loadIR(std::string path)
sets the impulse response for the reverb
Definition: IRVerb.cpp:32
Impulse Response based reverb, with stereo or mono input and stereo output.
Definition: IRVerb.h:20
Abstract class for implementing Units and Modules.
Definition: BasicNodes.h:82
Contains the data loaded from an audio file.
Definition: SampleBuffer.h:28
Patchable & ch(size_t index)
Uses the selected channel as input/output for the patching operation. 0 is for the left channel (defa...
Definition: IRVerb.cpp:20
Thread-safe value control with smoothing.
Definition: SequencerBridge.h:11
Process the input using FFT convolution with a given impulse response.
Definition: FDLConvolver.h:22