// // Programmer: Craig Stuart Sapp // Creation Date: Wed Feb 17 00:04:59 PST 2016 // Last Modified: Wed Feb 17 00:05:02 PST 2016 // Filename: ...museinfo/examples/all/menlist.cpp // Web Address: http://sig.sapp.org/examples/museinfo/humdrum/menlist.cpp // Syntax: C++; museinfo // // Description: Extract list of mensuration signs for each voice. // // #include "humdrum.h" #include "PerlRegularExpression.h" #include using namespace std; // function declarations void checkOptions (Options& opts, int argc, char* argv[]); void example (void); void usage (const char* command); void processFile (HumdrumFile& infile, const string& filename); void processVoice (HumdrumFile& infile, const string& name, int track); void printMensuration (const char* sign); // global variables Options options; // database for command-line arguments /////////////////////////////////////////////////////////////////////////// int main(int argc, char** argv) { checkOptions(options, argc, argv); HumdrumStream streamer(options); HumdrumFile infile; while (streamer.read(infile)) { processFile(infile, infile.getFileName()); } } /////////////////////////////////////////////////////////////////////////// ////////////////////////////// // // processFile -- Do requested analysis on a given file. // void processFile(HumdrumFile& infile, const string& filename) { string name; if (filename.size() > 0) { name = filename; } Array ktracks; infile.getKernTracks(ktracks); for (int i=ktracks.getSize() - 1; i>=0; i--) { processVoice(infile, name, ktracks[i]); } } ////////////////////////////// // // processVoice -- // void processVoice(HumdrumFile& infile, const string& name, int track) { cout << name; int i, j; int ttrack; PerlRegularExpression pre; char lastmen[1024] = {0}; for (i=0; i