ofxPDSP
DimensionChorus.h
1 
2 // DimensionChorus.h
3 // ofxPDSP
4 // Nicola Pisanti, MIT License, 2016
5 
6 #ifndef PDSP_MODULE_DIMENSIONCHORUS_H_INCLUDED
7 #define PDSP_MODULE_DIMENSIONCHORUS_H_INCLUDED
8 
9 #include "../../DSP/pdspCore.h"
10 #include "../../DSP/oscillators/phasors/LFOPhasor.h"
11 #include "../../DSP/oscillators/cheap/CheapTri.h"
12 #include "../../DSP/delays/Delay.h"
13 #include "../../DSP/filters/OnePole.h"
14 
15 namespace pdsp{
21 class DimensionChorus : public Patchable {
22 
23 public:
25  DimensionChorus(const DimensionChorus& other);
26  DimensionChorus& operator=(const DimensionChorus& other);
27 
32  Patchable& ch( size_t index );
33 
38 
43 
48 
49 
53  float meter_lfo() const;
54 
55 
59  [[deprecated("in_0() deprecated for this module, use the ch( 0 ) method instead")]]
60  Patchable& in_0();
61 
62  [[deprecated("in_1() deprecated for this module, use the ch( 1 ) method instead")]]
63  Patchable& in_1();
64 
65  [[deprecated("out_0() deprecated for this module, use the ch( 0 ) method instead")]]
66  Patchable& out_0();
67 
68  [[deprecated("out_1() deprecated for this module, use the ch( 1 ) method instead")]]
69  Patchable& out_1();
70 
71  [[deprecated("in_L() deprecated for this module, use the ch( 0 ) method instead")]]
72  Patchable& in_L();
73 
74  [[deprecated("in_R() deprecated for this module, use the ch( 1 ) method instead")]]
75  Patchable& in_R();
76 
77  [[deprecated("out_L() deprecated for this module, use the ch( 0 ) method instead")]]
78  Patchable& out_L();
79 
80  [[deprecated("out_R() deprecated for this module, use the ch( 1 ) method instead")]]
81  Patchable& out_R();
86 private:
87 
88  struct Channel : public Patchable{
89  Channel();
90  PatchNode input;
91  PatchNode output;
92  };
93 
94  void patch();
95 
96  LFOPhasor phasor;
97  CheapTri LFO;
98 
99  Amp mod1;
100  Amp mod2;
101 
102  Delay delay1;
103  Delay delay2;
104 
105  OnePole filter1;
106  OnePole filter2;
107 
108  Channel channel0;
109  Channel channel1;
110 
111  PatchNode delay;
112  PatchNode depth;
113  PatchNode speed;
114 
115 };
116 
117 
118 
119 } // end namespace
120 
121 
122 
123 
124 
125 #endif // PDSP_MODULE_DIMENSIONCHORUS_H_INCLUDED
Digital Delay with a low pass filter in the feedback path.
Definition: Delay.h:21
non-clocked LFO
Definition: LFO.h:25
Economic triangle oscillator.
Definition: CheapTri.h:19
Simple phazor for LFOs.
Definition: LFOPhasor.h:22
Abstract class for implementing Units and Modules.
Definition: BasicNodes.h:82
Multiply in("signal") for in("mod").
Definition: Amp.h:23
Chorus loosely based on Roland Dimension C-D models.
Definition: DimensionChorus.h:21
float meter_lfo() const
returns a value between -1.0f and 1.0f that rapresent the LFO output signal. This method is thread-sa...
Definition: DimensionChorus.cpp:76
Patchable & ch(size_t index)
Uses the selected channel as input/output for the patching operation. 0 is for the left channel (defa...
Definition: DimensionChorus.cpp:53
Thread-safe value control with smoothing.
Definition: SequencerBridge.h:11
Patchable & in_delay()
Sets "delay" as selected input and returns this module ready to be patched. This is the chorus delay ...
Definition: DimensionChorus.cpp:72
A Unit with no dsp inside, it just pass it's input to the output. Patching float to this Unit is thre...
Definition: PatchNode.h:41
Patchable & in_speed()
Sets "speed" as selected input and returns this module ready to be patched. This is the chorus modula...
Definition: DimensionChorus.cpp:64
Patchable & in_depth()
Sets "depth" as selected input and returns this module ready to be patched. This is the chorus (bipol...
Definition: DimensionChorus.cpp:68
1 pole high/low pass filter
Definition: OnePole.h:18