Mercurial > hg > midi-score-follower
diff src/CannamMidiFileLoader.cpp @ 3:de86d77f2612
added speed prior setting. needs some cleaning
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Fri, 19 Aug 2011 02:36:34 +0100 |
parents | 5581023e0de4 |
children | 4a8e6a6cd224 |
line wrap: on
line diff
--- a/src/CannamMidiFileLoader.cpp Fri Aug 19 01:26:40 2011 +0100 +++ b/src/CannamMidiFileLoader.cpp Fri Aug 19 02:36:34 2011 +0100 @@ -10,9 +10,13 @@ #include "MIDIFileReader.h" #include "CannamMidiFileLoader.h" +CannamMidiFileLoader::CannamMidiFileLoader(){ + chopBeginning = true; +} + int CannamMidiFileLoader::loadFile(std::string& filename, midiEventHolder& myMidiEvents){ - + noteOnIndex = 0; myMidiEvents.clearAllEvents(); //int main(int argc, char **argv) @@ -148,13 +152,34 @@ << " pitch " << j->getPitch() << " velocity " << j->getVelocity() << "event time " << myMidiEvents.getEventTimeMillis(t) << endl; + + + if (noteOnIndex == 0){ + firstNoteTime = myMidiEvents.getEventTimeMillis(t); + firstTickTime = t; + } + + noteOnIndex++; + v.clear(); - v.push_back(t); + + if (!chopBeginning) + v.push_back(t); + else + v.push_back(t - firstTickTime); + v.push_back(j->getPitch()); v.push_back(j->getVelocity()); v.push_back(j->getDuration()); myMidiEvents.recordedNoteOnMatrix.push_back(v); + + if (!chopBeginning) myMidiEvents.recordedEventTimes.push_back(myMidiEvents.getEventTimeMillis(t)); + else { + myMidiEvents.recordedEventTimes.push_back(myMidiEvents.getEventTimeMillis(t) - firstNoteTime); + printf("chopping beginning %f \n", myMidiEvents.getEventTimeMillis(t) - firstNoteTime); + } + break; case MIDI_POLY_AFTERTOUCH: