Central agency responsible for causally evaluating a pool of active BeatAgents around each beat prediction, and selecting the best one at each time ("frame" - tick), based on a given heuristics (score function) which affers the goodness-of-fit between each agent prediction and local maxima in the observed data (given by the onset detection function calculated by the
Spectral Flux).
More...
#include <BeatReferee.h>
Inherits Marsyas::MarSystem.
Detailed Description
Central agency responsible for causally evaluating a pool of active BeatAgents around each beat prediction, and selecting the best one at each time ("frame" - tick), based on a given heuristics (score function) which affers the goodness-of-fit between each agent prediction and local maxima in the observed data (given by the onset detection function calculated by the
Spectral Flux).
Given such, this entity is responsible for:
- determine the best agent at each time, whose beats are validated;
- adjust each agent's current beat rate (period) and phase hypotheses, in order to compensate eventual rhythmic deviations;
- create new agents to follow alternative metrical paths (at most three children are created at each request);
- terminate an agent operation if: it has become obsolete (if its score insignificant in comparison to the best agent’s); it is found to be duplicating the work of another agent.
Input: Matrix with the beat information from each BeatAgent of the pool (restricted to a defined maximum of M agents):
[Beati/Evali/Nonei|Periodi|PrevBeatTimei|Inneri/Outteri|Errori|dScorei] [ ... | ... | ... | ... | ... | ... ] [BeatM/EvalM/NoneM|PeriodM|PrevBeatTimeM|InnerM/OutterM|ErrorM|dScoreM]
Output: [BEAT/~BEAT]
Controls:
- mrs_realvec/mutedAgents [rw] : BeatAgents' pool (Fanout) enable/disable flags vector.
- mrs_realvec/inductionEnabler [rw] : Induction stage (Fanout) enable/disable flag vector.
- mrs_realvec/firstHypotheses [r] : vector with the first N {period, phase} hypotheses retrieved from the beat induction stage
- mrs_natural/inductionTime [r] : time (in tick counts) dispended in the initial induction stage.
- mrs_natural/hopSize [r] : hop size of the analysis.
- mrs_real/srcFs [r] : input sampling rate.
- mrs_natural/maxTempo [r] : maximum tempo considered (in BPMs)
- mrs_natural/minTempo [r] : minimum tempo considered (in BPMs)
- mrs_realvec/agentControl [w] : feedback matrix for controlling each BeatAgent's {period, phase} hypotheses, their lifecycle and timming situation.
- mrs_real/beatDetected [w] : flag for triggering beats to the noise (clicks) synthesizer.
- mrs_natural/tickCount [w] : control for sharing the current considered time (tick count) with the annotation output block (BeatTimesSink).
- mrs_real/obsoleteFactor [r] : an agent is killed if, at any time (after the initial 5secs), the difference between its score and the current bestScore is below obsoleteFactor * bestScore.
- mrs_real/childrenScoreFactor [r] : (inertia1) each created agent imports its father score decremented by the current father's score multiplied by this factor.
- mrs_real/bestFactor [r] : (inertia2) mutiple of the current bestScore an agent's score must have for replacing the current best agent.
- mrs_natural/eqPhase [r] : phase (in ticks) threshold which identifies two agents as predicting the same phase (the worst duplicated agent is killed).
- mrs_natural/eqPeriod [r] : period (IBI, in ticks) threshold which identifies two agents as predicting the same period (the worst duplicated agent is killed).
- mrs_real/corFactor [r] : correction factor for compensating each agents' own {phase, period} hypothesis errors.
- mrs_real/child1Factor [r] : correction factor (error proportion) of child1 for compensating its father's {phase, period} hypothesis - when error outside innerWindow tolerance.
- mrs_real/child2Factor [r] : correction factor (error proportion) of child2 for compensating its father's {phase, period} hypothesis - when error outside innerWindow tolerance.
- mrs_real/child3Factor [r] : correction factor (error proportion) of child3 for compensating its father's {phase, period} hypothesis - when error outside innerWindow tolerance.
- mrs_natural/metricalChangeTime [r] : initial time (in ticks) allowed for eventual metrical changes within tracking.
- mrs_bool/backtrace [r] : flag for backtracing the analysis to the beginning, after the induction stage.
Definition at line 77 of file BeatReferee.h.
The documentation for this class was generated from the following files: