SpectMorph
smmorphlfomodule.hh
1 // Licensed GNU LGPL v3 or later: http://www.gnu.org/licenses/lgpl.html
2 
3 #ifndef SPECTMORPH_MORPH_LFO_MODULE_HH
4 #define SPECTMORPH_MORPH_LFO_MODULE_HH
5 
6 #include "smmorphoperatormodule.hh"
7 #include "smmorphlfo.hh"
8 #include "smwavset.hh"
9 
10 namespace SpectMorph
11 {
12 
14 {
15  MorphLFO::WaveType wave_type;
16 
17  float frequency;
18  float depth;
19  float center;
20  float start_phase;
21  bool sync_voices;
22 
23  double phase;
24  double m_value;
25 
26  struct SharedState : public MorphModuleSharedState
27  {
28  double phase;
29  double value;
30  };
31  SharedState *shared_state;
32 
33  double compute_value (double phase);
34 public:
36  ~MorphLFOModule();
37 
38  void set_config (MorphOperator *op);
39  float value();
40  void reset_value();
41  void update_value (double time_ms);
42  void update_shared_state (double time_ms);
43 };
44 }
45 
46 #endif
Definition: smmorphlfomodule.hh:13
Definition: smmorphoperatormodule.hh:23
Definition: smmorphplanvoice.hh:14
Definition: smmorphoperator.hh:19
Definition: smaudio.hh:15
Definition: smmorphoperatormodule.hh:16