Mercurial > hg > beatroot-vamp
comparison Agent.cpp @ 8:f04f87b5e643
Add agent list class, and continue plodding through
author | Chris Cannam |
---|---|
date | Fri, 30 Sep 2011 11:37:25 +0100 |
parents | 02d388f98c23 |
children | 4f6626f9ffac |
comparison
equal
deleted
inserted
replaced
7:3c11becfc81a | 8:f04f87b5e643 |
---|---|
30 double Agent::outerMargin = 0.0; | 30 double Agent::outerMargin = 0.0; |
31 double Agent::correctionFactor = 0.0; | 31 double Agent::correctionFactor = 0.0; |
32 double Agent::expiryTime = 0.0; | 32 double Agent::expiryTime = 0.0; |
33 double Agent::decayFactor = 0.0; | 33 double Agent::decayFactor = 0.0; |
34 | 34 |
35 bool Agent::considerAsBeat(Event e, const AgentList &a) { | 35 bool Agent::considerAsBeat(Event e, AgentList &a) { |
36 double err; | 36 double err; |
37 if (beatTime < 0) { // first event | 37 if (beatTime < 0) { // first event |
38 accept(e, 0, 1); | 38 accept(e, 0, 1); |
39 return true; | 39 return true; |
40 } else { // subsequent events | 40 } else { // subsequent events |
41 if (e.keyDown - events.l.getLast().keyDown > expiryTime) { | 41 if (e.time - events.l.getLast().keyDown > expiryTime) { |
42 phaseScore = -1.0; // flag agent to be deleted | 42 phaseScore = -1.0; // flag agent to be deleted |
43 return false; | 43 return false; |
44 } | 44 } |
45 double beats = Math.round((e.keyDown - beatTime) / beatInterval); | 45 double beats = nearbyint((e.time - beatTime) / beatInterval); |
46 err = e.keyDown - beatTime - beats * beatInterval; | 46 err = e.time - beatTime - beats * beatInterval; |
47 if ((beats > 0) && (-preMargin <= err) && (err <= postMargin)) { | 47 if ((beats > 0) && (-preMargin <= err) && (err <= postMargin)) { |
48 if (Math.abs(err) > innerMargin) // Create new agent that skips this | 48 if (fabs(err) > innerMargin) // Create new agent that skips this |
49 a.add(new Agent(this)); // event (avoids large phase jump) | 49 a.push_back(Agent(*this)); // event (avoids large phase jump) |
50 accept(e, err, (int)beats); | 50 accept(e, err, (int)beats); |
51 return true; | 51 return true; |
52 } | 52 } |
53 } | 53 } |
54 return false; | 54 return false; |