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 #include "smmorphsourcemodule.hh"
11 
12 namespace SpectMorph
13 {
14 
16 {
17  MorphOperatorModule *left_mod;
18  MorphOperatorModule *right_mod;
19  MorphOperatorModule *control_mod;
20  SimpleWavSetSource left_source;
21  bool have_left_source;
22  SimpleWavSetSource right_source;
23  bool have_right_source;
24  float morphing;
25  bool db_linear;
26 
27  MorphLinear::ControlType control_type;
28 
29  Audio audio;
30  AudioBlock audio_block;
31 
32  struct MySource : public LiveDecoderSource
33  {
34  MorphLinearModule *module;
35 
36  // temporary data for morphing (avoid malloc by putting it here)
37  AudioBlock left_block;
38  AudioBlock right_block;
39 
40  void interp_mag_one (double interp, uint16_t *left, uint16_t *right);
41  void retrigger (int channel, float freq, int midi_velocity, float mix_freq);
42  Audio* audio();
43  AudioBlock *audio_block (size_t index);
44  } my_source;
45 
46 public:
49 
50  void set_config (MorphOperator *op);
51  LiveDecoderSource *source();
52 };
53 
54 }
55 
56 #endif
Audio sample containing many blocks.
Definition: smaudio.hh:78
Definition: smmorphsourcemodule.hh:12
Block of audio data, encoded in SpectMorph parametric format.
Definition: smaudio.hh:27
Definition: smmorphoperatormodule.hh:23
Definition: smlivedecodersource.hh:10
Definition: smmorphplanvoice.hh:14
Definition: smmorphoperator.hh:18
Definition: smadsrenvelope.hh:8
Definition: smmorphlinearmodule.hh:15