3 #ifndef XJMUSIC_MUSIC_NOTE_RANGE_H
4 #define XJMUSIC_MUSIC_NOTE_RANGE_H
17 std::string UNKNOWN =
"Unknown";
18 int MAX_SEEK_OCTAVES = 3;
22 std::optional<Note>
low;
57 void expand(
const std::vector<Note> ¬es);
Definition: NoteRange.h:15
NoteRange()
Definition: NoteRange.cpp:10
static NoteRange ofNotes(std::vector< Note > notes)
Definition: NoteRange.cpp:40
NoteRange shifted(int inc) const
Definition: NoteRange.cpp:152
static NoteRange copyOf(const NoteRange &range)
Definition: NoteRange.cpp:35
bool includes(Note note) const
Definition: NoteRange.cpp:196
static NoteRange median(const NoteRange &r1, const NoteRange &r2)
Definition: NoteRange.cpp:65
static int computeMedianOptimalRangeShiftOctaves(const NoteRange *sourceRange, const NoteRange *targetRange)
Definition: NoteRange.cpp:70
Note toAvailableOctave(Note note) const
Definition: NoteRange.cpp:176
static NoteRange from(Note low, Note high)
Definition: NoteRange.cpp:22
std::optional< Note > high
Definition: NoteRange.h:24
std::optional< Note > getMedianNote()
Definition: NoteRange.cpp:144
std::optional< Note > low
Definition: NoteRange.h:22
void expand(const std::vector< Note > ¬es)
Definition: NoteRange.cpp:119
static NoteRange ofStrings(const std::vector< std::string > ¬es)
Definition: NoteRange.cpp:55
int getDeltaSemitones(NoteRange target)
Definition: NoteRange.cpp:136
bool empty() const
Definition: NoteRange.cpp:159
std::string toString(Accidental accidental)
Definition: NoteRange.cpp:101
std::optional< Note > getNoteNearestMedian(PitchClass root)
Definition: NoteRange.cpp:165
Definition: ActiveAudio.h:11
Accidental
Definition: Accidental.h:12
PitchClass
Definition: PitchClass.h:19