Mercurial > hg > beatroot-vamp
comparison 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 |
comparison
equal
deleted
inserted
replaced
11:7169eb47b1bc | 12:59520cd6abac |
---|---|
32 double Agent::decayFactor = 0.0; | 32 double Agent::decayFactor = 0.0; |
33 | 33 |
34 bool Agent::considerAsBeat(Event e, AgentList &a) { | 34 bool Agent::considerAsBeat(Event e, AgentList &a) { |
35 double err; | 35 double err; |
36 if (beatTime < 0) { // first event | 36 if (beatTime < 0) { // first event |
37 #ifdef DEBUG_BEATROOT | |
38 std::cerr << "Ag#" << idNumber << ": accepting first event trivially at " << e.time << std::endl; | |
39 #endif | |
37 accept(e, 0, 1); | 40 accept(e, 0, 1); |
38 return true; | 41 return true; |
39 } else { // subsequent events | 42 } else { // subsequent events |
40 EventList::iterator last = events.end(); | 43 EventList::iterator last = events.end(); |
41 --last; | 44 --last; |
42 if (e.time - last->time > expiryTime) { | 45 if (e.time - last->time > expiryTime) { |
46 #ifdef DEBUG_BEATROOT | |
47 std::cerr << "Ag#" << idNumber << ": time " << e.time | |
48 << " too late relative to " << last->time << " (expiry " | |
49 << expiryTime << "), giving up" << std::endl; | |
50 #endif | |
43 phaseScore = -1.0; // flag agent to be deleted | 51 phaseScore = -1.0; // flag agent to be deleted |
44 return false; | 52 return false; |
45 } | 53 } |
46 double beats = nearbyint((e.time - beatTime) / beatInterval); | 54 double beats = nearbyint((e.time - beatTime) / beatInterval); |
47 err = e.time - beatTime - beats * beatInterval; | 55 err = e.time - beatTime - beats * beatInterval; |
56 #ifdef DEBUG_BEATROOT | |
57 std::cerr << "Ag#" << idNumber << ": time " << e.time << ", err " << err << " for beats " << beats << std::endl; | |
58 #endif | |
48 if ((beats > 0) && (-preMargin <= err) && (err <= postMargin)) { | 59 if ((beats > 0) && (-preMargin <= err) && (err <= postMargin)) { |
49 if (fabs(err) > innerMargin) // Create new agent that skips this | 60 if (fabs(err) > innerMargin) { // Create new agent that skips this |
50 a.add(Agent(*this)); // event (avoids large phase jump) | 61 #ifdef DEBUG_BEATROOT |
62 std::cerr << "Ag#" << idNumber << ": creating another new agent" << std::endl; | |
63 #endif | |
64 a.add(clone()); // event (avoids large phase jump) | |
65 } | |
51 accept(e, err, (int)beats); | 66 accept(e, err, (int)beats); |
52 return true; | 67 return true; |
53 } | 68 } |
54 } | 69 } |
55 return false; | 70 return false; |