libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
musicalnote.h
Go to the documentation of this file.
1
8#pragma once
9
10
11#include <promeki/config.h>
12#if PROMEKI_ENABLE_MUSIC
13#include <promeki/list.h>
14
15PROMEKI_NAMESPACE_BEGIN
16
34class MusicalNote {
35 public:
36 using List = ::promeki::List<MusicalNote>;
37
39 MusicalNote() = default;
40
42 float midiNote() const { return _midiNote; }
44 void setMidiNote(float v) { _midiNote = v; }
45
47 double startTime() const { return _startTime; }
49 void setStartTime(double v) { _startTime = v; }
50
52 double duration() const { return _duration; }
54 void setDuration(double v) { _duration = v; }
55
57 double fullDuration() const { return _fullDuration; }
59 void setFullDuration(double v) { _fullDuration = v; }
60
62 float amplitude() const { return _amplitude; }
64 void setAmplitude(float v) { _amplitude = v; }
65
67 float legato() const { return _legato; }
69 void setLegato(float v) { _legato = v; }
70
72 float vibrato() const { return _vibrato; }
74 void setVibrato(float v) { _vibrato = v; }
75
77 float vibratoRate() const { return _vibratoRate; }
79 void setVibratoRate(float v) { _vibratoRate = v; }
80
82 float tremolo() const { return _tremolo; }
84 void setTremolo(float v) { _tremolo = v; }
85
87 float tremoloRate() const { return _tremoloRate; }
89 void setTremoloRate(float v) { _tremoloRate = v; }
90
92 bool isRest() const { return _rest; }
94 void setRest(bool v) { _rest = v; }
95
96 private:
97 float _midiNote = -1.0f;
98 double _startTime = 0.0;
99 double _duration = 0.0;
100 double _fullDuration = 0.0;
101 float _amplitude = 0.5f;
102 float _legato = 0.5f;
103 float _vibrato = 0.0f;
104 float _vibratoRate = 5.0f;
105 float _tremolo = 0.0f;
106 float _tremoloRate = 5.0f;
107 bool _rest = false;
108};
109
110PROMEKI_NAMESPACE_END
111
112#endif // PROMEKI_ENABLE_MUSIC