Mercurial > hg > midi-score-follower
comparison src/CannamMidiFileLoader.cpp @ 17:d75d16c57eac
Fixed the ordering of the note matrix when loaded so it has a double check feature that they are ordered min to max. Prevents draw problems down the line
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Tue, 15 Nov 2011 20:06:55 +0000 |
parents | f0abb0e414ec |
children |
comparison
equal
deleted
inserted
replaced
16:f0abb0e414ec | 17:d75d16c57eac |
---|---|
9 | 9 |
10 #include "MIDIFileReader.h" | 10 #include "MIDIFileReader.h" |
11 #include "CannamMidiFileLoader.h" | 11 #include "CannamMidiFileLoader.h" |
12 | 12 |
13 CannamMidiFileLoader::CannamMidiFileLoader(){ | 13 CannamMidiFileLoader::CannamMidiFileLoader(){ |
14 chopBeginning = false; | 14 chopBeginning = true; |
15 } | 15 } |
16 | 16 |
17 int CannamMidiFileLoader::loadFile(std::string& filename, midiEventHolder& myMidiEvents){ | 17 int CannamMidiFileLoader::loadFile(std::string& filename, midiEventHolder& myMidiEvents){ |
18 | 18 |
19 noteOnIndex = 0; | 19 noteOnIndex = 0; |
242 } | 242 } |
243 | 243 |
244 | 244 |
245 } | 245 } |
246 | 246 |
247 myMidiEvents.printRecordedEvents(); | 247 myMidiEvents.printRecordedEvents(); |
248 printf("|||||||||||||||||||||| \n\n\n\n\n\n\n"); | 248 printf("|||||||||||||||||||||| \n\n\n\n\n\n\n"); |
249 myMidiEvents.reorderMatrixFromNoteTimes(myMidiEvents.recordedNoteOnMatrix); | 249 myMidiEvents.reorderMatrixFromNoteTimes(myMidiEvents.recordedNoteOnMatrix); |
250 myMidiEvents.correctTiming(myMidiEvents.recordedNoteOnMatrix); | 250 myMidiEvents.correctTiming(myMidiEvents.recordedNoteOnMatrix); |
251 | 251 myMidiEvents.doublecheckOrder(myMidiEvents.recordedNoteOnMatrix); |
252 | |
253 createEventTiming(myMidiEvents); | |
254 | |
255 myMidiEvents.printRecordedEvents(); | |
256 | |
257 }//end cannam midi main | |
258 | |
259 | |
260 void CannamMidiFileLoader::createEventTiming( midiEventHolder& myMidiEvents){ | |
252 | 261 |
253 long t; | 262 long t; |
254 t = myMidiEvents.recordedNoteOnMatrix[0][0]; | 263 t = myMidiEvents.recordedNoteOnMatrix[0][0]; |
255 firstNoteTime = myMidiEvents.getEventTimeMillis(t); | 264 firstNoteTime = myMidiEvents.getEventTimeMillis(t); |
256 | 265 |
259 | 268 |
260 if (!chopBeginning) | 269 if (!chopBeginning) |
261 myMidiEvents.recordedEventTimes.push_back(myMidiEvents.getEventTimeMillis(t)); | 270 myMidiEvents.recordedEventTimes.push_back(myMidiEvents.getEventTimeMillis(t)); |
262 else { | 271 else { |
263 myMidiEvents.recordedEventTimes.push_back(myMidiEvents.getEventTimeMillis(t) - firstNoteTime); | 272 myMidiEvents.recordedEventTimes.push_back(myMidiEvents.getEventTimeMillis(t) - firstNoteTime); |
264 | 273 |
265 } | 274 } |
266 } | 275 } |
267 myMidiEvents.printRecordedEvents(); | 276 |
268 | 277 } |
269 }//end cannam midi main | 278 |
270 | 279 |
271 | 280 |
272 | |
273 |