andrew@24: /* andrew@24: * MidiInputStream.h andrew@24: * MuseScoreMidiFollower andrew@24: * andrew@24: * Created by Andrew on 03/12/2011. andrew@24: * Copyright 2011 QMUL. All rights reserved. andrew@24: * andrew@24: */ andrew@24: andrew@24: #ifndef MIDI_INPUT_STREAM andrew@24: #define MIDI_INPUT_STREAM andrew@24: andrew@24: #include "ofMain.h" andrew@24: #include "ofxMidi.h" andrew@24: #include "midiEventHolder.h" andrew@24: //WOULD BE GOOD TO USE STD CONSTANTS here andrew@24: //#include "MIDIFileReader.h" andrew@24: //using namespace MIDIConstants; andrew@24: andrew@24: class MidiInputStream{ andrew@24: andrew@24: public: andrew@24: MidiInputStream(); andrew@24: bool noteInReceived(ofxMidiEventArgs &args); andrew@24: void reset(); andrew@24: void printNotes(); andrew@24: int endNote(int notePitch); andrew@24: andrew@24: typedef std::vector IntVector; andrew@24: typedef std::vector IntMatrix; andrew@24: andrew@24: typedef std::vector DoubleVector; andrew@24: DoubleVector eventTimesForNote; andrew@24: andrew@26: double calculateTotalScore(midiEventHolder& midiEvents); andrew@26: andrew@24: IntMatrix midiInputEvents; andrew@24: DoubleVector midiInputTimes; andrew@24: IntVector v; andrew@26: IntVector totalNotesRecievedByPitch; andrew@26: void newNoteCounted(const int& pitch); andrew@26: void printTotalCount(); andrew@26: andrew@24: double* startTime; andrew@24: midiEventHolder* eventHolder; andrew@24: andrew@24: int* transposeVal; andrew@24: andrew@24: double* factor; andrew@24: andrew@24: }; andrew@24: #endif