andrew@49: #pragma once andrew@49: andrew@49: #include "ofMain.h" andrew@49: andrew@49: #include "Annotations.h" andrew@49: #include "matchAnnotations.h" andrew@49: #include "jnmrMidiPlayerAnnotations.h" andrew@49: andrew@51: class TimingResult{ andrew@51: public: andrew@51: andrew@50: double median; andrew@50: double mean; andrew@50: int count; andrew@50: double percentileCount[7]; andrew@50: double percentiles[7]; andrew@50: int type; andrew@51: andrew@51: TimingResult(){ andrew@51: median= 0; andrew@51: mean = 0; andrew@51: count = 0; andrew@51: for (int i = 0;i <7;i++){ andrew@51: percentileCount[i] = 0; andrew@51: percentiles[i] = 0; andrew@51: } andrew@51: } andrew@50: }; andrew@50: andrew@51: andrew@51: andrew@49: class testApp : public ofBaseApp{ andrew@49: andrew@49: public: andrew@49: void setup(); andrew@49: void update(); andrew@49: void draw(); andrew@49: andrew@49: void keyPressed (int key); andrew@49: void keyReleased(int key); andrew@49: void mouseMoved(int x, int y ); andrew@49: void mouseDragged(int x, int y, int button); andrew@49: void mousePressed(int x, int y, int button); andrew@49: void mouseReleased(int x, int y, int button); andrew@49: void windowResized(int w, int h); andrew@49: void dragEvent(ofDragInfo dragInfo); andrew@49: void gotMessage(ofMessage msg); andrew@49: andrew@49: Annotations rwcAnnotations; andrew@49: andrew@49: void loadRWCfileNumber(const int& i); andrew@49: vector rwcFileNameStrings; andrew@49: void createRWCfilenameStrings(); andrew@49: string annotationRoot ; andrew@49: std::string makeRWCfilename(std::string& root, const int& fileID, std::string& endPart); andrew@49: void loadAnnotation(const int& fileID); andrew@49: andrew@49: string matchPath; andrew@50: std::string makeMatchFilename( const int& fileID, std::string matchEnd); andrew@49: andrew@49: matchAnnotations matchNotations; andrew@49: andrew@49: string jnmrPlayerPath, jnmrPlayerRoot; andrew@49: jnmrMidiPlayerAnnotations jnmrPlayerAnnotations; andrew@49: andrew@50: void calculateMatchErrors(TimingResult& t); andrew@50: void calculateMatchForwardErrors(TimingResult& t); andrew@49: andrew@50: void sortDifferenceVector(vector diffVec, TimingResult& t); andrew@50: void addToPercentiles(float value, TimingResult& t); andrew@50: andrew@50: vector matchOF_results; andrew@50: vector matchOB_results; andrew@50: vector JNMR_MidiMatcher_results; andrew@50: andrew@51: TimingResult final_JNMR_Midi; andrew@51: TimingResult final_Match_OF; andrew@51: TimingResult final_Match_OB; andrew@51: andrew@51: andrew@51: std::string matchRoot;// = "/Users/andrew/Documents/work/programming/Shell Scripts/MatchMidiToMidiOutput/RWCmatch_RM-C"; andrew@50: void getResults(const int& fileID); andrew@51: void calculateOverallPercentiles(); andrew@51: void calculateOverallMatchPercentiles(); andrew@50: int fileNumberToTest; andrew@49: };