andrew@24: /* andrew@24: * CannamMidiFileLoader.h andrew@24: * midi-score-follower andrew@24: * andrew@24: * Created by Chris Cannam on 19/08/2011. andrew@24: * Copyright 2011 QMUL. All rights reserved. andrew@24: * andrew@24: */ andrew@24: andrew@24: #ifndef CANNAM_MIDI_FILE_LOADER andrew@24: #define CANNAM_MIDI_FILE_LOADER andrew@24: andrew@24: #include "MIDIFileReader.h" andrew@24: //#include "MIDIEvent.h" andrew@24: #include "midiEventHolder.h" andrew@24: using namespace MIDIConstants; andrew@24: andrew@24: class CannamMidiFileLoader{ andrew@24: andrew@24: public: andrew@24: CannamMidiFileLoader(); andrew@24: andrew@31: typedef std::vector DoubleVector; andrew@31: andrew@24: int loadFile(std::string& filename, midiEventHolder& myMidiEvents); andrew@24: andrew@24: void createEventTiming( midiEventHolder& myMidiEvents); andrew@24: void setTempoFromMidiValue(long tempo, midiEventHolder& myMidiEvents); andrew@24: double firstNoteTime; andrew@24: int firstTickTime; andrew@24: bool chopBeginning; andrew@24: andrew@24: typedef std::vector IntVector; andrew@24: IntVector v; andrew@24: int noteOnIndex; andrew@24: andrew@25: int ticksPerMeasure; andrew@25: void newTimeSignature(int ticks, int numerator, int denominator, midiEventHolder& myMidiEvents); andrew@25: void updateMeasureToTickPosition(int ticks, midiEventHolder& myMidiEvents); andrew@24: bool printMidiInfo; andrew@25: void printMeasuresSoFar(midiEventHolder& myMidiEvents); andrew@31: void correctMeasuresTiming(midiEventHolder& myMidiEvents); andrew@24: andrew@24: }; andrew@24: #endif