comparison 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
comparison
equal deleted inserted replaced
2:5581023e0de4 3:de86d77f2612
8 */ 8 */
9 9
10 #include "MIDIFileReader.h" 10 #include "MIDIFileReader.h"
11 #include "CannamMidiFileLoader.h" 11 #include "CannamMidiFileLoader.h"
12 12
13 CannamMidiFileLoader::CannamMidiFileLoader(){
14 chopBeginning = true;
15 }
16
13 int CannamMidiFileLoader::loadFile(std::string& filename, midiEventHolder& myMidiEvents){ 17 int CannamMidiFileLoader::loadFile(std::string& filename, midiEventHolder& myMidiEvents){
14 18
15 19 noteOnIndex = 0;
16 myMidiEvents.clearAllEvents(); 20 myMidiEvents.clearAllEvents();
17 21
18 //int main(int argc, char **argv) 22 //int main(int argc, char **argv)
19 //{ 23 //{
20 // if (argc != 2) { 24 // if (argc != 2) {
146 cout << t << ": Note: channel " << ch 150 cout << t << ": Note: channel " << ch
147 << " duration " << j->getDuration() 151 << " duration " << j->getDuration()
148 << " pitch " << j->getPitch() 152 << " pitch " << j->getPitch()
149 << " velocity " << j->getVelocity() 153 << " velocity " << j->getVelocity()
150 << "event time " << myMidiEvents.getEventTimeMillis(t) << endl; 154 << "event time " << myMidiEvents.getEventTimeMillis(t) << endl;
155
156
157 if (noteOnIndex == 0){
158 firstNoteTime = myMidiEvents.getEventTimeMillis(t);
159 firstTickTime = t;
160 }
161
162 noteOnIndex++;
163
151 v.clear(); 164 v.clear();
152 v.push_back(t); 165
166 if (!chopBeginning)
167 v.push_back(t);
168 else
169 v.push_back(t - firstTickTime);
170
153 v.push_back(j->getPitch()); 171 v.push_back(j->getPitch());
154 v.push_back(j->getVelocity()); 172 v.push_back(j->getVelocity());
155 v.push_back(j->getDuration()); 173 v.push_back(j->getDuration());
156 myMidiEvents.recordedNoteOnMatrix.push_back(v); 174 myMidiEvents.recordedNoteOnMatrix.push_back(v);
175
176 if (!chopBeginning)
157 myMidiEvents.recordedEventTimes.push_back(myMidiEvents.getEventTimeMillis(t)); 177 myMidiEvents.recordedEventTimes.push_back(myMidiEvents.getEventTimeMillis(t));
178 else {
179 myMidiEvents.recordedEventTimes.push_back(myMidiEvents.getEventTimeMillis(t) - firstNoteTime);
180 printf("chopping beginning %f \n", myMidiEvents.getEventTimeMillis(t) - firstNoteTime);
181 }
182
158 break; 183 break;
159 184
160 case MIDI_POLY_AFTERTOUCH: 185 case MIDI_POLY_AFTERTOUCH:
161 cout << t << ": Polyphonic aftertouch: channel " << ch 186 cout << t << ": Polyphonic aftertouch: channel " << ch
162 << " pitch " << j->getPitch() 187 << " pitch " << j->getPitch()