view hackday/MidiInputStream.h @ 26:179365726f07

live input, calculates score rating
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Sun, 04 Dec 2011 00:02:26 +0000
parents 5a11b19906c7
children
line wrap: on
line source
/*
 *  MidiInputStream.h
 *  MuseScoreMidiFollower
 *
 *  Created by Andrew on 03/12/2011.
 *  Copyright 2011 QMUL. All rights reserved.
 *
 */

#ifndef MIDI_INPUT_STREAM
#define MIDI_INPUT_STREAM

#include "ofMain.h"
#include "ofxMidi.h"
#include "midiEventHolder.h"
//WOULD BE GOOD TO USE STD CONSTANTS here
//#include "MIDIFileReader.h"
//using namespace MIDIConstants;

class MidiInputStream{
	
public:
	MidiInputStream();
	bool noteInReceived(ofxMidiEventArgs &args);
	void reset();
	void printNotes();
	int endNote(int notePitch);	
	
	typedef std::vector<int> IntVector;
	typedef std::vector<IntVector> IntMatrix;

	typedef std::vector<double> DoubleVector;
	DoubleVector eventTimesForNote;
	
	double calculateTotalScore(midiEventHolder& midiEvents);
	
	IntMatrix midiInputEvents;
	DoubleVector midiInputTimes;
	IntVector v;
	IntVector totalNotesRecievedByPitch;
	void newNoteCounted(const int& pitch);
	void printTotalCount();
	
	double* startTime;
	midiEventHolder* eventHolder;
	
	int* transposeVal;
	
	double* factor;
	
};
#endif