maiacore 1.10.1
Music analisys library
constants.h
1#ifndef CONSTANTS_H
2#define CONSTANTS_H
3
4#include <array>
5#include <cmath> // std::pow
6#include <map>
7#include <string>
8#include <vector>
9
10#include "maiacore/log.h"
11
12const float HAVE_THIRD_VALUE = 1.0f; // 2^0
13const float HAVE_FIFTH_VALUE = 2.0f; // 2^1
14const float HAVE_SEVENTH_VALUE = 4.0f; // 2^2
15const float HAVE_NINTH_VALUE = 8.0f; // 2^3
16const float HAVE_ELEVENTH_VALUE = 16.0f; // 2^4
17const float HAVE_THIRDTEENTH_VALUE = 32.0f; // 2^5
18
19const std::vector<float> c_haveComplexityValues{HAVE_THIRD_VALUE, HAVE_FIFTH_VALUE,
20 HAVE_SEVENTH_VALUE, HAVE_NINTH_VALUE,
21 HAVE_ELEVENTH_VALUE, HAVE_THIRDTEENTH_VALUE};
22
23const std::map<int, std::pair<std::string, std::string>> c_mapAscFifthTonality = {
24 {0, std::make_pair("C", "Am")}, {1, std::make_pair("G", "Em")},
25 {2, std::make_pair("D", "Bm")}, {3, std::make_pair("A", "F#m")},
26 {4, std::make_pair("E", "C#m")}, {5, std::make_pair("B", "G#m")},
27 {6, std::make_pair("F#", "D#m")}, {7, std::make_pair("C#", "Bbm")},
28 {8, std::make_pair("G#", "Fm")}, {9, std::make_pair("D#", "Cm")},
29 {10, std::make_pair("A#", "Gm")}, {11, std::make_pair("E#", "Dm")},
30};
31
32const std::map<int, std::pair<std::string, std::string>> c_mapDescFifthTonality = {
33 {0, std::make_pair("C", "Am")}, {1, std::make_pair("G", "Em")},
34 {2, std::make_pair("D", "Bm")}, {3, std::make_pair("A", "F#m")},
35 {4, std::make_pair("E", "C#m")}, {5, std::make_pair("B", "G#m")},
36 {6, std::make_pair("Gb", "D#m")}, {7, std::make_pair("Db", "Bbm")},
37 {8, std::make_pair("Ab", "Fm")}, {9, std::make_pair("Eb", "Cm")},
38 {10, std::make_pair("Bb", "Gm")}, {11, std::make_pair("F", "Dm")},
39};
40
41const std::map<std::string, std::pair<int, bool>> c_mapKeyName2FifthCirCleMode = {
42 {"C", std::make_pair(0, true)}, {"G", std::make_pair(1, true)},
43 {"D", std::make_pair(2, true)}, {"A", std::make_pair(3, true)},
44 {"E", std::make_pair(4, true)}, {"B", std::make_pair(5, true)},
45 {"F#", std::make_pair(6, true)}, {"C#", std::make_pair(7, true)},
46 {"G#", std::make_pair(8, true)}, {"D#", std::make_pair(9, true)},
47 {"A#", std::make_pair(10, true)}, {"E#", std::make_pair(11, true)},
48 {"Gb", std::make_pair(-6, true)}, {"Db", std::make_pair(-5, true)},
49 {"Ab", std::make_pair(-4, true)}, {"Eb", std::make_pair(-3, true)},
50 {"Bb", std::make_pair(-2, true)}, {"F", std::make_pair(-1, true)},
51 {"Am", std::make_pair(0, false)}, {"Em", std::make_pair(1, false)},
52 {"Bm", std::make_pair(2, false)}, {"F#m", std::make_pair(3, false)},
53 {"C#m", std::make_pair(4, false)}, {"G#m", std::make_pair(5, false)},
54 {"D#m", std::make_pair(6, false)}, {"Bbm", std::make_pair(-5, false)},
55 {"Fm", std::make_pair(-4, false)}, {"Cm", std::make_pair(-3, false)},
56 {"Gm", std::make_pair(-2, false)}, {"Dm", std::make_pair(-1, false)}};
57
58enum class RhythmFigure {
59 MAXIMA,
60 LONG,
61 BREVE,
62 WHOLE,
63 HALF,
64 QUARTER,
65 EIGHTH,
66 N16TH,
67 N32ND,
68 N64TH,
69 N128TH,
70 N256TH,
71 N512TH,
72 N1024TH,
73};
74
75const std::map<int, RhythmFigure> c_mapTimeSignatureLower_Duration = {
76 {1, RhythmFigure::WHOLE}, {2, RhythmFigure::HALF}, {4, RhythmFigure::QUARTER},
77 {8, RhythmFigure::EIGHTH}, {16, RhythmFigure::N16TH}, {32, RhythmFigure::N32ND},
78 {64, RhythmFigure::N64TH}, {128, RhythmFigure::N128TH}, {256, RhythmFigure::N256TH},
79 {512, RhythmFigure::N512TH}, {1024, RhythmFigure::N1024TH}};
80
81// ===== HARMONY DEGREES ===== //
82const std::array<int, 7> c_harmonyDegrees = {1, 2, 3, 4, 5, 6, 7};
83const std::array<std::string, 7> c_harmonyKeyDegrees = {"I", "II", "III", "IV", "V", "VI", "VII"};
84
85// ===== SCALES ===== //
86// Diatonic Scales (Pitch Steps)
87const std::array<std::string, 7> c_C_diatonicScale = {"C", "D", "E", "F", "G", "A", "B"};
88const std::array<std::string, 7> c_D_diatonicScale = {"D", "E", "F", "G", "A", "B", "C"};
89const std::array<std::string, 7> c_E_diatonicScale = {"E", "F", "G", "A", "B", "C", "D"};
90const std::array<std::string, 7> c_F_diatonicScale = {"F", "G", "A", "B", "C", "D", "E"};
91const std::array<std::string, 7> c_G_diatonicScale = {"G", "A", "B", "C", "D", "E", "F"};
92const std::array<std::string, 7> c_A_diatonicScale = {"A", "B", "C", "D", "E", "F", "G"};
93const std::array<std::string, 7> c_B_diatonicScale = {"B", "C", "D", "E", "F", "G", "A"};
94
95const std::array<std::string, 12> c_chromaticSharpScale = {"C", "C#", "D", "D#", "E", "F",
96 "F#", "G", "G#", "A", "A#", "B"};
97const std::array<std::string, 12> c_chromaticFlatScale = {"C", "Db", "D", "Eb", "Fb", "F",
98 "Gb", "G", "Ab", "A", "Bb", "B"};
99const std::array<std::string, 12> c_chromaticDoubleSharpScale = {
100 "C", "Bx", "Cx", "D#", "Dx", "E#", "Ex", "Fx", "G#", "Gx", "A#", "Ax"};
101const std::array<std::string, 12> c_chromaticDoubleFlatScale = {
102 "C", "Db", "Ebb", "Fbb", "Fb", "Gbb", "Gb", "Abb", "Ab", "Bbb", "Bb", "Cb"};
103const std::array<std::string, 4> c_alterSymbol = {"bb", "b", "#", "x"};
104
105// ===== PIANO WHITE KEYS ===== //
106const std::array<std::string, 71> c_pianoWhiteKeys = {
107 "C0", "D0", "E0", "F0", "G0", "A0", "B0", "C1", "D1", "E1", "F1", "G1", "A1", "B1", "C2",
108 "D2", "E2", "F2", "G2", "A2", "B2", "C3", "D3", "E3", "F3", "G3", "A3", "B3", "C4", "D4",
109 "E4", "F4", "G4", "A4", "B4", "C5", "D5", "E5", "F5", "G5", "A5", "B5", "C6", "D6", "E6",
110 "F6", "G6", "A6", "B6", "C7", "D7", "E7", "F7", "G7", "A7", "B7", "C8", "D8", "E8", "F8",
111 "G8", "A8", "B8", "C9", "D9", "E9", "F9", "G9", "A9", "B9", "C10"};
112
113// ===== STACK POSITION WEIGHT MAP ===== //
114const std::map<char, int> c_C_stackPositionWeightMap = {
115 {'C', std::pow(2, 7)}, {'E', std::pow(2, 6)}, {'G', std::pow(2, 5)}, {'B', std::pow(2, 4)},
116 {'D', std::pow(2, 3)}, {'F', std::pow(2, 2)}, {'A', std::pow(2, 1)}};
117
118const std::map<char, int> c_D_stackPositionWeightMap = {
119 {'D', std::pow(2, 7)}, {'F', std::pow(2, 6)}, {'A', std::pow(2, 5)}, {'C', std::pow(2, 4)},
120 {'E', std::pow(2, 3)}, {'G', std::pow(2, 2)}, {'B', std::pow(2, 1)}};
121
122const std::map<char, int> c_E_stackPositionWeightMap = {
123 {'E', std::pow(2, 7)}, {'G', std::pow(2, 6)}, {'B', std::pow(2, 5)}, {'D', std::pow(2, 4)},
124 {'F', std::pow(2, 3)}, {'A', std::pow(2, 2)}, {'C', std::pow(2, 1)}};
125
126const std::map<char, int> c_F_stackPositionWeightMap = {
127 {'F', std::pow(2, 7)}, {'A', std::pow(2, 6)}, {'C', std::pow(2, 5)}, {'E', std::pow(2, 4)},
128 {'G', std::pow(2, 3)}, {'B', std::pow(2, 2)}, {'D', std::pow(2, 1)}};
129
130const std::map<char, int> c_G_stackPositionWeightMap = {
131 {'G', std::pow(2, 7)}, {'B', std::pow(2, 6)}, {'D', std::pow(2, 5)}, {'F', std::pow(2, 4)},
132 {'A', std::pow(2, 3)}, {'C', std::pow(2, 2)}, {'E', std::pow(2, 1)}};
133
134const std::map<char, int> c_A_stackPositionWeightMap = {
135 {'A', std::pow(2, 7)}, {'C', std::pow(2, 6)}, {'E', std::pow(2, 5)}, {'G', std::pow(2, 4)},
136 {'B', std::pow(2, 3)}, {'D', std::pow(2, 2)}, {'F', std::pow(2, 1)}};
137
138const std::map<char, int> c_B_stackPositionWeightMap = {
139 {'B', std::pow(2, 7)}, {'D', std::pow(2, 6)}, {'F', std::pow(2, 5)}, {'A', std::pow(2, 4)},
140 {'C', std::pow(2, 3)}, {'E', std::pow(2, 2)}, {'G', std::pow(2, 1)}};
141
142// ===== CLOSE STACK IN THIRDS OCTAVES MAP ===== //
143const std::map<char, int> c_C_closeStackOctavesMap = {{'C', 4}, {'E', 4}, {'G', 4}, {'B', 4},
144 {'D', 5}, {'F', 5}, {'A', 5}};
145
146const std::map<char, int> c_D_closeStackOctavesMap = {{'D', 4}, {'F', 4}, {'A', 4}, {'C', 5},
147 {'E', 5}, {'G', 5}, {'B', 5}};
148
149const std::map<char, int> c_E_closeStackOctavesMap = {{'E', 4}, {'G', 4}, {'B', 4}, {'D', 5},
150 {'F', 5}, {'A', 5}, {'C', 6}};
151
152const std::map<char, int> c_F_closeStackOctavesMap = {{'F', 4}, {'A', 4}, {'C', 5}, {'E', 5},
153 {'G', 5}, {'B', 5}, {'D', 6}};
154
155const std::map<char, int> c_G_closeStackOctavesMap = {{'G', 4}, {'B', 4}, {'D', 5}, {'F', 5},
156 {'A', 5}, {'C', 6}, {'E', 6}};
157
158const std::map<char, int> c_A_closeStackOctavesMap = {{'A', 4}, {'C', 5}, {'E', 5}, {'G', 5},
159 {'B', 5}, {'D', 6}, {'F', 6}};
160
161const std::map<char, int> c_B_closeStackOctavesMap = {{'B', 4}, {'D', 5}, {'F', 5}, {'A', 5},
162 {'C', 6}, {'E', 6}, {'G', 6}};
163
164const std::map<int, RhythmFigure> c_TimeSignatureLowerValueMap = {
165 {32, RhythmFigure::N32ND}, {16, RhythmFigure::N16TH}, {8, RhythmFigure::EIGHTH},
166 {4, RhythmFigure::QUARTER}, {2, RhythmFigure::HALF}, {1, RhythmFigure::WHOLE}};
167
168namespace MUSIC_XML {
169
170namespace PART {
171const std::string ALL = "all";
172const int FIRST = 0;
173} // namespace PART
174
175namespace OCTAVE {
176const int ALL = -1;
177const std::string ALL_STR = "all";
178} // namespace OCTAVE
179
180namespace STEP {
181const std::string ALL = "all";
182}
183
184namespace PITCH {
185const std::string ALL = "all";
186const std::string REST = "rest";
187} // namespace PITCH
188
189namespace DURATION {
190const float ALL = -1.0f;
191}
192
193namespace MEASURE {
194const int START = 0;
195const std::string END = "all";
196} // namespace MEASURE
197
198namespace VOICE {
199const std::string ALL = "all";
200}
201
202namespace STAFF {
203const std::string ALL = "all";
204}
205
206namespace NOTE_TYPE {
207const std::string ALL = "all";
208const std::string MAXIMA = "maxima";
209const std::string LONG = "long";
210const std::string BREVE = "breve";
211const std::string WHOLE = "whole";
212const std::string HALF = "half";
213const std::string QUARTER = "quarter";
214const std::string EIGHTH = "eighth";
215const std::string N16TH = "16th";
216const std::string N32ND = "32nd";
217const std::string N64TH = "64th";
218const std::string N128TH = "128th";
219const std::string N256TH = "256th";
220const std::string N512TH = "512th";
221const std::string N1024TH = "1024th";
222} // namespace NOTE_TYPE
223
224namespace ACCIDENT {
225const std::string SHARP = "#";
226const std::string FLAT = "b";
227const std::string NONE = "";
228const std::string DOUBLE_SHARP = "x";
229const std::string DOUBLE_FLAT = "bb";
230} // namespace ACCIDENT
231
232namespace PATTERN_TYPE {
233const std::string MELODY = "MELODY";
234const std::string CHORD = "CHORD";
235} // namespace PATTERN_TYPE
236
237namespace MIDI {
238namespace NUMBER {
239const int MIDI_REST = -1;
240const int MIDI_000 = 0;
241const int MIDI_001 = 1;
242const int MIDI_002 = 2;
243const int MIDI_003 = 3;
244const int MIDI_004 = 4;
245const int MIDI_005 = 5;
246const int MIDI_006 = 6;
247const int MIDI_007 = 7;
248const int MIDI_008 = 8;
249const int MIDI_009 = 9;
250const int MIDI_010 = 10;
251const int MIDI_011 = 11;
252const int MIDI_012 = 12;
253const int MIDI_013 = 13;
254const int MIDI_014 = 14;
255const int MIDI_015 = 15;
256const int MIDI_016 = 16;
257const int MIDI_017 = 17;
258const int MIDI_018 = 18;
259const int MIDI_019 = 19;
260const int MIDI_020 = 20;
261const int MIDI_021 = 21;
262const int MIDI_022 = 22;
263const int MIDI_023 = 23;
264const int MIDI_024 = 24;
265const int MIDI_025 = 25;
266const int MIDI_026 = 26;
267const int MIDI_027 = 27;
268const int MIDI_028 = 28;
269const int MIDI_029 = 29;
270const int MIDI_030 = 30;
271const int MIDI_031 = 31;
272const int MIDI_032 = 32;
273const int MIDI_033 = 33;
274const int MIDI_034 = 34;
275const int MIDI_035 = 35;
276const int MIDI_036 = 36;
277const int MIDI_037 = 37;
278const int MIDI_038 = 38;
279const int MIDI_039 = 39;
280const int MIDI_040 = 40;
281const int MIDI_041 = 41;
282const int MIDI_042 = 42;
283const int MIDI_043 = 43;
284const int MIDI_044 = 44;
285const int MIDI_045 = 45;
286const int MIDI_046 = 46;
287const int MIDI_047 = 47;
288const int MIDI_048 = 48;
289const int MIDI_049 = 49;
290const int MIDI_050 = 50;
291const int MIDI_051 = 51;
292const int MIDI_052 = 52;
293const int MIDI_053 = 53;
294const int MIDI_054 = 54;
295const int MIDI_055 = 55;
296const int MIDI_056 = 56;
297const int MIDI_057 = 57;
298const int MIDI_058 = 58;
299const int MIDI_059 = 59;
300const int MIDI_060 = 60;
301const int MIDI_061 = 61;
302const int MIDI_062 = 62;
303const int MIDI_063 = 63;
304const int MIDI_064 = 64;
305const int MIDI_065 = 65;
306const int MIDI_066 = 66;
307const int MIDI_067 = 67;
308const int MIDI_068 = 68;
309const int MIDI_069 = 69;
310const int MIDI_070 = 70;
311const int MIDI_071 = 71;
312const int MIDI_072 = 72;
313const int MIDI_073 = 73;
314const int MIDI_074 = 74;
315const int MIDI_075 = 75;
316const int MIDI_076 = 76;
317const int MIDI_077 = 77;
318const int MIDI_078 = 78;
319const int MIDI_079 = 79;
320const int MIDI_080 = 80;
321const int MIDI_081 = 81;
322const int MIDI_082 = 82;
323const int MIDI_083 = 83;
324const int MIDI_084 = 84;
325const int MIDI_085 = 85;
326const int MIDI_086 = 86;
327const int MIDI_087 = 87;
328const int MIDI_088 = 88;
329const int MIDI_089 = 89;
330const int MIDI_090 = 90;
331const int MIDI_091 = 91;
332const int MIDI_092 = 92;
333const int MIDI_093 = 93;
334const int MIDI_094 = 94;
335const int MIDI_095 = 95;
336const int MIDI_096 = 96;
337const int MIDI_097 = 97;
338const int MIDI_098 = 98;
339const int MIDI_099 = 99;
340const int MIDI_100 = 100;
341const int MIDI_101 = 101;
342const int MIDI_102 = 102;
343const int MIDI_103 = 103;
344const int MIDI_104 = 104;
345const int MIDI_105 = 105;
346const int MIDI_106 = 106;
347const int MIDI_107 = 107;
348const int MIDI_108 = 108;
349const int MIDI_109 = 109;
350const int MIDI_110 = 110;
351const int MIDI_111 = 111;
352const int MIDI_112 = 112;
353const int MIDI_113 = 113;
354const int MIDI_114 = 114;
355const int MIDI_115 = 115;
356const int MIDI_116 = 116;
357const int MIDI_117 = 117;
358const int MIDI_118 = 118;
359const int MIDI_119 = 119;
360const int MIDI_120 = 120;
361const int MIDI_121 = 121;
362const int MIDI_122 = 122;
363const int MIDI_123 = 123;
364const int MIDI_124 = 124;
365const int MIDI_125 = 125;
366const int MIDI_126 = 126;
367const int MIDI_127 = 127;
368const int MIDI_128 = 128;
369const int MIDI_129 = 129;
370const int MIDI_130 = 130;
371const int MIDI_131 = 131;
372const int MIDI_132 = 132;
373} // namespace NUMBER
374
375namespace PITCH {
376const std::string C1_NEGATIVE = "C-1";
377const std::string D1_FLAT_NEGATIVE = "Db-1";
378const std::string C1_SHARP_NEGATIVE = "C#-1";
379const std::string D1_NEGATIVE = "D-1";
380const std::string E1_FLAT_NEGATIVE = "Eb-1";
381const std::string D1_SHARP_NEGATIVE = "D#-1";
382const std::string E1_NEGATIVE = "E-1";
383const std::string F1_NEGATIVE = "F-1";
384const std::string G1_FLAT_NEGATIVE = "Gb-1";
385const std::string F1_SHARP_NEGATIVE = "F#-1";
386const std::string G1_NEGATIVE = "G-1";
387const std::string A1_FLAT_NEGATIVE = "Ab-1";
388const std::string G1_SHARP_NEGATIVE = "G#-1";
389const std::string A1_NEGATIVE = "A-1";
390const std::string B1_FLAT_NEGATIVE = "Bb-1";
391const std::string A1_SHARP_NEGATIVE = "A#-1";
392const std::string B1_NEGATIVE = "B-1";
393const std::string C0 = "C0";
394const std::string D0_FLAT = "Db0";
395const std::string C0_SHARP = "C#0";
396const std::string D0 = "D0";
397const std::string E0_FLAT = "Eb0";
398const std::string D0_SHARP = "D#0";
399const std::string E0 = "E0";
400const std::string F0 = "F0";
401const std::string G0_FLAT = "Gb0";
402const std::string F0_SHARP = "F#0";
403const std::string G0 = "G0";
404const std::string A0_FLAT = "Ab0";
405const std::string G0_SHARP = "G#0";
406const std::string A0 = "A0";
407const std::string B0_FLAT = "Bb0";
408const std::string A0_SHARP = "A#0";
409const std::string B0 = "B0";
410const std::string C1 = "C1";
411const std::string D1_FLAT = "Db1";
412const std::string C1_SHARP = "C#1";
413const std::string D1 = "D1";
414const std::string E1_FLAT = "Eb1";
415const std::string D1_SHARP = "D#1";
416const std::string E1 = "E1";
417const std::string F1 = "F1";
418const std::string G1_FLAT = "Gb1";
419const std::string F1_SHARP = "F#1";
420const std::string G1 = "G1";
421const std::string A1_FLAT = "Ab1";
422const std::string G1_SHARP = "G#1";
423const std::string A1 = "A1";
424const std::string B1_FLAT = "Bb1";
425const std::string A1_SHARP = "A#1";
426const std::string B1 = "B1";
427const std::string C2 = "C2";
428const std::string D2_FLAT = "Db2";
429const std::string C2_SHARP = "C#2";
430const std::string D2 = "D2";
431const std::string E2_FLAT = "Eb2";
432const std::string D2_SHARP = "D#2";
433const std::string E2 = "E2";
434const std::string F2 = "F2";
435const std::string G2_FLAT = "Gb2";
436const std::string F2_SHARP = "F#2";
437const std::string G2 = "G2";
438const std::string A2_FLAT = "Ab2";
439const std::string G2_SHARP = "G#2";
440const std::string A2 = "A2";
441const std::string B2_FLAT = "Bb2";
442const std::string A2_SHARP = "A#2";
443const std::string B2 = "B2";
444const std::string C3 = "C3";
445const std::string D3_FLAT = "Db3";
446const std::string C3_SHARP = "C#3";
447const std::string D3 = "D3";
448const std::string E3_FLAT = "Eb3";
449const std::string D3_SHARP = "D#3";
450const std::string E3 = "E3";
451const std::string F3 = "F3";
452const std::string G3_FLAT = "Gb3";
453const std::string F3_SHARP = "F#3";
454const std::string G3 = "G3";
455const std::string A3_FLAT = "Ab3";
456const std::string G3_SHARP = "G#3";
457const std::string A3 = "A3";
458const std::string B3_FLAT = "Bb3";
459const std::string A3_SHARP = "A#3";
460const std::string B3 = "B3";
461const std::string C4 = "C4";
462const std::string D4_FLAT = "Db4";
463const std::string C4_SHARP = "C#4";
464const std::string D4 = "D4";
465const std::string E4_FLAT = "Eb4";
466const std::string D4_SHARP = "D#4";
467const std::string E4 = "E4";
468const std::string F4 = "F4";
469const std::string G4_FLAT = "Gb4";
470const std::string F4_SHARP = "F#4";
471const std::string G4 = "G4";
472const std::string A4_FLAT = "Ab4";
473const std::string G4_SHARP = "G#4";
474const std::string A4 = "A4";
475const std::string B4_FLAT = "Bb4";
476const std::string A4_SHARP = "A#4";
477const std::string B4 = "B4";
478const std::string C5 = "C5";
479const std::string D5_FLAT = "Db5";
480const std::string C5_SHARP = "C#5";
481const std::string D5 = "D5";
482const std::string E5_FLAT = "Eb5";
483const std::string D5_SHARP = "D#5";
484const std::string E5 = "E5";
485const std::string F5 = "F5";
486const std::string G5_FLAT = "Gb5";
487const std::string F5_SHARP = "F#5";
488const std::string G5 = "G5";
489const std::string A5_FLAT = "Ab5";
490const std::string G5_SHARP = "G#5";
491const std::string A5 = "A5";
492const std::string B5_FLAT = "Bb5";
493const std::string A5_SHARP = "A#5";
494const std::string B5 = "B5";
495const std::string C6 = "C6";
496const std::string D6_FLAT = "Db6";
497const std::string C6_SHARP = "C#6";
498const std::string D6 = "D6";
499const std::string E6_FLAT = "Eb6";
500const std::string D6_SHARP = "D#6";
501const std::string E6 = "E6";
502const std::string F6 = "F6";
503const std::string G6_FLAT = "Gb6";
504const std::string F6_SHARP = "F#6";
505const std::string G6 = "G6";
506const std::string A6_FLAT = "Ab6";
507const std::string G6_SHARP = "G#6";
508const std::string A6 = "A6";
509const std::string B6_FLAT = "Bb6";
510const std::string A6_SHARP = "A#6";
511const std::string B6 = "B6";
512const std::string C7 = "C7";
513const std::string D7_FLAT = "Db7";
514const std::string C7_SHARP = "C#7";
515const std::string D7 = "D7";
516const std::string E7_FLAT = "Eb7";
517const std::string D7_SHARP = "D#7";
518const std::string E7 = "E7";
519const std::string F7 = "F7";
520const std::string G7_FLAT = "Gb7";
521const std::string F7_SHARP = "F#7";
522const std::string G7 = "G7";
523const std::string A7_FLAT = "Ab7";
524const std::string G7_SHARP = "G#7";
525const std::string A7 = "A7";
526const std::string B7_FLAT = "Bb7";
527const std::string A7_SHARP = "A#7";
528const std::string B7 = "B7";
529const std::string C8 = "C8";
530const std::string D8_FLAT = "Db8";
531const std::string C8_SHARP = "C#8";
532const std::string D8 = "D8";
533const std::string E8_FLAT = "Eb8";
534const std::string D8_SHARP = "D#8";
535const std::string E8 = "E8";
536const std::string F8 = "F8";
537const std::string G8_FLAT = "Gb8";
538const std::string F8_SHARP = "F#8";
539const std::string G8 = "G8";
540const std::string A8_FLAT = "Ab8";
541const std::string G8_SHARP = "G#8";
542const std::string A8 = "A8";
543const std::string B8_FLAT = "Bb8";
544const std::string A8_SHARP = "A#8";
545const std::string B8 = "B8";
546const std::string C9 = "C9";
547const std::string D9_FLAT = "Db9";
548const std::string C9_SHARP = "C#9";
549const std::string D9 = "D9";
550const std::string E9_FLAT = "Eb9";
551const std::string D9_SHARP = "D#9";
552const std::string E9 = "E9";
553const std::string F9 = "F9";
554const std::string G9_FLAT = "Gb9";
555const std::string F9_SHARP = "F#9";
556const std::string G9 = "G9";
557const std::string A9_FLAT = "Ab9";
558const std::string G9_SHARP = "G#9";
559const std::string A9 = "A9";
560const std::string B9_FLAT = "Bb9";
561const std::string A9_SHARP = "A#9";
562const std::string B9 = "B9";
563const std::string C10 = "C10";
564} // namespace PITCH
565
566namespace INTERVAL {
567const size_t PERFECT_UNISON = 0;
568const size_t MINOR_SECOND = 1;
569const size_t MAJOR_SECOND = 2;
570const size_t MINOR_THIRD = 3;
571const size_t MAJOR_THIRD = 4;
572const size_t PERFECT_FOURTH = 5;
573const size_t DIMINISHED_FIFTH = 6;
574const size_t PERFECT_FIFTH = 7;
575const size_t MINOR_SIXTH = 8;
576const size_t MAJOR_SIXTH = 9;
577const size_t MINOR_SEVENTH = 10;
578const size_t MAJOR_SEVENTH = 11;
579const size_t PERFECT_OCTAVE = 12;
580const size_t MINOR_NINTH = 13;
581const size_t MAJOR_NINTH = 14;
582const size_t MINOR_TENTH = 15;
583const size_t MAJOR_TENTH = 16;
584const size_t PERFECT_ELEVENTH = 17;
585const size_t SHARP_ELEVEN = 18;
586const size_t PERFECT_TWELFTH = 19;
587const size_t MINOR_THIRTEENTH = 20;
588const size_t MAJOR_THIRTEENTH = 21;
589} // namespace INTERVAL
590} // namespace MIDI
591} // namespace MUSIC_XML
592
593#endif // CONSTANTS_H