at.ofai.music.beatroot

Class Induction

class Induction extends 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 doubleclusterWidth
The maximum difference in IOIs which are in the same cluster
static booleandebug
Flag to enable debugging output
static doublemaxIBI
The maximum inter-beat interval (IBI), i.e. the minimum tempo hypothesis that can be returned.
static doublemaxIOI
The maximum IOI for inclusion in a cluster
static doubleminIBI
The minimum inter-beat interval (IBI), i.e. the maximum tempo hypothesis that can be returned.
static doubleminIOI
The minimum IOI for inclusion in a cluster
static inttopN
The maximum number of tempo hypotheses to return
Method Summary
static AgentListbeatInduction(EventList events)
Performs tempo induction (see JNMR 2001 paper by Simon Dixon for details).
static voidnewInduction(EventList events)
An alternative (incomplete) tempo induction method (not used).
protected static inttop(int low)
For variable cluster widths in newInduction().

Field Detail

clusterWidth

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

debug

public static boolean debug
Flag to enable debugging output

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

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

minIOI

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

topN

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

Method Detail

beatInduction

public static AgentList beatInduction(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

newInduction

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

Parameters: events The events on which tempo induction is performed

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