Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. int main (int argc, char* argv[])
  2. {
  3.     if (argc != 2)
  4.     {
  5.         std::cerr << "Please specify at least one argument" << std::endl;
  6.         return 1;
  7.     }
  8.     MidiFile midi;
  9.     if (ScopedPointer<FileInputStream> input = File (argv[1]).createInputStream())
  10.     {
  11.         if (! midi.readFrom (*input))
  12.         {
  13.             std::cerr << "Error reading MIDI File" << std::endl;
  14.             return 1;
  15.         }
  16.         int midiTracksCount = midi.getNumTracks();
  17.         if (midiTracksCount == 1) //for MIDI format 0;
  18.         {
  19.             const MidiMessageSequence* TrackSequence = midi.getTrack(0);
  20.             MidiMessageSequence mmSeq = MidiMessageSequence();
  21.             int midiChan = 2;
  22.             TrackSequence->extractMidiChannelMessages( midiChan, mmSeq, true);
  23.             for (int i = 0; i < mmSeq.getNumEvents(); ++i)
  24.             {
  25.                 MidiMessageSequence::MidiEventHolder* event = mmSeq.getEventPointer (i);
  26.                 if (event->message.isNoteOnOrOff())
  27.                 {
  28.                     std::string eventType = event->message.isNoteOn() ? "On" : "Off";
  29.                     std::cout << "Note " << eventType << " ["
  30.                               << event->message.getChannel() << "]: " 
  31.                               << MidiMessage::getMidiNoteName (event->message.getNoteNumber(), true, false, 3) << std::endl;
  32.                 }
  33.             }
  34.         }
  35.     }
  36.     else
  37.     {
  38.         std::cerr << "Unable to open specified MIDI file" << std::endl;
  39.         return 1;
  40.     }
  41.     
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement