at.ofai.music.beatroot
Class Induction

java.lang.Object
  extended by at.ofai.music.beatroot.Induction

 class Induction
extends java.lang.Object

Performs tempo induction by finding clusters of similar inter-onset intervals (IOIs), ranking them according to the number of intervals and relationships between them, and returning a set of tempo hypotheses for initialising the beat tracking agents.


Field Summary
static double clusterWidth
          The maximum difference in IOIs which are in the same cluster
static boolean debug
          Flag to enable debugging output
static double maxIBI
          The maximum inter-beat interval (IBI), i.e.
static double maxIOI
          The maximum IOI for inclusion in a cluster
static double minIBI
          The minimum inter-beat interval (IBI), i.e.
static double minIOI
          The minimum IOI for inclusion in a cluster
static int topN
          The maximum number of tempo hypotheses to return
 
Constructor Summary
Induction()
           
 
Method Summary
static AgentList beatInduction(at.ofai.music.util.EventList events)
          Performs tempo induction (see JNMR 2001 paper by Simon Dixon for details).
static void newInduction(at.ofai.music.util.EventList events)
          An alternative (incomplete) tempo induction method (not used).
protected static int top(int low)
          For variable cluster widths in newInduction().
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

clusterWidth

public static double clusterWidth
The maximum difference in IOIs which are in the same cluster


minIOI

public static double minIOI
The minimum IOI for inclusion in a cluster


maxIOI

public static double maxIOI
The maximum IOI for inclusion in a cluster


minIBI

public static double minIBI
The minimum inter-beat interval (IBI), i.e. the maximum tempo hypothesis that can be returned. 0.30 seconds == 200 BPM 0.25 seconds == 240 BPM


maxIBI

public static double maxIBI
The maximum inter-beat interval (IBI), i.e. the minimum tempo hypothesis that can be returned. 1.00 seconds == 60 BPM 0.75 seconds == 80 BPM 0.60 seconds == 100 BPM


topN

public static int topN
The maximum number of tempo hypotheses to return


debug

public static boolean debug
Flag to enable debugging output

Constructor Detail

Induction

Induction()
Method Detail

beatInduction

public static AgentList beatInduction(at.ofai.music.util.EventList events)
Performs tempo induction (see JNMR 2001 paper by Simon Dixon for details).

Parameters:
events - The onsets (or other events) from which the tempo is induced
Returns:
A list of beat tracking agents, where each is initialised with one of the top tempo hypotheses but no beats

top

protected static int top(int low)
For variable cluster widths in newInduction().

Parameters:
low - The lowest IOI allowed in the cluster
Returns:
The highest IOI allowed in the cluster

newInduction

public static void newInduction(at.ofai.music.util.EventList events)
An alternative (incomplete) tempo induction method (not used). Uses integer (millisecond) resolution.

Parameters:
events - The events on which tempo induction is performed