SpectMorph
smmorphoutput.hh
1 // Licensed GNU LGPL v3 or later: http://www.gnu.org/licenses/lgpl.html
2 
3 #ifndef SPECTMORPH_MORPH_OUTPUT_HH
4 #define SPECTMORPH_MORPH_OUTPUT_HH
5 
6 #include "smmorphoperator.hh"
7 
8 #include <string>
9 
10 namespace SpectMorph
11 {
12 
13 class MorphOutput : public MorphOperator
14 {
15  Q_OBJECT
16 
17  std::vector<std::string> load_channel_op_names;
18  std::vector<MorphOperator *> channel_ops;
19 
20  bool m_sines;
21  bool m_noise;
22 
23  bool m_unison;
24  int m_unison_voices;
25  float m_unison_detune;
26 
27 public:
28  MorphOutput (MorphPlan *morph_plan);
29  ~MorphOutput();
30 
31  // inherited from MorphOperator
32  const char *type();
33  int insert_order();
34  bool save (OutFile& out_file);
35  bool load (InFile& in_file);
36  void post_load (OpNameMap& op_name_map);
37  OutputType output_type();
38 
39  void set_sines (bool es);
40  bool sines();
41 
42  void set_noise (bool en);
43  bool noise();
44 
45  void set_unison (bool eu);
46  bool unison();
47 
48  void set_unison_voices (int voices);
49  int unison_voices() const;
50 
51  void set_unison_detune (float voices);
52  float unison_detune() const;
53 
54  void set_channel_op (int ch, MorphOperator *op);
55  MorphOperator *channel_op (int ch);
56 
57 public slots:
58  void on_operator_removed (MorphOperator *op);
59 };
60 
61 }
62 
63 #endif
Definition: smoutfile.hh:15
Definition: smmorphplan.hh:15
Class to read SpectMorph binary data.
Definition: sminfile.hh:25
Definition: smmorphoperator.hh:19
Definition: smalignedarray.cc:7
Definition: smmorphoutput.hh:13