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: