MuseScore  3.4
Music composition and notation
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Ms::ExportMusicXml Class Reference
Collaboration diagram for Ms::ExportMusicXml:
Collaboration graph
[legend]

Public Member Functions

 ExportMusicXml (Score *s)
 
void write (QIODevice *dev)
 Write the score to dev in MusicXML format. More...
 
void credits (XmlWriter &xml)
 
void moveToTick (const Fraction &t)
 
void words (TextBase const *const text, int staff)
 
void rehearsal (RehearsalMark const *const rmk, int staff)
 
void hairpin (Hairpin const *const hp, int staff, const Fraction &tick)
 
void ottava (Ottava const *const ot, int staff, const Fraction &tick)
 
void pedal (Pedal const *const pd, int staff, const Fraction &tick)
 
void textLine (TextLine const *const tl, int staff, const Fraction &tick)
 
void dynamic (Dynamic const *const dyn, int staff)
 
void symbol (Symbol const *const sym, int staff)
 
void tempoText (TempoText const *const text, int staff)
 
void harmony (Harmony const *const, FretDiagram const *const fd, int offset=0)
 
Scorescore () const
 
double getTenthsFromInches (double) const
 
double getTenthsFromDots (double) const
 
Fraction tick () const
 
void writeInstrumentDetails (const Instrument *instrument)
 Write the instrument details for instrument. More...
 

Private Member Functions

int findBracket (const TextLine *tl) const
 
int findDashes (const TextLineBase *tl) const
 
int findHairpin (const Hairpin *tl) const
 
int findOttava (const Ottava *tl) const
 
int findTrill (const Trill *tl) const
 
void chord (Chord *chord, int staff, const std::vector< Lyrics *> *ll, bool useDrumset)
 Write chord on staff with lyriclist ll. More...
 
void rest (Rest *chord, int staff)
 Write rest on staff. More...
 
void clef (int staff, const ClefType ct, const QString &extraAttributes="")
 
void timesig (TimeSig *tsig)
 
void keysig (const KeySig *ks, ClefType ct, int staff=0, bool visible=true)
 
void barlineLeft (Measure *m)
 
void barlineMiddle (const BarLine *bl)
 
void barlineRight (Measure *m)
 
void lyrics (const std::vector< Lyrics *> *ll, const int trk)
 
void work (const MeasureBase *measure)
 
void calcDivMoveToTick (const Fraction &t)
 
void calcDivisions ()
 
void keysigTimesig (const Measure *m, const Part *p)
 Output attributes at start of measure: key, time. More...
 
void chordAttributes (Chord *chord, Notations &notations, Technical &technical, TrillHash &trillStart, TrillHash &trillStop)
 
void wavyLineStartStop (Chord *chord, Notations &notations, Ornaments &ornaments, TrillHash &trillStart, TrillHash &trillStop)
 
void print (const Measure *const m, const int partNr, const int firstStaffOfPart, const int nrStavesInPart)
 Handle the <print> element. More...
 
void findAndExportClef (Measure *m, const int staves, const int strack, const int etrack)
 Make sure clefs at end of measure get exported at start of next measure. More...
 
void exportDefaultClef (const Part *const part, const Measure *const m)
 In case no clef is found, export a default clef with type determined by staff type. More...
 
void writeElement (Element *el, const Measure *m, int sstaff, bool useDrumset)
 Write el. More...
 

Private Attributes

Score_score
 
XmlWriter _xml
 
SlurHandler sh
 
GlissandoHandler gh
 
Fraction _tick
 
Attributes _attr
 
TextLine const * brackets [MAX_NUMBER_LEVEL]
 
TextLineBase const * dashes [MAX_NUMBER_LEVEL]
 
Hairpin const * hairpins [MAX_NUMBER_LEVEL]
 
Ottava const * ottavas [MAX_NUMBER_LEVEL]
 
Trill const * trills [MAX_NUMBER_LEVEL]
 
int div
 
double millimeters
 
int tenths
 
TrillHash _trillStart
 
TrillHash _trillStop
 
MxmlInstrumentMap instrMap
 

Constructor & Destructor Documentation

◆ ExportMusicXml()

Ms::ExportMusicXml::ExportMusicXml ( Score s)
inline

Member Function Documentation

◆ barlineLeft()

void Ms::ExportMusicXml::barlineLeft ( Measure m)
private

◆ barlineMiddle()

void Ms::ExportMusicXml::barlineMiddle ( const BarLine bl)
private

◆ barlineRight()

void Ms::ExportMusicXml::barlineRight ( Measure m)
private

◆ calcDivisions()

void Ms::ExportMusicXml::calcDivisions ( )
private

◆ calcDivMoveToTick()

void Ms::ExportMusicXml::calcDivMoveToTick ( const Fraction t)
private

◆ chord()

void Ms::ExportMusicXml::chord ( Chord chord,
int  staff,
const std::vector< Lyrics *> *  ll,
bool  useDrumset 
)
private

Write chord on staff with lyriclist ll.

For a single-staff part, staff equals zero, suppressing the <staff> element.

◆ chordAttributes()

void Ms::ExportMusicXml::chordAttributes ( Chord chord,
Notations notations,
Technical technical,
TrillHash trillStart,
TrillHash trillStop 
)
private

◆ clef()

void Ms::ExportMusicXml::clef ( int  staff,
const ClefType  ct,
const QString &  extraAttributes = "" 
)
private

◆ credits()

void Ms::ExportMusicXml::credits ( XmlWriter xml)

◆ dynamic()

void Ms::ExportMusicXml::dynamic ( Dynamic const *const  dyn,
int  staff 
)

◆ exportDefaultClef()

void Ms::ExportMusicXml::exportDefaultClef ( const Part *const  part,
const Measure *const  m 
)
private

In case no clef is found, export a default clef with type determined by staff type.

Note that a multi-measure rest starting in the first measure should be handled correctly.

◆ findAndExportClef()

void Ms::ExportMusicXml::findAndExportClef ( Measure m,
const int  staves,
const int  strack,
const int  etrack 
)
private

Make sure clefs at end of measure get exported at start of next measure.

◆ findBracket()

int Ms::ExportMusicXml::findBracket ( const TextLine tl) const
private

◆ findDashes()

int Ms::ExportMusicXml::findDashes ( const TextLineBase tl) const
private

◆ findHairpin()

int Ms::ExportMusicXml::findHairpin ( const Hairpin tl) const
private

◆ findOttava()

int Ms::ExportMusicXml::findOttava ( const Ottava tl) const
private

◆ findTrill()

int Ms::ExportMusicXml::findTrill ( const Trill tl) const
private

◆ getTenthsFromDots()

double Ms::ExportMusicXml::getTenthsFromDots ( double  dots) const

◆ getTenthsFromInches()

double Ms::ExportMusicXml::getTenthsFromInches ( double  inches) const

◆ hairpin()

void Ms::ExportMusicXml::hairpin ( Hairpin const *const  hp,
int  staff,
const Fraction tick 
)

◆ harmony()

void Ms::ExportMusicXml::harmony ( Harmony const * const  h,
FretDiagram const *const  fd,
int  offset = 0 
)

◆ keysig()

void Ms::ExportMusicXml::keysig ( const KeySig ks,
ClefType  ct,
int  staff = 0,
bool  visible = true 
)
private

◆ keysigTimesig()

void Ms::ExportMusicXml::keysigTimesig ( const Measure m,
const Part p 
)
private

Output attributes at start of measure: key, time.

◆ lyrics()

void Ms::ExportMusicXml::lyrics ( const std::vector< Lyrics *> *  ll,
const int  trk 
)
private

◆ moveToTick()

void Ms::ExportMusicXml::moveToTick ( const Fraction t)

◆ ottava()

void Ms::ExportMusicXml::ottava ( Ottava const *const  ot,
int  staff,
const Fraction tick 
)

◆ pedal()

void Ms::ExportMusicXml::pedal ( Pedal const *const  pd,
int  staff,
const Fraction tick 
)

◆ print()

void Ms::ExportMusicXml::print ( const Measure *const  m,
const int  partNr,
const int  firstStaffOfPart,
const int  nrStavesInPart 
)
private

Handle the <print> element.

When exporting layout and all breaks, a <print> with layout information is generated for the measure types TopSystem, NewSystem and newPage. When exporting layout but only manual or no breaks, a <print> with layout information is generated only for the measure type TopSystem, as it is assumed the system layout is broken by the importing application anyway and is thus useless.

◆ rehearsal()

void Ms::ExportMusicXml::rehearsal ( RehearsalMark const *const  rmk,
int  staff 
)

◆ rest()

void Ms::ExportMusicXml::rest ( Rest rest,
int  staff 
)
private

Write rest on staff.

For a single-staff part, staff equals zero, suppressing the <staff> element.

◆ score()

Score* Ms::ExportMusicXml::score ( ) const
inline

◆ symbol()

void Ms::ExportMusicXml::symbol ( Symbol const *const  sym,
int  staff 
)

◆ tempoText()

void Ms::ExportMusicXml::tempoText ( TempoText const *const  text,
int  staff 
)

◆ textLine()

void Ms::ExportMusicXml::textLine ( TextLine const *const  tl,
int  staff,
const Fraction tick 
)

◆ tick()

Fraction Ms::ExportMusicXml::tick ( ) const
inline

◆ timesig()

void Ms::ExportMusicXml::timesig ( TimeSig tsig)
private

◆ wavyLineStartStop()

void Ms::ExportMusicXml::wavyLineStartStop ( Chord chord,
Notations notations,
Ornaments ornaments,
TrillHash trillStart,
TrillHash trillStop 
)
private

◆ words()

void Ms::ExportMusicXml::words ( TextBase const *const  text,
int  staff 
)

◆ work()

void Ms::ExportMusicXml::work ( const MeasureBase measure)
private

◆ write()

void Ms::ExportMusicXml::write ( QIODevice *  dev)

Write the score to dev in MusicXML format.

◆ writeElement()

void Ms::ExportMusicXml::writeElement ( Element el,
const Measure m,
int  sstaff,
bool  useDrumset 
)
private

Write el.

◆ writeInstrumentDetails()

void Ms::ExportMusicXml::writeInstrumentDetails ( const Instrument instrument)

Write the instrument details for instrument.

Member Data Documentation

◆ _attr

Attributes Ms::ExportMusicXml::_attr
private

◆ _score

Score* Ms::ExportMusicXml::_score
private

◆ _tick

Fraction Ms::ExportMusicXml::_tick
private

◆ _trillStart

TrillHash Ms::ExportMusicXml::_trillStart
private

◆ _trillStop

TrillHash Ms::ExportMusicXml::_trillStop
private

◆ _xml

XmlWriter Ms::ExportMusicXml::_xml
private

◆ brackets

TextLine const* Ms::ExportMusicXml::brackets[MAX_NUMBER_LEVEL]
private

◆ dashes

TextLineBase const* Ms::ExportMusicXml::dashes[MAX_NUMBER_LEVEL]
private

◆ div

int Ms::ExportMusicXml::div
private

◆ gh

GlissandoHandler Ms::ExportMusicXml::gh
private

◆ hairpins

Hairpin const* Ms::ExportMusicXml::hairpins[MAX_NUMBER_LEVEL]
private

◆ instrMap

MxmlInstrumentMap Ms::ExportMusicXml::instrMap
private

◆ millimeters

double Ms::ExportMusicXml::millimeters
private

◆ ottavas

Ottava const* Ms::ExportMusicXml::ottavas[MAX_NUMBER_LEVEL]
private

◆ sh

SlurHandler Ms::ExportMusicXml::sh
private

◆ tenths

int Ms::ExportMusicXml::tenths
private

◆ trills

Trill const* Ms::ExportMusicXml::trills[MAX_NUMBER_LEVEL]
private

The documentation for this class was generated from the following file: