Mercurial > hg > midi-score-follower
annotate hackday/CannamMidiFileLoader.h @ 45:90ad1817ca56
Working version of the score follower using annotations read in from RWC set. Links player to midi file from rwc set
author | Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk> |
---|---|
date | Sun, 05 Feb 2012 10:00:34 +0000 |
parents | 9a70d9abdc8b |
children |
rev | line source |
---|---|
andrew@24 | 1 /* |
andrew@24 | 2 * CannamMidiFileLoader.h |
andrew@24 | 3 * midi-score-follower |
andrew@24 | 4 * |
andrew@24 | 5 * Created by Chris Cannam on 19/08/2011. |
andrew@24 | 6 * Copyright 2011 QMUL. All rights reserved. |
andrew@24 | 7 * |
andrew@24 | 8 */ |
andrew@24 | 9 |
andrew@24 | 10 #ifndef CANNAM_MIDI_FILE_LOADER |
andrew@24 | 11 #define CANNAM_MIDI_FILE_LOADER |
andrew@24 | 12 |
andrew@24 | 13 #include "MIDIFileReader.h" |
andrew@24 | 14 //#include "MIDIEvent.h" |
andrew@24 | 15 #include "midiEventHolder.h" |
andrew@24 | 16 using namespace MIDIConstants; |
andrew@24 | 17 |
andrew@24 | 18 class CannamMidiFileLoader{ |
andrew@24 | 19 |
andrew@24 | 20 public: |
andrew@24 | 21 CannamMidiFileLoader(); |
andrew@24 | 22 |
andrew@31 | 23 typedef std::vector<double> DoubleVector; |
andrew@31 | 24 |
andrew@24 | 25 int loadFile(std::string& filename, midiEventHolder& myMidiEvents); |
andrew@24 | 26 |
andrew@24 | 27 void createEventTiming( midiEventHolder& myMidiEvents); |
andrew@24 | 28 void setTempoFromMidiValue(long tempo, midiEventHolder& myMidiEvents); |
andrew@24 | 29 double firstNoteTime; |
andrew@24 | 30 int firstTickTime; |
andrew@24 | 31 bool chopBeginning; |
andrew@24 | 32 |
andrew@24 | 33 typedef std::vector<int> IntVector; |
andrew@24 | 34 IntVector v; |
andrew@24 | 35 int noteOnIndex; |
andrew@24 | 36 |
andrew@25 | 37 int ticksPerMeasure; |
andrew@25 | 38 void newTimeSignature(int ticks, int numerator, int denominator, midiEventHolder& myMidiEvents); |
andrew@25 | 39 void updateMeasureToTickPosition(int ticks, midiEventHolder& myMidiEvents); |
andrew@24 | 40 bool printMidiInfo; |
andrew@25 | 41 void printMeasuresSoFar(midiEventHolder& myMidiEvents); |
andrew@31 | 42 void correctMeasuresTiming(midiEventHolder& myMidiEvents); |
andrew@24 | 43 |
andrew@24 | 44 }; |
andrew@24 | 45 #endif |