int main(int argc, char** argv) { if (argc != 2) { return 1; } HumdrumFile infile; if (!infile.read(argv[1])) { return 1; } int tpq = infile.tpq(); cout << "TPQ: " << tpq << endl; cout << "PITCH\tTRACK\tSTART\tDURATION" << endl; for (int i=0; i<infile.getLineCount(); i++) { if (!infile[i].isData()) { continue; } for (int j=0; j<infile[i].getTokenCount(); j++) { if (infile.token(i, j).isNull()) { continue; } if (infile.token(i, j).isDataType("kern")) { printNoteInformation(infile, i, j, tpq); } } } return 0; }
void printNoteInformation(HumdrumFile& infile, int line, int field, int tpq) { int starttime = infile[line].getDurationFromStart(tpq).getInteger(); int duration = infile.token(line, field).getDuration(tpq).getInteger(); cout << Convert::kernToScientificPitch(infile.token(line, field)) << '\t' << infile.token(line, field).getTrackString() << '\t' << starttime << '\t' << duration << endl; }