Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main (int argc, char* argv[])
- {
- if (argc != 2)
- {
- std::cerr << "Please specify at least one argument" << std::endl;
- return 1;
- }
- MidiFile midi;
- if (ScopedPointer<FileInputStream> input = File (argv[1]).createInputStream())
- {
- if (! midi.readFrom (*input))
- {
- std::cerr << "Error reading MIDI File" << std::endl;
- return 1;
- }
- int midiTracksCount = midi.getNumTracks();
- if (midiTracksCount == 1) //for MIDI format 0;
- {
- const MidiMessageSequence* TrackSequence = midi.getTrack(0);
- MidiMessageSequence mmSeq = MidiMessageSequence();
- int midiChan = 2;
- TrackSequence->extractMidiChannelMessages( midiChan, mmSeq, true);
- for (int i = 0; i < mmSeq.getNumEvents(); ++i)
- {
- MidiMessageSequence::MidiEventHolder* event = mmSeq.getEventPointer (i);
- if (event->message.isNoteOnOrOff())
- {
- std::string eventType = event->message.isNoteOn() ? "On" : "Off";
- std::cout << "Note " << eventType << " ["
- << event->message.getChannel() << "]: "
- << MidiMessage::getMidiNoteName (event->message.getNoteNumber(), true, false, 3) << std::endl;
- }
- }
- }
- }
- else
- {
- std::cerr << "Unable to open specified MIDI file" << std::endl;
- return 1;
- }
-
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement