MuseScore  3.4
Music composition and notation
importmidi_tuplet_voice.h
Go to the documentation of this file.
1 #ifndef IMPORTMIDI_TUPLET_VOICE_H
2 #define IMPORTMIDI_TUPLET_VOICE_H
3 
4 
5 namespace Ms {
6 
7 class ReducedFraction;
8 class MidiChord;
9 
10 namespace MidiTuplet {
11 
12 struct TupletInfo;
13 
14 struct TiedTuplet
15  {
16  int tupletId;
17  int voice;
18  std::pair<const ReducedFraction, MidiChord> *chord; // chord the tuplet is tied with
19  std::vector<int> tiedNoteIndexes; // indexes of tied notes of that chord
20  };
21 
22 int tupletVoiceLimit();
23 
25  std::vector<TupletInfo> &tuplets,
26  std::list<std::multimap<ReducedFraction, MidiChord>::iterator> &nonTuplets,
27  std::list<TiedTuplet> &backTiedTuplets,
28  const std::multimap<ReducedFraction, MidiChord> &chords,
29  const ReducedFraction &basicQuant,
30  const ReducedFraction &barStart,
31  int barIndex);
32 
33 std::list<TiedTuplet>
35  const std::multimap<ReducedFraction, MidiChord> &chords,
36  const std::vector<TupletInfo> &tuplets,
37  const ReducedFraction &prevBarStart,
38  const ReducedFraction &startBarTick,
39  const ReducedFraction &basicQuant,
40  int currentBarIndex);
41 
42 void assignVoices(
43  std::vector<TupletInfo> &tuplets,
44  std::list<std::multimap<ReducedFraction, MidiChord>::iterator> &nonTuplets,
45  std::list<TiedTuplet> &backTiedTuplets,
46  const std::multimap<ReducedFraction, MidiChord> &chords,
47  const ReducedFraction &basicQuant,
48  const ReducedFraction &barStart,
49  int barIndex);
50 
51 std::pair<ReducedFraction, ReducedFraction>
52 chordInterval(const std::pair<const ReducedFraction, MidiChord> &chord,
53  const std::multimap<ReducedFraction, MidiChord> &chords,
54  const ReducedFraction &basicQuant,
55  const ReducedFraction &barStart);
56 
57 #ifdef QT_DEBUG
58 
59 bool haveOverlappingVoices(
60  const std::list<std::multimap<ReducedFraction, MidiChord>::iterator> &nonTuplets,
61  const std::vector<TupletInfo> &tuplets,
62  const std::list<TiedTuplet> &backTiedTuplets,
63  const std::multimap<ReducedFraction, MidiChord> &chords,
64  const ReducedFraction &basicQuant,
65  const ReducedFraction &barStart);
66 
67 #endif
68 
69 } // namespace MidiTuplet
70 } // namespace Ms
71 
72 
73 #endif // IMPORTMIDI_TUPLET_VOICE_H
std::pair< const ReducedFraction, MidiChord > * chord
Definition: importmidi_tuplet_voice.h:18
std::vector< int > tiedNoteIndexes
Definition: importmidi_tuplet_voice.h:19
int voice
Definition: importmidi_tuplet_voice.h:17
Definition: aeolus.cpp:26
std::pair< ReducedFraction, ReducedFraction > chordInterval(const std::pair< const ReducedFraction, MidiChord > &chord, const std::multimap< ReducedFraction, MidiChord > &chords, const ReducedFraction &basicQuant, const ReducedFraction &barStart)
Definition: importmidi_tuplet_voice.cpp:32
void assignVoices(std::vector< TupletInfo > &tuplets, std::list< std::multimap< ReducedFraction, MidiChord >::iterator > &nonTuplets, std::list< TiedTuplet > &backTiedTuplets, const std::multimap< ReducedFraction, MidiChord > &chords, const ReducedFraction &basicQuant, const ReducedFraction &barStart, int barIndex)
Definition: importmidi_tuplet_voice.cpp:832
Definition: importmidi_tuplet_voice.h:14
int tupletVoiceLimit()
Definition: importmidi_tuplet_voice.cpp:17
std::list< TiedTuplet > findBackTiedTuplets(const std::multimap< ReducedFraction, MidiChord > &chords, const std::vector< TupletInfo > &tuplets, const ReducedFraction &prevBarStart, const ReducedFraction &startBarTick, const ReducedFraction &basicQuant, int currentBarIndex)
Definition: importmidi_tuplet_voice.cpp:764
Definition: importmidi_fraction.h:9
bool excludeExtraVoiceTuplets(std::vector< TupletInfo > &tuplets, std::list< std::multimap< ReducedFraction, MidiChord >::iterator > &nonTuplets, std::list< TiedTuplet > &backTiedTuplets, const std::multimap< ReducedFraction, MidiChord > &chords, const ReducedFraction &basicQuant, const ReducedFraction &barStart, int barIndex)
Definition: importmidi_tuplet_voice.cpp:313
int tupletId
Definition: importmidi_tuplet_voice.h:16