2 #include "WaveTableSynth.h"
5 enum struct SequenceCommand {
11 SequenceData () : step(0.0f),pitch(0.0f),velocity(0.0f),gateTime(0.0f){};
12 SequenceData(SequenceCommand c,int s,float p,float v,int g )
13 : cmd(c),step(s),pitch(p),velocity(v),gateTime(g) {};
14 SequenceData(SequenceData& src)
15 : cmd(src.cmd),step(src.step),pitch(src.pitch),velocity(src.velocity),gateTime(src.gateTime) {}
17 SequenceData(SequenceData&& src)
18 : cmd(std::move(src.cmd)),step(std::move(src.step)),pitch(std::move(src.pitch)),velocity(std::move(src.velocity)),gateTime(std::move(src.gateTime)) {}
20 SequenceData& operator=(SequenceData& src)
27 velocity = src.velocity;
28 gateTime = src.gateTime;
33 SequenceData& operator=(SequenceData&& src)
37 cmd = std::move(src.cmd);
38 step = std::move(src.step);
39 pitch = std::move(src.pitch);
40 velocity = std::move(src.velocity);
41 gateTime = std::move(src.gateTime);
53 typedef std::vector<SequenceData> SequenceDatasType;
54 typedef std::vector<SequenceDatasType> SequenceTracksType;
64 Sequencer(Synthesizer& synth,WAVEFORMATEXTENSIBLE& format);
68 float TimeBase() const;
69 void TimeBase(float v);
77 SequenceTracksType& SequenceTracks();
80 std::unique_ptr<impl> impl_;