3 #ifndef SPECTMORPH_MORPH_PLAN_SYNTH_HH
4 #define SPECTMORPH_MORPH_PLAN_SYNTH_HH
6 #include "smmorphplan.hh"
7 #include "smmorphoperator.hh"
9 #include "smtimeinfo.hh"
13 namespace SpectMorph {
16 class MorphModuleSharedState;
17 class MorphOperatorModule;
18 class MorphOutputModule;
22 std::vector<MorphPlanVoice *> voices;
23 std::vector<std::unique_ptr<MorphModuleSharedState>> voices_shared_states;
25 std::vector<std::string> m_last_update_ids;
26 std::string m_last_plan_id;
27 std::vector<std::unique_ptr<MorphOperatorConfig>> m_active_configs;
31 bool m_have_cycle =
false;
35 std::unique_ptr<MorphOperatorModule> module;
36 MorphOperator::PtrID ptr_id;
42 std::vector<OpModule> new_modules;
48 MorphOperator::PtrID ptr_id;
53 bool have_cycle =
false;
55 std::vector<std::unique_ptr<MorphOperatorConfig>> new_configs;
56 std::vector<FullUpdateVoice> voice_full_updates;
57 std::vector<std::unique_ptr<MorphModuleSharedState>> new_shared_states;
59 typedef std::shared_ptr<Update> UpdateP;
64 UpdateP prepare_update (
const MorphPlan& new_plan);
65 void apply_update (UpdateP update);
67 void update_shared_state (
const TimeInfo& time_info);
71 float mix_freq()
const;
72 bool have_output()
const;
74 bool have_cycle()
const;
Definition: smmorphoutputmodule.hh:14
Definition: smmorphplansynth.hh:20
Definition: smmorphplanvoice.hh:16
Definition: smmorphplan.hh:18
Definition: smrandom.hh:15
Definition: smtimeinfo.hh:11
Definition: smmorphoperator.hh:18
Definition: smmorphplansynth.hh:40
Definition: smmorphplansynth.hh:34
Definition: smmorphplansynth.hh:47
Definition: smmorphplansynth.hh:45