Mercurial > hg > beatroot-vamp
diff Agent.cpp @ 12:59520cd6abac
Debug output, and some actual debugging... getting there.
author | Chris Cannam |
---|---|
date | Thu, 06 Oct 2011 15:21:03 +0100 |
parents | 4f6626f9ffac |
children | 0d4048bfadbb |
line wrap: on
line diff
--- a/Agent.cpp Fri Sep 30 23:11:14 2011 +0100 +++ b/Agent.cpp Thu Oct 06 15:21:03 2011 +0100 @@ -34,20 +34,35 @@ bool Agent::considerAsBeat(Event e, AgentList &a) { double err; if (beatTime < 0) { // first event +#ifdef DEBUG_BEATROOT + std::cerr << "Ag#" << idNumber << ": accepting first event trivially at " << e.time << std::endl; +#endif accept(e, 0, 1); return true; } else { // subsequent events EventList::iterator last = events.end(); --last; if (e.time - last->time > expiryTime) { +#ifdef DEBUG_BEATROOT + std::cerr << "Ag#" << idNumber << ": time " << e.time + << " too late relative to " << last->time << " (expiry " + << expiryTime << "), giving up" << std::endl; +#endif phaseScore = -1.0; // flag agent to be deleted return false; } double beats = nearbyint((e.time - beatTime) / beatInterval); err = e.time - beatTime - beats * beatInterval; +#ifdef DEBUG_BEATROOT + std::cerr << "Ag#" << idNumber << ": time " << e.time << ", err " << err << " for beats " << beats << std::endl; +#endif if ((beats > 0) && (-preMargin <= err) && (err <= postMargin)) { - if (fabs(err) > innerMargin) // Create new agent that skips this - a.add(Agent(*this)); // event (avoids large phase jump) + if (fabs(err) > innerMargin) { // Create new agent that skips this +#ifdef DEBUG_BEATROOT + std::cerr << "Ag#" << idNumber << ": creating another new agent" << std::endl; +#endif + a.add(clone()); // event (avoids large phase jump) + } accept(e, err, (int)beats); return true; }