diff --git a/src/importexport/musicxml/internal/musicxml/exportxml.cpp b/src/importexport/musicxml/internal/musicxml/exportxml.cpp index 2525b8fb69..e8906a3d62 100644 --- a/src/importexport/musicxml/internal/musicxml/exportxml.cpp +++ b/src/importexport/musicxml/internal/musicxml/exportxml.cpp @@ -6017,6 +6017,16 @@ static int findPartGroupNumber(int* partGroupEnd) // scoreInstrument //--------------------------------------------------------- +static void scoreInstrument(XmlWriter& xml, const int partNr, const int instrNr, const QString& instrName, const Instrument* instr) +{ + xml.startElementRaw(QString("score-instrument %1").arg(instrId(partNr, instrNr))); + xml.tag("instrument-name", instrName); + if (!instr->instrumentId().isEmpty()) { + xml.tag("instrument-sound",instr->instrumentId()); + } + xml.endElement(); +} + static void scoreInstrument(XmlWriter& xml, const int partNr, const int instrNr, const QString& instrName) { xml.startElementRaw(QString("score-instrument %1").arg(instrId(partNr, instrNr))); @@ -6525,7 +6535,7 @@ static void partList(XmlWriter& xml, Score* score, MxmlInstrumentMap& instrMap) MxmlReverseInstrumentMap rim; initReverseInstrMap(rim, instrMap); for (int instNr : rim.keys()) { - scoreInstrument(xml, static_cast(idx) + 1, instNr + 1, MScoreTextToMXML::toPlainText(rim.value(instNr)->trackName())); + scoreInstrument(xml, static_cast(idx) + 1, instNr + 1, MScoreTextToMXML::toPlainText(rim.value(instNr)->trackName()),rim.value(instNr)); } for (auto ii = rim.constBegin(); ii != rim.constEnd(); ii++) { int instNr = ii.key();