OLD | NEW |
1 /* | 1 /* |
2 This file is part of LilyPond, the GNU music typesetter. | 2 This file is part of LilyPond, the GNU music typesetter. |
3 | 3 |
4 Copyright (C) 1997--2019 Jan Nieuwenhuizen <janneke@gnu.org> | 4 Copyright (C) 1997--2019 Jan Nieuwenhuizen <janneke@gnu.org> |
5 | 5 |
6 LilyPond is free software: you can redistribute it and/or modify | 6 LilyPond is free software: you can redistribute it and/or modify |
7 it under the terms of the GNU General Public License as published by | 7 it under the terms of the GNU General Public License as published by |
8 the Free Software Foundation, either version 3 of the License, or | 8 the Free Software Foundation, either version 3 of the License, or |
9 (at your option) any later version. | 9 (at your option) any later version. |
10 | 10 |
(...skipping 15 matching lines...) Expand all Loading... |
26 string int2midi_varint_string (int i); | 26 string int2midi_varint_string (int i); |
27 | 27 |
28 /** | 28 /** |
29 Any piece of midi information. | 29 Any piece of midi information. |
30 | 30 |
31 Maybe use base classes for RIFF files? | 31 Maybe use base classes for RIFF files? |
32 */ | 32 */ |
33 class Midi_item | 33 class Midi_item |
34 { | 34 { |
35 public: | 35 public: |
36 DECLARE_CLASSNAME (Midi_item); | 36 VIRTUAL_CLASS_NAME (Midi_item); |
37 Midi_item (); | 37 Midi_item (); |
38 virtual ~Midi_item (); | 38 virtual ~Midi_item (); |
39 virtual char const *name () const; | 39 virtual char const *name () const; |
40 | 40 |
41 static Midi_item *get_midi (Audio_item *a); | 41 static Midi_item *get_midi (Audio_item *a); |
42 | 42 |
43 virtual string to_string () const = 0; | 43 virtual string to_string () const = 0; |
44 }; | 44 }; |
45 | 45 |
46 class Midi_end_of_track : public Midi_item | 46 class Midi_end_of_track : public Midi_item |
47 { | 47 { |
48 public: | 48 public: |
49 virtual string to_string () const | 49 string to_string () const override |
50 { | 50 { |
51 // the literal string's terminating null is part of the MIDI command | 51 // the literal string's terminating null is part of the MIDI command |
52 return string ("\xff\x2f", 3); | 52 return string ("\xff\x2f", 3); |
53 } | 53 } |
54 }; | 54 }; |
55 | 55 |
56 class Midi_channel_item : public Midi_item | 56 class Midi_channel_item : public Midi_item |
57 { | 57 { |
58 public: | 58 public: |
59 virtual ~Midi_channel_item (); | 59 virtual ~Midi_channel_item (); |
60 int channel_; | 60 int channel_; |
61 DECLARE_CLASSNAME (Midi_channel_item); | 61 OVERRIDE_CLASS_NAME (Midi_channel_item); |
62 Midi_channel_item (Audio_item *ai); | 62 Midi_channel_item (Audio_item *ai); |
63 }; | 63 }; |
64 | 64 |
65 class Midi_duration : public Midi_item | 65 class Midi_duration : public Midi_item |
66 { | 66 { |
67 public: | 67 public: |
68 Midi_duration (Real seconds_f); | 68 Midi_duration (Real seconds_f); |
69 | 69 |
70 virtual string to_string () const; | 70 string to_string () const override; |
71 Real seconds_; | 71 Real seconds_; |
72 }; | 72 }; |
73 | 73 |
74 /** | 74 /** |
75 MIDI control change | 75 MIDI control change |
76 */ | 76 */ |
77 class Midi_control_change : public Midi_channel_item | 77 class Midi_control_change : public Midi_channel_item |
78 { | 78 { |
79 public: | 79 public: |
80 DECLARE_CLASSNAME (Midi_control_change); | 80 OVERRIDE_CLASS_NAME (Midi_control_change); |
81 Midi_control_change (Audio_control_change *ai); | 81 Midi_control_change (Audio_control_change *ai); |
82 virtual ~Midi_control_change (); | 82 virtual ~Midi_control_change (); |
83 virtual string to_string () const; | 83 string to_string () const override; |
84 | 84 |
85 Audio_control_change *audio_; | 85 Audio_control_change *audio_; |
86 }; | 86 }; |
87 | 87 |
88 /** | 88 /** |
89 Change instrument event | 89 Change instrument event |
90 */ | 90 */ |
91 class Midi_instrument : public Midi_channel_item | 91 class Midi_instrument : public Midi_channel_item |
92 { | 92 { |
93 public: | 93 public: |
94 Midi_instrument (Audio_instrument *); | 94 Midi_instrument (Audio_instrument *); |
95 | 95 |
96 DECLARE_CLASSNAME (Midi_instrument); | 96 OVERRIDE_CLASS_NAME (Midi_instrument); |
97 virtual string to_string () const; | 97 string to_string () const override; |
98 | 98 |
99 Audio_instrument *audio_; | 99 Audio_instrument *audio_; |
100 }; | 100 }; |
101 | 101 |
102 class Midi_key : public Midi_item | 102 class Midi_key : public Midi_item |
103 { | 103 { |
104 public: | 104 public: |
105 Midi_key (Audio_key *); | 105 Midi_key (Audio_key *); |
106 DECLARE_CLASSNAME (Midi_key); | 106 OVERRIDE_CLASS_NAME (Midi_key); |
107 | 107 |
108 virtual string to_string () const; | 108 string to_string () const override; |
109 | 109 |
110 Audio_key *audio_; | 110 Audio_key *audio_; |
111 }; | 111 }; |
112 | 112 |
113 class Midi_time_signature : public Midi_item | 113 class Midi_time_signature : public Midi_item |
114 { | 114 { |
115 public: | 115 public: |
116 Midi_time_signature (Audio_time_signature *); | 116 Midi_time_signature (Audio_time_signature *); |
117 DECLARE_CLASSNAME (Midi_time_signature); | 117 OVERRIDE_CLASS_NAME (Midi_time_signature); |
118 | 118 |
119 virtual string to_string () const; | 119 string to_string () const override; |
120 | 120 |
121 Audio_time_signature *audio_; | 121 Audio_time_signature *audio_; |
122 int clocks_per_1_; | 122 int clocks_per_1_; |
123 }; | 123 }; |
124 | 124 |
125 class Midi_note : public Midi_channel_item | 125 class Midi_note : public Midi_channel_item |
126 { | 126 { |
127 public: | 127 public: |
128 Midi_note (Audio_note *); | 128 Midi_note (Audio_note *); |
129 DECLARE_CLASSNAME (Midi_note); | 129 OVERRIDE_CLASS_NAME (Midi_note); |
130 | 130 |
131 int get_semitone_pitch () const; | 131 int get_semitone_pitch () const; |
132 int get_fine_tuning () const; | 132 int get_fine_tuning () const; |
133 virtual string to_string () const; | 133 string to_string () const override; |
134 | 134 |
135 Audio_note *audio_; | 135 Audio_note *audio_; |
136 | 136 |
137 static int const c0_pitch_ = 60; | 137 static int const c0_pitch_ = 60; |
138 Byte dynamic_byte_; | 138 Byte dynamic_byte_; |
139 }; | 139 }; |
140 | 140 |
141 class Midi_note_off : public Midi_note | 141 class Midi_note_off : public Midi_note |
142 { | 142 { |
143 public: | 143 public: |
144 Midi_note_off (Midi_note *); | 144 Midi_note_off (Midi_note *); |
145 DECLARE_CLASSNAME (Midi_note_off); | 145 OVERRIDE_CLASS_NAME (Midi_note_off); |
146 | 146 |
147 virtual string to_string () const; | 147 string to_string () const override; |
148 | 148 |
149 Midi_note *on_; | 149 Midi_note *on_; |
150 Byte aftertouch_byte_; | 150 Byte aftertouch_byte_; |
151 }; | 151 }; |
152 | 152 |
153 class Midi_text : public Midi_item | 153 class Midi_text : public Midi_item |
154 { | 154 { |
155 public: | 155 public: |
156 enum Type | 156 enum Type |
157 { | 157 { |
158 TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC, | 158 TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC, |
159 MARKER, CUE_POINT | 159 MARKER, CUE_POINT |
160 }; | 160 }; |
161 DECLARE_CLASSNAME (Midi_text); | 161 OVERRIDE_CLASS_NAME (Midi_text); |
162 | 162 |
163 Midi_text (Audio_text *); | 163 Midi_text (Audio_text *); |
164 | 164 |
165 virtual string to_string () const; | 165 string to_string () const override; |
166 | 166 |
167 Audio_text *audio_; | 167 Audio_text *audio_; |
168 }; | 168 }; |
169 | 169 |
170 class Midi_piano_pedal : public Midi_channel_item | 170 class Midi_piano_pedal : public Midi_channel_item |
171 { | 171 { |
172 public: | 172 public: |
173 Midi_piano_pedal (Audio_piano_pedal *); | 173 Midi_piano_pedal (Audio_piano_pedal *); |
174 DECLARE_CLASSNAME (Midi_piano_pedal); | 174 OVERRIDE_CLASS_NAME (Midi_piano_pedal); |
175 | 175 |
176 virtual string to_string () const; | 176 string to_string () const override; |
177 | 177 |
178 Audio_piano_pedal *audio_; | 178 Audio_piano_pedal *audio_; |
179 }; | 179 }; |
180 | 180 |
181 class Midi_tempo : public Midi_item | 181 class Midi_tempo : public Midi_item |
182 { | 182 { |
183 public: | 183 public: |
184 Midi_tempo (Audio_tempo *); | 184 Midi_tempo (Audio_tempo *); |
185 DECLARE_CLASSNAME (Midi_tempo); | 185 OVERRIDE_CLASS_NAME (Midi_tempo); |
186 | 186 |
187 virtual string to_string () const; | 187 string to_string () const override; |
188 | 188 |
189 Audio_tempo *audio_; | 189 Audio_tempo *audio_; |
190 }; | 190 }; |
191 | 191 |
192 #endif // MIDI_ITEM_HH | 192 #endif // MIDI_ITEM_HH |
OLD | NEW |