Revision 23:633ec097fa56 BeatTracker.cpp
| BeatTracker.cpp | ||
|---|---|---|
| 15 | 15 |
|
| 16 | 16 |
#include "BeatTracker.h" |
| 17 | 17 |
|
| 18 |
EventList BeatTracker::beatTrack(EventList events, EventList beats) |
|
| 18 |
EventList BeatTracker::beatTrack(AgentParameters params, |
|
| 19 |
EventList events, EventList beats) |
|
| 19 | 20 |
{
|
| 20 | 21 |
AgentList agents; |
| 21 | 22 |
int count = 0; |
| ... | ... | |
| 28 | 29 |
} |
| 29 | 30 |
if (count > 0) { // tempo given by mean of initial beats
|
| 30 | 31 |
double ioi = (beatTime - beats.begin()->time) / count; |
| 31 |
agents.push_back(new Agent(ioi)); |
|
| 32 |
agents.push_back(new Agent(params, ioi));
|
|
| 32 | 33 |
} else // tempo not given; use tempo induction |
| 33 |
agents = Induction::beatInduction(events); |
|
| 34 |
agents = Induction::beatInduction(params, events);
|
|
| 34 | 35 |
if (!beats.empty()) |
| 35 | 36 |
for (AgentList::iterator itr = agents.begin(); itr != agents.end(); |
| 36 | 37 |
++itr) {
|
| ... | ... | |
| 38 | 39 |
(*itr)->beatCount = count; |
| 39 | 40 |
(*itr)->events = beats; |
| 40 | 41 |
} |
| 41 |
agents.beatTrack(events, -1); |
|
| 42 |
agents.beatTrack(events, params, -1);
|
|
| 42 | 43 |
Agent *best = agents.bestAgent(); |
| 43 | 44 |
EventList results; |
| 44 | 45 |
if (best) {
|
Also available in: Unified diff