2#include <score/model/IdentifiedObject.hpp>
3#include <score_plugin_midi_export.h>
4#include <score/selection/Selectable.hpp>
10using midi_size_t = uint8_t;
14 NoteData(
double s,
double d, midi_size_t p, midi_size_t v)
22 double start()
const {
return m_start; }
23 double duration()
const {
return m_duration; }
24 double end()
const {
return m_start + m_duration; }
26 midi_size_t pitch()
const {
return m_pitch; }
27 midi_size_t velocity()
const {
return m_velocity; }
29 void setStart(
double s) { m_start = s; }
30 void setDuration(
double s) { m_duration = s; }
31 void setPitch(midi_size_t s) { m_pitch = s; }
32 void setVelocity(midi_size_t s) { m_velocity = s; }
37 midi_size_t m_pitch{};
38 midi_size_t m_velocity{};
45 return lhs.m_start < rhs.m_start;
47 bool operator()(
const NoteData& lhs,
double rhs)
const {
return lhs.m_start < rhs; }
62 SCORE_SERIALIZE_FRIENDS
70 template <IsDeserializer DeserializerVisitor>
71 Note(DeserializerVisitor&& vis, QObject* parent)
79 double start()
const noexcept {
return m_start; }
81 double duration()
const noexcept {
return m_duration; }
83 double end()
const noexcept {
return m_start + m_duration; }
85 midi_size_t pitch()
const noexcept {
return m_pitch; }
87 midi_size_t velocity()
const noexcept {
return m_velocity; }
89 void scale(
double s)
noexcept;
91 void setStart(
double s)
noexcept;
93 void setDuration(
double s)
noexcept;
95 void setPitch(midi_size_t s)
noexcept;
97 void setVelocity(midi_size_t s)
noexcept;
104 void noteChanged() W_SIGNAL(noteChanged);
110 midi_size_t m_pitch{};
111 midi_size_t m_velocity{64};
The IdentifiedObject class.
Definition IdentifiedObject.hpp:19
The Note class.
Definition MidiNote.hpp:60
The Selectable class.
Definition Selectable.hpp:14
The id_base_t class.
Definition Identifier.hpp:59
Definition MidiNote.hpp:42
Definition MidiNote.hpp:12