annotate hackday/CannamMidiFileLoader.h @ 25:2a025ea7c793

hackday work to get live midi input, follow the notes, output measure, read measure in with midi file
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Sat, 03 Dec 2011 21:09:13 +0000
parents 5a11b19906c7
children 9a70d9abdc8b
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@24 23 int loadFile(std::string& filename, midiEventHolder& myMidiEvents);
andrew@24 24
andrew@24 25 void createEventTiming( midiEventHolder& myMidiEvents);
andrew@24 26 void setTempoFromMidiValue(long tempo, midiEventHolder& myMidiEvents);
andrew@24 27 double firstNoteTime;
andrew@24 28 int firstTickTime;
andrew@24 29 bool chopBeginning;
andrew@24 30
andrew@24 31 typedef std::vector<int> IntVector;
andrew@24 32 IntVector v;
andrew@24 33 int noteOnIndex;
andrew@24 34
andrew@25 35 int ticksPerMeasure;
andrew@25 36 void newTimeSignature(int ticks, int numerator, int denominator, midiEventHolder& myMidiEvents);
andrew@25 37 void updateMeasureToTickPosition(int ticks, midiEventHolder& myMidiEvents);
andrew@24 38 bool printMidiInfo;
andrew@25 39 void printMeasuresSoFar(midiEventHolder& myMidiEvents);
andrew@24 40
andrew@24 41 };
andrew@24 42 #endif