Mercurial > hg > midi-score-follower
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 |