MuseScore  3.4
Music composition and notation
Classes | Enumerations | Functions | Variables
Ms::MidiVoice Namespace Reference

Classes

struct  VoiceSplit
 

Enumerations

enum  MovedVoiceGroup { MovedVoiceGroup::LOW, MovedVoiceGroup::HIGH }
 

Functions

int toIntVoiceCount (MidiOperations::VoiceCount value)
 
int voiceLimit ()
 
bool allNotesHaveEqualLength (const QList< MidiNote > &notes)
 
int findDurationCountInGroup (const ReducedFraction &chordOnTime, const QList< MidiNote > &notes, int voice, const std::vector< int > &groupOfIndexes, const TimeSigMap *sigmap, const std::multimap< ReducedFraction, MidiTuplet::TupletData > &tuplets)
 
int findDurationCount (const QList< MidiNote > &notes, int voice, int splitPoint, const ReducedFraction &chordOnTime, const TimeSigMap *sigmap, const std::multimap< ReducedFraction, MidiTuplet::TupletData > &tuplets)
 
int findOptimalSplitPoint (const std::multimap< ReducedFraction, MidiChord >::iterator &chordIt, const TimeSigMap *sigmap, const std::multimap< ReducedFraction, MidiTuplet::TupletData > &tuplets, const std::multimap< ReducedFraction, MidiChord > &chords)
 
std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator >::const_iterator findInsertedTuplet (const ReducedFraction &onTime, int voice, const std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &insertedTuplets)
 
bool hasIntersectionWithTuplets (int voice, const ReducedFraction &onTime, const ReducedFraction &offTime, const std::multimap< ReducedFraction, MidiTuplet::TupletData > &tuplets, const std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &insertedTuplets, const ReducedFraction &tupletOnTime)
 
void addGroupSplits (std::vector< VoiceSplit > &splits, const ReducedFraction &maxChordLength, const std::multimap< ReducedFraction, MidiChord > &chords, const std::multimap< ReducedFraction, MidiTuplet::TupletData > &tuplets, const std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &insertedTuplets, const ReducedFraction &tupletOnTime, const ReducedFraction &onTime, const ReducedFraction &groupOffTime, int origVoice, MovedVoiceGroup groupType, int maxOccupiedVoice)
 
ReducedFraction maximizeOffTime (const MidiNote &note, const ReducedFraction &offTime)
 
std::vector< VoiceSplitfindPossibleVoiceSplits (int origVoice, const std::multimap< ReducedFraction, MidiChord >::iterator &chordIt, int splitPoint, const std::multimap< ReducedFraction, MidiChord > &chords, const std::multimap< ReducedFraction, MidiTuplet::TupletData > &tuplets, const std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &insertedTuplets, int maxOccupiedVoice)
 
int findPrevPitchDist (const std::multimap< ReducedFraction, MidiChord >::iterator &chordIt, int averagePitch, const std::multimap< ReducedFraction, MidiChord > &chords, int voice)
 
int findNextPitchDist (const std::multimap< ReducedFraction, MidiChord >::iterator &chordIt, int averagePitch, const std::multimap< ReducedFraction, MidiChord > &chords, int voice)
 
int findMinPitchDist (int averagePitch, const int voice, const std::multimap< ReducedFraction, MidiChord >::iterator &chordIt, const std::multimap< ReducedFraction, MidiChord > &chords)
 
int findAverageLowPitch (const QList< MidiNote > &notes, int splitPoint)
 
int findAverageHighPitch (const QList< MidiNote > &notes, int splitPoint)
 
VoiceSplit findBestSplit (const std::multimap< ReducedFraction, MidiChord >::iterator &chordIt, const std::multimap< ReducedFraction, MidiChord > &chords, const std::vector< VoiceSplit > &possibleSplits, int splitPoint)
 
void insertNewTuplet (std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator &tuplet, const ReducedFraction &tupletOnTime, int newVoice, std::multimap< ReducedFraction, MidiChord > &chords, std::multimap< ReducedFraction, MidiTuplet::TupletData > &tuplets, std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &insertedTuplets)
 
bool canSplitTuplet (const std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator &tuplet, int newVoice, const ReducedFraction &chordOnTime, const QList< MidiNote > &notes, const std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &insertedTuplets, const std::multimap< ReducedFraction, MidiChord > &chords, const ReducedFraction &maxChordLength)
 
void splitTuplet (std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator &tuplet, int newVoice, const ReducedFraction &chordOnTime, const QList< MidiNote > &notes, bool &isInTuplet, std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &insertedTuplets, std::multimap< ReducedFraction, MidiChord > &chords, std::multimap< ReducedFraction, MidiTuplet::TupletData > &tuplets, const ReducedFraction &maxChordLength, bool allowParallelTuplets, bool isThisAChord)
 
bool updateChordTuplets (MidiChord &chord, const ReducedFraction &onTime, std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &insertedTuplets, std::multimap< ReducedFraction, MidiChord > &chords, std::multimap< ReducedFraction, MidiTuplet::TupletData > &tuplets, const ReducedFraction &maxChordLength, bool allowParallelTuplets)
 
int findMaxOccupiedVoiceInBar (const std::multimap< ReducedFraction, MidiChord >::iterator &chordIt, const std::multimap< ReducedFraction, MidiChord > &chords)
 
bool splitChordToVoice (std::multimap< ReducedFraction, MidiChord >::iterator &chordIt, const QSet< int > &notesToMove, int newVoice, std::multimap< ReducedFraction, MidiChord > &chords, std::multimap< ReducedFraction, MidiTuplet::TupletData > &tuplets, std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &insertedTuplets, const ReducedFraction &maxChordLength, bool allowParallelTuplets)
 
QSet< int > findNotesToMove (const QList< MidiNote > &notes, int splitPoint, MovedVoiceGroup splitGroup)
 
bool doVoiceSeparation (std::multimap< ReducedFraction, MidiChord > &chords, const TimeSigMap *sigmap, std::multimap< ReducedFraction, MidiTuplet::TupletData > &tuplets)
 
int findBarIndexForOffTime (const ReducedFraction &offTime, const TimeSigMap *sigmap)
 
int averagePitchOfChords (const std::vector< std::multimap< ReducedFraction, MidiChord >::iterator > &chords)
 
void sortVoicesByPitch (const std::map< int, std::vector< std::multimap< ReducedFraction, MidiChord >::iterator >> &voiceChords)
 
void sortVoices (std::multimap< ReducedFraction, MidiChord > &chords, const TimeSigMap *sigmap)
 
bool separateVoices (std::multimap< int, MTrack > &tracks, const TimeSigMap *sigmap)
 

Variables

const int MAX_PITCH_DIST = 1000
 

Enumeration Type Documentation

◆ MovedVoiceGroup

Enumerator
LOW 
HIGH 

Function Documentation

◆ addGroupSplits()

void Ms::MidiVoice::addGroupSplits ( std::vector< VoiceSplit > &  splits,
const ReducedFraction maxChordLength,
const std::multimap< ReducedFraction, MidiChord > &  chords,
const std::multimap< ReducedFraction, MidiTuplet::TupletData > &  tuplets,
const std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &  insertedTuplets,
const ReducedFraction tupletOnTime,
const ReducedFraction onTime,
const ReducedFraction groupOffTime,
int  origVoice,
MovedVoiceGroup  groupType,
int  maxOccupiedVoice 
)

◆ allNotesHaveEqualLength()

bool Ms::MidiVoice::allNotesHaveEqualLength ( const QList< MidiNote > &  notes)

◆ averagePitchOfChords()

int Ms::MidiVoice::averagePitchOfChords ( const std::vector< std::multimap< ReducedFraction, MidiChord >::iterator > &  chords)

◆ canSplitTuplet()

bool Ms::MidiVoice::canSplitTuplet ( const std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator &  tuplet,
int  newVoice,
const ReducedFraction chordOnTime,
const QList< MidiNote > &  notes,
const std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &  insertedTuplets,
const std::multimap< ReducedFraction, MidiChord > &  chords,
const ReducedFraction maxChordLength 
)

◆ doVoiceSeparation()

bool Ms::MidiVoice::doVoiceSeparation ( std::multimap< ReducedFraction, MidiChord > &  chords,
const TimeSigMap sigmap,
std::multimap< ReducedFraction, MidiTuplet::TupletData > &  tuplets 
)

◆ findAverageHighPitch()

int Ms::MidiVoice::findAverageHighPitch ( const QList< MidiNote > &  notes,
int  splitPoint 
)

◆ findAverageLowPitch()

int Ms::MidiVoice::findAverageLowPitch ( const QList< MidiNote > &  notes,
int  splitPoint 
)

◆ findBarIndexForOffTime()

int Ms::MidiVoice::findBarIndexForOffTime ( const ReducedFraction offTime,
const TimeSigMap sigmap 
)

◆ findBestSplit()

VoiceSplit Ms::MidiVoice::findBestSplit ( const std::multimap< ReducedFraction, MidiChord >::iterator &  chordIt,
const std::multimap< ReducedFraction, MidiChord > &  chords,
const std::vector< VoiceSplit > &  possibleSplits,
int  splitPoint 
)

◆ findDurationCount()

int Ms::MidiVoice::findDurationCount ( const QList< MidiNote > &  notes,
int  voice,
int  splitPoint,
const ReducedFraction chordOnTime,
const TimeSigMap sigmap,
const std::multimap< ReducedFraction, MidiTuplet::TupletData > &  tuplets 
)

◆ findDurationCountInGroup()

int Ms::MidiVoice::findDurationCountInGroup ( const ReducedFraction chordOnTime,
const QList< MidiNote > &  notes,
int  voice,
const std::vector< int > &  groupOfIndexes,
const TimeSigMap sigmap,
const std::multimap< ReducedFraction, MidiTuplet::TupletData > &  tuplets 
)

◆ findInsertedTuplet()

std::multimap<ReducedFraction, std::multimap<ReducedFraction, MidiTuplet::TupletData>::iterator>::const_iterator Ms::MidiVoice::findInsertedTuplet ( const ReducedFraction onTime,
int  voice,
const std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &  insertedTuplets 
)

◆ findMaxOccupiedVoiceInBar()

int Ms::MidiVoice::findMaxOccupiedVoiceInBar ( const std::multimap< ReducedFraction, MidiChord >::iterator &  chordIt,
const std::multimap< ReducedFraction, MidiChord > &  chords 
)

◆ findMinPitchDist()

int Ms::MidiVoice::findMinPitchDist ( int  averagePitch,
const int  voice,
const std::multimap< ReducedFraction, MidiChord >::iterator &  chordIt,
const std::multimap< ReducedFraction, MidiChord > &  chords 
)

◆ findNextPitchDist()

int Ms::MidiVoice::findNextPitchDist ( const std::multimap< ReducedFraction, MidiChord >::iterator &  chordIt,
int  averagePitch,
const std::multimap< ReducedFraction, MidiChord > &  chords,
int  voice 
)

◆ findNotesToMove()

QSet<int> Ms::MidiVoice::findNotesToMove ( const QList< MidiNote > &  notes,
int  splitPoint,
MovedVoiceGroup  splitGroup 
)

◆ findOptimalSplitPoint()

int Ms::MidiVoice::findOptimalSplitPoint ( const std::multimap< ReducedFraction, MidiChord >::iterator &  chordIt,
const TimeSigMap sigmap,
const std::multimap< ReducedFraction, MidiTuplet::TupletData > &  tuplets,
const std::multimap< ReducedFraction, MidiChord > &  chords 
)

◆ findPossibleVoiceSplits()

std::vector<VoiceSplit> Ms::MidiVoice::findPossibleVoiceSplits ( int  origVoice,
const std::multimap< ReducedFraction, MidiChord >::iterator &  chordIt,
int  splitPoint,
const std::multimap< ReducedFraction, MidiChord > &  chords,
const std::multimap< ReducedFraction, MidiTuplet::TupletData > &  tuplets,
const std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &  insertedTuplets,
int  maxOccupiedVoice 
)

◆ findPrevPitchDist()

int Ms::MidiVoice::findPrevPitchDist ( const std::multimap< ReducedFraction, MidiChord >::iterator &  chordIt,
int  averagePitch,
const std::multimap< ReducedFraction, MidiChord > &  chords,
int  voice 
)

◆ hasIntersectionWithTuplets()

bool Ms::MidiVoice::hasIntersectionWithTuplets ( int  voice,
const ReducedFraction onTime,
const ReducedFraction offTime,
const std::multimap< ReducedFraction, MidiTuplet::TupletData > &  tuplets,
const std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &  insertedTuplets,
const ReducedFraction tupletOnTime 
)

◆ insertNewTuplet()

void Ms::MidiVoice::insertNewTuplet ( std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator &  tuplet,
const ReducedFraction tupletOnTime,
int  newVoice,
std::multimap< ReducedFraction, MidiChord > &  chords,
std::multimap< ReducedFraction, MidiTuplet::TupletData > &  tuplets,
std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &  insertedTuplets 
)

◆ maximizeOffTime()

ReducedFraction Ms::MidiVoice::maximizeOffTime ( const MidiNote note,
const ReducedFraction offTime 
)

◆ separateVoices()

bool Ms::MidiVoice::separateVoices ( std::multimap< int, MTrack > &  tracks,
const TimeSigMap sigmap 
)

◆ sortVoices()

void Ms::MidiVoice::sortVoices ( std::multimap< ReducedFraction, MidiChord > &  chords,
const TimeSigMap sigmap 
)

◆ sortVoicesByPitch()

void Ms::MidiVoice::sortVoicesByPitch ( const std::map< int, std::vector< std::multimap< ReducedFraction, MidiChord >::iterator >> &  voiceChords)

◆ splitChordToVoice()

bool Ms::MidiVoice::splitChordToVoice ( std::multimap< ReducedFraction, MidiChord >::iterator &  chordIt,
const QSet< int > &  notesToMove,
int  newVoice,
std::multimap< ReducedFraction, MidiChord > &  chords,
std::multimap< ReducedFraction, MidiTuplet::TupletData > &  tuplets,
std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &  insertedTuplets,
const ReducedFraction maxChordLength,
bool  allowParallelTuplets 
)

◆ splitTuplet()

void Ms::MidiVoice::splitTuplet ( std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator &  tuplet,
int  newVoice,
const ReducedFraction chordOnTime,
const QList< MidiNote > &  notes,
bool &  isInTuplet,
std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &  insertedTuplets,
std::multimap< ReducedFraction, MidiChord > &  chords,
std::multimap< ReducedFraction, MidiTuplet::TupletData > &  tuplets,
const ReducedFraction maxChordLength,
bool  allowParallelTuplets,
bool  isThisAChord 
)

◆ toIntVoiceCount()

int Ms::MidiVoice::toIntVoiceCount ( MidiOperations::VoiceCount  value)

◆ updateChordTuplets()

bool Ms::MidiVoice::updateChordTuplets ( MidiChord chord,
const ReducedFraction onTime,
std::multimap< ReducedFraction, std::multimap< ReducedFraction, MidiTuplet::TupletData >::iterator > &  insertedTuplets,
std::multimap< ReducedFraction, MidiChord > &  chords,
std::multimap< ReducedFraction, MidiTuplet::TupletData > &  tuplets,
const ReducedFraction maxChordLength,
bool  allowParallelTuplets 
)

◆ voiceLimit()

int Ms::MidiVoice::voiceLimit ( )

Variable Documentation

◆ MAX_PITCH_DIST

const int Ms::MidiVoice::MAX_PITCH_DIST = 1000