annotate jnmr/CannamMidiFileLoader.h @ 52:13194a9dca77 tip

Added exporting of image and text data
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Tue, 17 Jul 2012 22:13:10 +0100
parents 6cd3e0075adf
children
rev   line source
andrew@33 1 /*
andrew@33 2 * CannamMidiFileLoader.h
andrew@33 3 * midi-score-follower
andrew@33 4 *
andrew@33 5 * Created by Chris Cannam on 19/08/2011.
andrew@33 6 * Copyright 2011 QMUL. All rights reserved.
andrew@33 7 *
andrew@33 8 */
andrew@33 9
andrew@33 10 #ifndef CANNAM_MIDI_FILE_LOADER
andrew@33 11 #define CANNAM_MIDI_FILE_LOADER
andrew@33 12
andrew@33 13 #include "MIDIFileReader.h"
andrew@33 14 //#include "MIDIEvent.h"
andrew@33 15 #include "midiEventHolder.h"
andrew@33 16 using namespace MIDIConstants;
andrew@33 17
andrew@33 18 class CannamMidiFileLoader{
andrew@33 19
andrew@33 20 public:
andrew@33 21 CannamMidiFileLoader();
andrew@33 22
andrew@33 23 typedef std::vector<double> DoubleVector;
andrew@33 24
andrew@33 25 int loadFile(std::string& filename, midiEventHolder& myMidiEvents);
andrew@33 26
andrew@33 27 void createEventTiming( midiEventHolder& myMidiEvents);
andrew@33 28 void setTempoFromMidiValue(long tempo, midiEventHolder& myMidiEvents);
andrew@33 29 double firstNoteTime;
andrew@33 30 int firstTickTime;
andrew@33 31 bool chopBeginning;
andrew@34 32 void chopBeginningfromEvents(midiEventHolder& myMidiEvents);
andrew@33 33
andrew@33 34 typedef std::vector<int> IntVector;
andrew@33 35 IntVector v;
andrew@33 36 int noteOnIndex;
andrew@33 37
andrew@33 38 int ticksPerMeasure;
andrew@33 39 void newTimeSignature(int ticks, int numerator, int denominator, midiEventHolder& myMidiEvents);
andrew@33 40 void updateMeasureToTickPosition(int ticks, midiEventHolder& myMidiEvents);
andrew@33 41 bool printMidiInfo;
andrew@33 42 void printMeasuresSoFar(midiEventHolder& myMidiEvents);
andrew@33 43 void correctMeasuresTiming(midiEventHolder& myMidiEvents);
andrew@34 44 double fileDuration;
andrew@35 45 float beatsPerMeasure;
andrew@35 46 float numberOfBeatsAtLastPosition;
andrew@35 47 int lastBeatPosition;
andrew@35 48 double getBeatPositionForTickCount(long t, midiEventHolder& myMidiEvents);
andrew@35 49 void printUpToIndex(const int& index, midiEventHolder& midiEvents);
andrew@33 50 };
andrew@33 51 #endif