view src/AudioEventMatcher.h @ 3:5e188c0035b6

checking the offsets of the arrays
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Wed, 01 Feb 2012 16:05:26 +0000
parents 179c09199b3c
children 45b5cf9be377
line wrap: on
line source
/*
 *  AudioEventMatcher.h
 *  MultipleAudioMathcher
 *
 *  Created by Andrew on 31/01/2012.
 *  Copyright 2012 QMUL. All rights reserved.
 *
 */



#ifndef AUDIO_EVENT_MATCHER_H
#define AUDIO_EVENT_MATCHER_H


#include "ofMain.h"
#include "ChromaOnset.h"
#include "LiveAudioInput.h"
#include "ofxWindowRegion.h"
#include "BayesianArrayStructure.h"
#include "RecordedMultitrackAudio.h"

class AudioEventMatcher{
	
	public:
	AudioEventMatcher();
	
	void setArraySizes();
	
	void draw();
	
	void newPitchEvent(const double& pitchIn, const double& timeIn);
	void newKickEvent(const double& timeIn);
	void newSnareEvent(const double& timeIn);
	
	void matchNewPitchEvent(const int& channel, const double& pitchIn, const double& timeIn);
	void matchNewOnsetEvent(const int& channel, const double& timeIn);
	
	BayesianArrayStructure bayesianStruct;//hold the probability distriubtions
	
	LiveAudioInput liveInput;//hold the new events that come in
	RecordedMultitrackAudio recordedTracks;
	
	void windowResized(const int& w, const int& h);
	
	ofxWindowRegion bayesTempoWindow;
	ofxWindowRegion bayesPositionWindow;
	ofxWindowRegion bayesLikelihoodWindow;

	bool checkMatch(const double& recordedPitch, const double& livePitch);
	double getPitchDistance(const double& pitchOne, const double& pitchTwo, const double& scale);
	
	void updateBayesianDistributions(const double& newEventTime);
	void startPlaying();
	
	bool usingRealTime;
	
};
#endif