SpectMorph
smmorphlinearmodule.hh
1 // Licensed GNU LGPL v3 or later: http://www.gnu.org/licenses/lgpl.html
2 
3 #ifndef SPECTMORPH_MORPH_LINEAR_MODULE_HH
4 #define SPECTMORPH_MORPH_LINEAR_MODULE_HH
5 
6 #include "smmorphplan.hh"
7 #include "smmorphoutput.hh"
8 #include "smmorphoperatormodule.hh"
9 #include "smmorphlinear.hh"
10 
11 namespace SpectMorph
12 {
13 
15 {
16  MorphOperatorModule *left_mod;
17  MorphOperatorModule *right_mod;
18  MorphOperatorModule *control_mod;
19  float morphing;
20  bool db_linear;
21  bool use_lpc;
22 
23  MorphLinear::ControlType control_type;
24 
25  Audio audio;
26  AudioBlock audio_block;
27 
28  int left_delay_blocks;
29  int right_delay_blocks;
30 
31  struct MySource : public LiveDecoderSource
32  {
33  MorphLinearModule *module;
34 
35  void interp_mag_one (double interp, uint16_t *left, uint16_t *right);
36  void retrigger (int channel, float freq, int midi_velocity, float mix_freq);
37  Audio* audio();
38  AudioBlock *audio_block (size_t index);
39  } my_source;
40 
41 public:
44 
45  void set_config (MorphOperator *op);
46  LiveDecoderSource *source();
47 };
48 
49 }
50 
51 #endif
Audio sample containing many blocks.
Definition: smaudio.hh:79
Block of audio data, encoded in SpectMorph parametric format.
Definition: smaudio.hh:26
Definition: smmorphoperatormodule.hh:23
Definition: smlivedecodersource.hh:10
Definition: smmorphplanvoice.hh:14
Definition: smmorphoperator.hh:19
Definition: smaudio.hh:15
Definition: smmorphlinearmodule.hh:14