// // Programmer: Craig Stuart Sapp <craig@ccrma.stanford.edu> // Creation Date: Mon Feb 25 17:33:53 PST 2002 // Last Modified: Thu Aug 2 14:35:57 PDT 2012 added -e option // Filename: ...sig/examples/all/mus2pmx2.cpp // Web Address: http://sig.sapp.org/examples/museinfo/score/mus2pmx2.cpp // Syntax: C++; museinfo // // Description: Convert SCORE binary files into ASCII using the // ScorePage class. // #include "ScorePage.h" #include "Options.h" #include <stdlib.h> #ifndef OLDCPP #include <fstream> #else #include <fstream.h> #endif // interface variables: Options options; int verboseQ = 0; // used with -v option int sortQ = 0; // used with -s option int extraQ = 0; // used with -e option int analysisQ = 0; // used with -a option int roundQ = 1; int main(int argc, char** argv) { options.define("v|verbose=b", "display debugging information in output"); options.define("s|sort=b", "sort data by staff in output"); options.define("e|extra=b", "add extra parameter analysis data"); options.define("a|analysis=b", "generate music analysis of data"); options.process(argc, argv); verboseQ = options.getBoolean("verbose"); sortQ = options.getBoolean("sort"); analysisQ = options.getBoolean("analysis"); extraQ = options.getBoolean("extra"); if (options.getArgCount() == 0) { cout << "Usage: " << argv[0] << " input.mus " << endl; exit(1); } ScorePage page; for (int i=1; i<=options.getArgCount(); i++) { if (i > 1) { cout << "##PAGEBREAK\n"; } if (options.getArgCount() > 1) { cout << "##FILE:\t" << options.getArg(i) << "\n"; } page.clear(); page.readBinary(options.getArg(i), verboseQ); if (sortQ) { page.sortByStaff(); } if (analysisQ) { page.analyzeSystems(); page.analyzePitch(); } if (extraQ) { page.analyzeContent(); page.printAsciiWithExtraParameters(cout, roundQ, verboseQ); } else { page.printAscii(cout, roundQ, verboseQ); } } return 0; } // md5sum: daeefb0b33e19f788bdab6fc423efdae mus2pmx2.cpp [20050403]