view src/PeakProcessor.h @ 5:1e636a3511fb

added beat annotations
author Andrew N Robertson <andrew.robertson@eecs.qmul.ac.uk>
date Mon, 06 Jan 2014 18:10:15 +0000
parents 7ec1ed0b2eb0
children 184a7c232049
line wrap: on
line source
/*
 *  PeakProcessor.h
 *  peakOnsetDetector
 *
 *  Created by Andrew Robertson on 07/09/2012.
 *  Copyright 2012 QMUL. All rights reserved.
 *
 */

#ifndef PEAK_PROCESSOR
#define PEAK_PROCESSOR

#include <vector.h>
#include "math.h"

class PeakProcessor{
	public:
	
	PeakProcessor();
	~PeakProcessor();
	//peak processing requires
	static const int vectorSize = 512/6; 
	vector<double> recentDFsamples; 
	vector<bool> recentDFonsetFound;
	vector<double> recentDFslopeValues;
	
	int numberOfDetectionValuesToTest;
	bool peakProcessing(const double& newDFval);
	double getBestSlopeValue(const float& dfvalue);
	bool checkForSlopeOnset(const float& bestValue);
	int currentFrame, lastSlopeOnsetFrame, cutoffForRepeatOnsetsFrames;
	void updateDetectionTriggerThreshold(const float& val);
	float detectionTriggerThreshold, detectionTriggerRatio;
	float bestSlopeMedian, thresholdRelativeToMedian;
	bool newOnsetFound, slopeFallenBelowMedian;
	

	
};
#endif