LibMusicXML 3.18
msrInstruments.h
1/*
2 MusicXML Library
3 Copyright (C) Grame 2006-2013
4
5 This Source Code Form is subject to the terms of the Mozilla Public
6 License, v. 2.0. If a copy of the MPL was not distributed with this
7 file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
9 Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
10 research@grame.fr
11*/
12
13#ifndef ___msrInstruments___
14#define ___msrInstruments___
15
16#include <list>
17
18#include "msrMeasureElements.h"
19
20#include "msrBasicTypes.h"
21
22
23namespace MusicXML2
24{
25
26//______________________________________________________________________________
28{
29 public:
30
31 // creation from MusicXML
32 // ------------------------------------------------------
33
34 static SMARTP<msrStringTuning> create (
35 int inputLineNumber,
36 int stringTuningNumber,
37 msrDiatonicPitchKind stringTuningDiatonicPitchKind,
38 msrAlterationKind stringTuningAlterationKind,
39 int stringTuningOctave);
40
41 protected:
42
43 // constructors/destructor
44 // ------------------------------------------------------
45
47 int inputLineNumber,
48 int stringTuningNumber,
49 msrDiatonicPitchKind stringTuningDiatonicPitchKind,
50 msrAlterationKind stringTuningAlterationKind,
51 int stringTuningOctave);
52
53 virtual ~msrStringTuning ();
54
55 public:
56
57 // set and get
58 // ------------------------------------------------------
59
60 int getStringTuningNumber () const
61 { return fStringTuningNumber; }
62
63 msrDiatonicPitchKind getStringTuningDiatonicPitchKind () const
64 { return fStringTuningDiatonicPitchKind; }
65
66 msrAlterationKind getStringTuningAlterationKind () const
67 { return fStringTuningAlterationKind; }
68
69 int getStringTuningOctave () const
70 { return fStringTuningOctave; }
71
72 // services
73 // ------------------------------------------------------
74
75 string stringTuningKindAsString () const;
76
77 public:
78
79 // visitors
80 // ------------------------------------------------------
81
82 virtual void acceptIn (basevisitor* v);
83 virtual void acceptOut (basevisitor* v);
84
85 virtual void browseData (basevisitor* v);
86
87 public:
88
89 // print
90 // ------------------------------------------------------
91
92 virtual void print (ostream& os) const;
93
94 private:
95
96 // fields
97 // ------------------------------------------------------
98
99 int fStringTuningNumber;
100
101 msrDiatonicPitchKind fStringTuningDiatonicPitchKind;
102 msrAlterationKind fStringTuningAlterationKind;
103 int fStringTuningOctave;
104};
106EXP ostream& operator<< (ostream& os, const S_msrStringTuning& elt);
107
108//______________________________________________________________________________
110{
111 public:
112
113 // data types
114 // ------------------------------------------------------
115
116 enum msrScordaturaKind {
117 kScordaturaNone,
118 kScordaturaUp, kScordaturaDown,
119 kScordaturaStop, kScordaturaContinue };
120
121 static string scordaturaKindAsString (
122 msrScordaturaKind scordaturaKind);
123
124 // creation from MusicXML
125 // ------------------------------------------------------
126
127 static SMARTP<msrScordatura> create (
128 int inputLineNumber);
129
130 protected:
131
132 // constructors/destructor
133 // ------------------------------------------------------
134
136 int inputLineNumber);
137
138 virtual ~msrScordatura ();
139
140 public:
141
142 // set and get
143 // ------------------------------------------------------
144
145 const list<S_msrStringTuning>&
146 getScordaturaStringTuningsList ()
147 { return fScordaturaStringTuningsList; }
148
149 // services
150 // ------------------------------------------------------
151
152 void addStringTuningToScordatura (
153 S_msrStringTuning stringTuning);
154
155 public:
156
157 // visitors
158 // ------------------------------------------------------
159
160 virtual void acceptIn (basevisitor* v);
161 virtual void acceptOut (basevisitor* v);
162
163 virtual void browseData (basevisitor* v);
164
165 public:
166
167 // print
168 // ------------------------------------------------------
169
170 virtual void print (ostream& os) const;
171
172 private:
173
174 // fields
175 // ------------------------------------------------------
176
177 list<S_msrStringTuning>
178 fScordaturaStringTuningsList;
179};
181EXP ostream& operator<< (ostream& os, const S_msrScordatura& elt);
182
183//______________________________________________________________________________
185{
186 public:
187
188 // creation from MusicXML
189 // ------------------------------------------------------
190
192 int inputLineNumber,
193 int highDotsNumber,
194 int middleDotsNumber,
195 int lowDotsNumber);
196
197 protected:
198
199 // constructors/destructor
200 // ------------------------------------------------------
201
203 int inputLineNumber,
204 int highDotsNumber,
205 int middleDotsNumber,
206 int lowDotsNumber);
207
208 virtual ~msrAccordionRegistration ();
209
210 public:
211
212 // set and get
213 // ------------------------------------------------------
214
215 int getHighDotsNumber () const
216 { return fHighDotsNumber; }
217
218 int getMiddleDotsNumber () const
219 { return fMiddleDotsNumber; }
220
221 int getLowDotsNumber () const
222 { return fLowDotsNumber; }
223
224 // services
225 // ------------------------------------------------------
226
227 string asString () const;
228
229 public:
230
231 // visitors
232 // ------------------------------------------------------
233
234 virtual void acceptIn (basevisitor* v);
235 virtual void acceptOut (basevisitor* v);
236
237 virtual void browseData (basevisitor* v);
238
239 public:
240
241 // print
242 // ------------------------------------------------------
243
244 virtual void print (ostream& os) const;
245
246 private:
247
248 // fields
249 // ------------------------------------------------------
250
251 // see https://de.wikipedia.org/wiki/Register_%28Akkordeon%29
252 // for the meaning of the dots numbers
253
254 int fHighDotsNumber;
255 int fMiddleDotsNumber;
256 int fLowDotsNumber;
257};
259EXP ostream& operator<< (ostream& os, const S_msrAccordionRegistration& elt);
260
261//______________________________________________________________________________
263{
264 public:
265
266 // creation from MusicXML
267 // ------------------------------------------------------
268
269 static SMARTP<msrHarpPedalsTuning> create (
270 int inputLineNumber);
271
272 SMARTP<msrHarpPedalsTuning> createHarpPedalsTuningNewbornClone ();
273
274 SMARTP<msrHarpPedalsTuning> createHarpPedalsTuningDeepCopy ();
275
276 protected:
277
278 // constructors/destructor
279 // ------------------------------------------------------
280
282 int inputLineNumber);
283
285
286 public:
287
288 // set and get
289 // ------------------------------------------------------
290
291 const map<msrDiatonicPitchKind, msrAlterationKind>&
292 getHarpPedalsAlterationKindsMap ()
293 { return fHarpPedalsAlterationKindsMap; }
294
295 // services
296 // ------------------------------------------------------
297
298 void addPedalTuning (
299 int intputLineNumber,
300 msrDiatonicPitchKind diatonicPitchKind,
301 msrAlterationKind alterationKind);
302
303 public:
304
305 // visitors
306 // ------------------------------------------------------
307
308 virtual void acceptIn (basevisitor* v);
309 virtual void acceptOut (basevisitor* v);
310
311 virtual void browseData (basevisitor* v);
312
313 public:
314
315 // print
316 // ------------------------------------------------------
317
318 string asString () const;
319
320 virtual void print (ostream& os) const;
321
322 public:
323
324 // fields
325 // ------------------------------------------------------
326
327 map<msrDiatonicPitchKind, msrAlterationKind>
328 fHarpPedalsAlterationKindsMap;
329};
331EXP ostream& operator<< (ostream& os, const S_msrHarpPedalsTuning& elt);
332
333//______________________________________________________________________________
335{
336 public:
337
338 // data types
339 // ------------------------------------------------------
340
341 enum msrPedalTypeKind {
342 kPedalStart, kPedalContinue, kPedalChange, kPedalStop,
343 k_NoPedalType };
344
345 static string pedalTypeKindAsString (
346 msrPedalTypeKind pedalTypeKind);
347
348 enum msrPedalLineKind {
349 kPedalLineYes, kPedalLineNo};
350
351 static string pedalLineKindAsString (
352 msrPedalLineKind pedalLineKind);
353
354 enum msrPedalSignKind {
355 kPedalSignYes, kPedalSignNo};
356
357 static string pedalSignKindAsString (
358 msrPedalSignKind pedalSignKind);
359
360 // creation from MusicXML
361 // ------------------------------------------------------
362
363 static SMARTP<msrPedal> create (
364 int inputLineNumber,
365 msrPedalTypeKind pedalTypeKind,
366 msrPedalLineKind pedalLineKind,
367 msrPedalSignKind pedalSignKind);
368
369 protected:
370
371 // constructors/destructor
372 // ------------------------------------------------------
373
374 msrPedal (
375 int inputLineNumber,
376 msrPedalTypeKind pedalTypeKind,
377 msrPedalLineKind pedalLineKind,
378 msrPedalSignKind pedalSignKind);
379
380 virtual ~msrPedal ();
381
382 public:
383
384 // set and get
385 // ------------------------------------------------------
386
387 msrPedalTypeKind getPedalTypeKind () const
388 { return fPedalTypeKind; }
389
390 msrPedalLineKind getPedalLineKind () const
391 { return fPedalLineKind; }
392
393 msrPedalSignKind getPedalSignKind () const
394 { return fPedalSignKind; }
395
396 // services
397 // ------------------------------------------------------
398
399 public:
400
401 // visitors
402 // ------------------------------------------------------
403
404 virtual void acceptIn (basevisitor* v);
405 virtual void acceptOut (basevisitor* v);
406
407 virtual void browseData (basevisitor* v);
408
409 public:
410
411 // print
412 // ------------------------------------------------------
413
414 string pedalTypeAsString () const;
415
416 string pedalLineAsString () const;
417
418 string pedalSignAsString () const;
419
420 virtual void print (ostream& os) const;
421
422 private:
423
424 // fields
425 // ------------------------------------------------------
426
427 msrPedalTypeKind fPedalTypeKind;
428 msrPedalLineKind fPedalLineKind;
429 msrPedalSignKind fPedalSignKind;
430};
432EXP ostream& operator<< (ostream& os, const S_msrPedal& elt);
433
434//______________________________________________________________________________
436{
437 public:
438
439 // creation from MusicXML
440 // ------------------------------------------------------
441
442 static SMARTP<msrDamp> create (
443 int inputLineNumber);
444
445 protected:
446
447 // constructors/destructor
448 // ------------------------------------------------------
449
450 msrDamp (
451 int inputLineNumber);
452
453 virtual ~msrDamp ();
454
455 public:
456
457 // set and get
458 // ------------------------------------------------------
459
460 // services
461 // ------------------------------------------------------
462
463 public:
464
465 // visitors
466 // ------------------------------------------------------
467
468 virtual void acceptIn (basevisitor* v);
469 virtual void acceptOut (basevisitor* v);
470
471 virtual void browseData (basevisitor* v);
472
473 public:
474
475 // print
476 // ------------------------------------------------------
477
478 virtual void print (ostream& os) const;
479
480 private:
481
482 // fields
483 // ------------------------------------------------------
484};
486EXP ostream& operator<< (ostream& os, const S_msrDamp& elt);
487
488//______________________________________________________________________________
490{
491 public:
492
493 // creation from MusicXML
494 // ------------------------------------------------------
495
496 static SMARTP<msrDampAll> create (
497 int inputLineNumber);
498
499 protected:
500
501 // constructors/destructor
502 // ------------------------------------------------------
503
504 msrDampAll (
505 int inputLineNumber);
506
507 virtual ~msrDampAll ();
508
509 public:
510
511 // set and get
512 // ------------------------------------------------------
513
514 // services
515 // ------------------------------------------------------
516
517 public:
518
519 // visitors
520 // ------------------------------------------------------
521
522 virtual void acceptIn (basevisitor* v);
523 virtual void acceptOut (basevisitor* v);
524
525 virtual void browseData (basevisitor* v);
526
527 public:
528
529 // print
530 // ------------------------------------------------------
531
532 virtual void print (ostream& os) const;
533
534 private:
535
536 // fields
537 // ------------------------------------------------------
538};
540EXP ostream& operator<< (ostream& os, const S_msrDampAll& elt);
541
542
543} // namespace MusicXML2
544
545
546#endif
the smart pointer implementation
Definition: smartpointer.h:58
Definition: basevisitor.h:25
Definition: msrInstruments.h:185
Definition: msrInstruments.h:490
Definition: msrInstruments.h:436
Definition: msrElements.h:26
Definition: msrInstruments.h:263
Definition: msrMeasureElements.h:24
Definition: msrInstruments.h:335
Definition: msrInstruments.h:110
Definition: msrInstruments.h:28