예제 #1
0
int main(int argc, char* argv[]) {
   checkOptions(options, argc, argv);
   MidiFile outfile;
   outfile.joinTracks();
   outfile.deltaTicks();

   int i;
   int initQ = 0;
   for (i=1; i<=options.getArgCount(); i++) {
      appendMidi(outfile, options.getArg(i).data(), seconds, initQ++);
   }

   // insert an end-of track Meta Event
   int tpq = outfile.getTicksPerQuarterNote();
   MidiEvent mfevent;
   mfevent.tick = tpq;
   mfevent.track = 0;
   mfevent.resize(3);
   mfevent[0] = 0xff;
   mfevent[1] = 0x2f;
   mfevent[2] = 0;
   outfile.addEvent(mfevent);

   if (binaryQ) {
      outfile.write(cout);
   } else {
      cout << outfile;
   }

   return 0;
}
예제 #2
0
void convertMidiFile(MidiFile& midifile) {
   if (type0Q) {
      midifile.joinTracks();
   }
   midifile.deltaTicks();

   printMidiHeader(midifile);
   int trackcount = midifile.getTrackCount();
   for (int i=0; i<trackcount; i++) {
      printTrack(midifile, i);
   }
}