SpectMorph
smmorphoutputmodule.hh
1 // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl-2.1.html
2 
3 #ifndef SPECTMORPH_MORPH_OUTPUT_MODULE_HH
4 #define SPECTMORPH_MORPH_OUTPUT_MODULE_HH
5 
6 #include "smmorphoperatormodule.hh"
7 #include "smmorphplanvoice.hh"
8 #include "smeffectdecoder.hh"
9 #include "smrtmemory.hh"
10 
11 namespace SpectMorph {
12 
14 {
15  const MorphOutput::Config *cfg = nullptr;
16  const TimeInfoGenerator *time_info_gen = nullptr;
17  RTMemoryArea *m_rt_memory_area = nullptr;
18  EffectDecoder decoder;
19 
20 public:
23 
24  void set_config (const MorphOperatorConfig *op_cfg);
25  void process (const TimeInfoGenerator& time_info, RTMemoryArea& rt_memory_area, size_t n_samples, float **values, size_t n_ports, const float *freq_in = nullptr);
26  void retrigger (const TimeInfo& time_info, int channel, float freq, int midi_velocity);
27  void release();
28  bool done();
29 
30  bool portamento() const;
31  float portamento_glide() const;
32  float velocity_sensitivity() const;
33  int pitch_bend_range() const;
34  float filter_cutoff_mod() const;
35  float filter_resonance_mod() const;
36  float filter_drive_mod() const;
37  TimeInfo compute_time_info() const;
38  RTMemoryArea *rt_memory_area() const;
39 };
40 
41 }
42 
43 #endif
Definition: smeffectdecoder.hh:20
Definition: smmorphoperatormodule.hh:27
Definition: smmorphoutputmodule.hh:14
Definition: smmorphplanvoice.hh:16
Definition: smrtmemory.hh:16
Definition: smtimeinfo.hh:18
Definition: smtimeinfo.hh:11
Definition: smmorphoperator.hh:18
Definition: smmorphoutput.hh:53