MATCH: Music Alignment Tool CHest
Original Release Date: 5 October 2005
Current Version: 0.9.4 (March 2010)
This software performs alignment of audio files using the on-line time
warping (OLTW) algorithm. For details of the implementation see:
- Live
Tracking of Musical Performances
Using On-Line Time Warping, Simon Dixon, DAFx'05, 8th
International Conference on Digital Audio Effects, 20-22 September
2005, Madrid, Spain
- MATCH: A Music Alignment Tool Chest,
Simon Dixon and Gerhard Widmer, ISMIR 2005, 6th International
Conference on Music Information Retrieval, 11-15 September 2005,
London, England
System requirements
Download
Installation
No installation is required. The program should run as is.
Command line arguments
The graphical user interface does not provide access to all functions
of the software, particularly if you wish to specify non-default values
for parameters. In this case, you can run MATCH from the command line
using:
java <java-args> at.ofai.music.match.PerformanceMatcher <match-args>
where <java-args> are arguments to the Java virtual machine (see
Java documentation for more details), and <match-args> are
arguments to MATCH.
JVM arguments
Unless MATCH is specified in the CLASSPATH variable, you will normally
need to specify the location of the software. For example, change to
the directory where match-0.9.4.jar is stored and use:
java -cp match-0.9.4.jar at.ofai.music.match.PerformanceMatcher ...
If you get an out of memory (heap space) exception, you will need to
set a platform-specific option. For example, on Linux, use the
following to allow the system to use up to 1000MB of memory:
java -Xmx1000m at.ofai.music.match.PerformanceMatcher ...
MATCH arguments
The following arguments are available, but not all are useful,
functional or sufficiently documented. Note that a number of arguments
assume that exactly 2 input files are also specified on the command
line.
- -f frameTime size of FFT (in seconds, default
0.04644)
- -h hopTime
spacing of audio frames (in seconds, default 0.020)
- -c calculatedTime the width of
the band of the matrix which is calculated (in seconds, default 10.0)
- -x maxFrames stop after maxFrames frames have
been processed
- -n1 normalise FFT frames before comparison
- -N1 do not normalise FFT frames before comparison
(default)
- -n2 normalise distance metric
- -N2 do not normalise distance metric (default)
- -n3 normalise
- -N3 do not normalise (default)
- -n4 normalise
- -N4 do not normalise
- -d use half-wave rectified spectral difference (default)
- -D do not use half-wave rectified spectral difference
- -s scale set scaling factor for distance
metric (default 90)
- -b set batch mode
- -B set non-batch mode (default)
- -g show the usual GUI
(default; implies -B)
- -G do not show the usual
GUI
- -v show the matrix while
matching (implies -B)
- -V do not show the matrix
while matching (default)
- -q (quiet) do not output
debugging information (default)
- -Q output debugging
information
- -smooth length set smoothing window size to
length
- -a audio out (file 1)
- -A audio out (file 2)
- -r sessionFile restore a session saved from MATCH
- -m1 matchFile1 offset1
specify a "Match" file and start time for input file 1
- -m2 matchFile2 offset2
specify a "Match" file and start time for input file 2
- -w1 wormFile1 specify a "Worm" file for input
file 1
- -w2 wormFile2 specify a "Worm" file for input
file 2
- -l live input from sound card (file 1)
- -L live input from sound card (file 2)
- -w live worm output (file 1)
- -W live worm output (file 2)
- -z fileName worm output (map file 1 to 2)
- -Z fileName worm output (map file 2 to 1)
Shortcut Keys
Most of the GUI functions are also available via
shortcut keys. There are also a number of keys which provide functions
which are not available directly from the GUI. Most of these are
briefly explained in the help window (use the 'h' key to open the help
window). One day these should be built into menus.
- 'z' - play
- 'x' - pause
- 'c' - stop
- 'v','LEFT' - go to previous mark
- 'b' - add/remove mark at current position
- 'n','RIGHT' - go to next mark
- 'm' - load new audio file
- 'o' - clear all audio files
- 's' - save session
- 'r' - restore session
- 'w' - write worm file format [?]
- 'p' - print screenshot
- 'SPACE' - toggle play/pause
- ',' - continue mode: plays from current position
- '.' - repeat mode: plays from previous mark
- 'UP' - go to previous file
- 'DOWN' - go to next file
- '1'...'9' - go to file number n
- '0' - go to file number 10
- 'h','/' - show this help screen
- 'q','ESCAPE' - exit
File Format
The format for storing and loading session information, including
alignments, marks, and corrections to the alignment path ("fixed
points") is described here. Warning: no guarantee is made that
future versions of MATCH will be compatible with this file format.
All information is stored in a single text file, containing a block for
each file in order. Each file description block contains the following
lines:
- the string "File: " followed by the path name of the file
- the string "Marks: " followed by an integer which is either
- -1 if this file is not the currently selected file
- a non-negative integer (n1) indicating the number of marked positions in the file
- if n1 > 0, then the following n1 lines list the locations of the marks, in bytes, from the beginning of the audio data (i.e. not including the header in the audio file)
- the string "FixedPoints: " followed by the string "true " or
"false " indicating whether the first of each pair of coordinates
refers to this file or the reference file respectively; followed by the
number of fixed points, n2
- if n2 > 0, the following n2 pairs of lines contain the
coordinates of the fixed points, in units of frames, one number per line
- the hop size (in seconds) of this file (or 0 if this is the reference file)
- the hop size (in seconds) of the reference file (or 0 if this is the reference file)
- the length of the alignment path, n3 (0 if this is the reference file)
- if n3 > 0, the following n3 lines contain this file's frame index values for the alignment path
- the length of the alignment path, n3 (0 if this is the reference file)
- if n3 > 0, the following n3 lines contain the reference file's frame index values for the alignment path
Links
Updated 23 July 2010