void HandMonitor::setTempoParams()
{
	switch(playback_->getPlaybackState())
	{
	case eStreamPlaying:
		rhYrel_ = rhY_ - rhYprev_;
		if(!decY_)
		{
			if(rhYrel_ < -1)
			{
				addTempoMeasure();
				if(measureCount_ >= TEMPO_SAMPLES)
				{
					calcTempo();
				}
			}
		}
		else
		{
			if(rhYrel_ > 1)
			{
				addTempoMeasure();
				if(measureCount_ >= TEMPO_SAMPLES)
				{
					calcTempo();
				}
			}
		}
		rhYprev_ = rhY_;
		break;
	}
}
Exemple #2
0
	virtual void handleSetTempo(uint8_t tempo) {
		mid.writeTempo(restTime, calcTempo(tempo));
		restTime = 0;
		if(firstTempo == 0) firstTempo = tempo;
	}