void MxmlWriter::header(const QString title, const QString /* type */, const QString composer, const QString footer, const unsigned int temp) { // qDebug() << "MxmlWriter::header()" // << "title:" << title // << "type:" << type // << "composer:" << composer // << "footer:" << footer // << "temp:" << temp // ; // save tempo for later use tempo = temp; // write the header out << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" << endl; out << "<!DOCTYPE score-partwise PUBLIC " << "\"-//Recordare//DTD MusicXML 2.0 Partwise//EN\" " << "\"http://www.musicxml.org/dtds/partwise.dtd\">" << endl; out << "<score-partwise>" << endl; out << " <work>" << endl; out << " <work-title>" << title << "</work-title>" << endl; // TODO work-number is not allowed, replace // out << " <work-number>" << type << "</work-number>" << endl; out << " </work>" << endl; out << " <identification>" << endl; out << " <creator type=\"composer\">" << composer << "</creator>" << endl; out << " <rights>" << footer << "</rights>" << endl; out << " <encoding>" << endl; out << " <software>bww2mxml</software>" << endl; // TODO fill in real date // out << " <encoding-date>TBD</encoding-date>" << endl; out << " </encoding>" << endl; out << " </identification>" << endl; out << " <part-list>" << endl; out << " <score-part id=\"P1\">" << endl; out << " <part-name>" << instrumentName() << "</part-name>" << endl; out << " <score-instrument id=\"P1-I1\">" << endl; out << " <instrument-name>" << instrumentName() << "</instrument-name>" << endl; out << " </score-instrument>" << endl; out << " <midi-instrument id=\"P1-I1\">" << endl; out << " <midi-channel>1</midi-channel>" << endl; out << " <midi-program>" << midiProgram() << "</midi-program>" << endl; out << " </midi-instrument>" << endl; out << " </score-part>" << endl; out << " </part-list>" << endl; out << " <part id=\"P1\">" << endl; }
void MsScWriter::header(const QString title, const QString type, const QString composer, const QString footer, const unsigned int temp) { qDebug() << "MsScWriter::header()" << "title:" << title << "type:" << type << "composer:" << composer << "footer:" << footer << "temp:" << temp ; // save tempo for later use tempo = temp; if (!title.isEmpty()) score->setMetaTag("workTitle", title); // TODO re-enable following statement // currently disabled because it breaks the bww iotest // if (!type.isEmpty()) score->setMetaTag("workNumber", type); if (!composer.isEmpty()) score->setMetaTag("composer", composer); if (!footer.isEmpty()) score->setMetaTag("copyright", footer); // score->setWorkTitle(title); Ms::VBox* vbox = 0; addText(vbox, score, title, Ms::TextStyleType::TITLE); addText(vbox, score, type, Ms::TextStyleType::SUBTITLE); addText(vbox, score, composer, Ms::TextStyleType::COMPOSER); // addText(vbox, score, strPoet, Ms::TextStyleType::POET); // addText(vbox, score, strTranslator, Ms::TextStyleType::TRANSLATOR); if (vbox) { vbox->setTick(0); score->measures()->add(vbox); } if (!footer.isEmpty()) score->style()->set(Ms::StyleIdx::oddFooterC, footer); Ms::Part* part = score->staff(0)->part(); part->setPlainLongName(instrumentName()); part->setPartName(instrumentName()); part->instrument()->setTrackName(instrumentName()); part->setMidiProgram(midiProgram() - 1); }
void MsScWriter::header(const QString title, const QString type, const QString composer, const QString footer, const unsigned int temp) { qDebug() << "MsScWriter::header()" << "title:" << title << "type:" << type << "composer:" << composer << "footer:" << footer << "temp:" << temp ; // save tempo for later use tempo = temp; if (!title.isEmpty()) score->setMetaTag("workTitle", title); // TODO re-enable following statement // currently disabled because it breaks the bww iotest // if (!type.isEmpty()) score->setMetaTag("workNumber", type); QString strType = "composer"; QString strComposer = composer; // TODO: const parameters ctor MusicXmlCreator score->addCreator(new MusicXmlCreator(strType, strComposer)); if (!footer.isEmpty()) score->setMetaTag("copyright", footer); // score->setWorkTitle(title); VBox* vbox = 0; addText(vbox, score, title, TEXT_STYLE_TITLE); addText(vbox, score, type, TEXT_STYLE_SUBTITLE); addText(vbox, score, composer, TEXT_STYLE_COMPOSER); // addText(vbox, score, strPoet, TEXT_STYLE_POET); // addText(vbox, score, strTranslator, TEXT_STYLE_TRANSLATOR); if (vbox) { vbox->setTick(0); score->measures()->add(vbox); } if (!footer.isEmpty()) score->style()->set(ST_oddFooterC, footer); Part* part = score->part(0); part->setLongName(instrumentName()); part->setMidiProgram(midiProgram() - 1); }