changeset 50:4ae8342d1e3d

Merge from abstract branch
author Chris Cannam
date Sat, 07 Sep 2013 09:51:27 +0100
parents 46151fd36a0a (current diff) 4fe004e09681 (diff)
children 7a37f721538e
files vamp-plugins_abstract/beatroot-vamp-mirex2013.tex vamp-plugins_abstract/cep-mirex2013.tex vamp-plugins_abstract/chordino-mirex2013.tex vamp-plugins_abstract/qmvamp-mirex2013.pdf vamp-plugins_abstract/segmentino-mirex2013.tex
diffstat 13 files changed, 481 insertions(+), 346 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/audio_onset_detection/onsetsds/README.txt	Sat Sep 07 09:51:27 2013 +0100
@@ -0,0 +1,20 @@
+#
+# MIREX 2013 submission
+#
+# Audio Onset Detection
+# Vamp plugin version of OnsetsDS by Dan Stowell
+# Prepared by Chris Cannam, chris.cannam@eecs.qmul.ac.uk
+
+# Dependencies
+
+- Sonic Annotator v1.0
+  http://code.soundsoftware.ac.uk/projects/sonic-annotator/files
+
+- Typical Unix/GNU shell commands
+
+# How to run
+
+In a terminal window run:
+
+./onsetsds.sh input.wav output.txt
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/audio_onset_detection/onsetsds/onsetsds.sh	Sat Sep 07 09:51:27 2013 +0100
@@ -0,0 +1,23 @@
+#!/bin/bash
+# runs sonic annotator using the specified transform file (-t)
+#   input file: $1
+#   output file: $2
+
+mydir=`dirname "$0"`
+infile="$1"
+outfile="$2"
+
+if [ t"$infile" = "t" ] || [ t"$outfile" = "t" ]; then
+    echo "Usage: $0 infile.wav outfile.txt"
+    exit 2
+fi
+
+echo "Processing input WAV file $infile, writing results to $outfile..." 1>&2
+
+VAMP_PATH="$mydir" sonic-annotator \
+    -t "$mydir"/onsetsds.ttl \
+    -w csv --csv-stdout --csv-separator ';' \
+    "$infile" \
+    | cut -d';' -f2 \
+    > "$outfile"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/audio_onset_detection/onsetsds/onsetsds.ttl	Sat Sep 07 09:51:27 2013 +0100
@@ -0,0 +1,28 @@
+@prefix xsd:      <http://www.w3.org/2001/XMLSchema#> .
+@prefix vamp:     <http://purl.org/ontology/vamp/> .
+@prefix :         <#> .
+
+:transform_plugin a vamp:Plugin ;
+    vamp:identifier "onsetsds" .
+
+:transform_library a vamp:PluginLibrary ;
+    vamp:identifier "vamp-onsetsds" ;
+    vamp:available_plugin :transform_plugin .
+
+:transform a vamp:Transform ;
+    vamp:plugin :transform_plugin ;
+    vamp:step_size "256"^^xsd:int ; 
+    vamp:block_size "512"^^xsd:int ; 
+    vamp:parameter_binding [
+        vamp:parameter [ vamp:identifier "dftype" ] ;
+        vamp:value "3"^^xsd:float ;
+    ] ;
+    vamp:parameter_binding [
+        vamp:parameter [ vamp:identifier "medspan" ] ;
+        vamp:value "11"^^xsd:float ;
+    ] ;
+    vamp:parameter_binding [
+        vamp:parameter [ vamp:identifier "threshold" ] ;
+        vamp:value "0.5"^^xsd:float ;
+    ] ;
+    vamp:output [ vamp:identifier "onsets" ] .
Binary file audio_onset_detection/onsetsds/vamp-onsetsds.so has changed
--- a/vamp-plugins_abstract/Makefile	Fri Sep 06 16:14:30 2013 +0100
+++ b/vamp-plugins_abstract/Makefile	Sat Sep 07 09:51:27 2013 +0100
@@ -1,19 +1,7 @@
-all: qmvamp-mirex2013.pdf chordino-mirex2013.pdf segmentino-mirex2013.pdf beatroot-vamp-mirex2013.pdf cep-mirex2013.pdf
+all: qmvamp-mirex2013.pdf
 
 qmvamp-mirex2013.pdf: qmvamp-mirex2013.tex qmvamp-mirex2013.bib
 	( echo q | xelatex qmvamp-mirex2013 ) && bibtex qmvamp-mirex2013 && xelatex qmvamp-mirex2013 && xelatex qmvamp-mirex2013
 
-chordino-mirex2013.pdf: chordino-mirex2013.tex qmvamp-mirex2013.bib
-	( echo q | xelatex chordino-mirex2013 ) && bibtex qmvamp-mirex2013 && xelatex chordino-mirex2013 && xelatex chordino-mirex2013
-
-segmentino-mirex2013.pdf: segmentino-mirex2013.tex qmvamp-mirex2013.bib
-	( echo q | xelatex segmentino-mirex2013 ) && bibtex qmvamp-mirex2013 && xelatex segmentino-mirex2013 && xelatex segmentino-mirex2013
-
-beatroot-vamp-mirex2013.pdf: beatroot-vamp-mirex2013.tex qmvamp-mirex2013.bib
-	( echo q | xelatex beatroot-vamp-mirex2013 ) && bibtex qmvamp-mirex2013 && xelatex beatroot-vamp-mirex2013 && xelatex beatroot-vamp-mirex2013
-
-cep-mirex2013.pdf: cep-mirex2013.tex qmvamp-mirex2013.bib
-	( echo q | xelatex cep-mirex2013 ) && bibtex qmvamp-mirex2013 && xelatex cep-mirex2013 && xelatex cep-mirex2013
-
 clean:
-	rm -f qmvamp-mirex2013.bbl qmvamp-mirex2013.aux qmvamp-mirex2013.blg qmvamp-mirex2013.log chordino-mirex2013.aux chordino-mirex2013.blg chordino-mirex2013.log segmentino-mirex2013.bbl segmentino-mirex2013.aux segmentino-mirex2013.blg segmentino-mirex2013.log beatroot-vamp-mirex2013.bbl beatroot-vamp-mirex2013.aux beatroot-vamp-mirex2013.blg beatroot-vamp-mirex2013.log cep-mirex2013.bbl cep-mirex2013.aux cep-mirex2013.blg cep-mirex2013.log
+	rm -f qmvamp-mirex2013.bbl qmvamp-mirex2013.aux qmvamp-mirex2013.blg qmvamp-mirex2013.log 
--- a/vamp-plugins_abstract/beatroot-vamp-mirex2013.tex	Fri Sep 06 16:14:30 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-% -----------------------------------------------
-% Template for MIREX 2010
-% (based on ISMIR 2010 template)
-% -----------------------------------------------
-
-\documentclass{article}
-\usepackage{mirex2010,amsmath,cite}
-\usepackage{graphicx}
-
-% Title.
-% ------
-\title{MIREX 2013 Entry: BeatRoot Vamp Plugin}
-
-% Single address
-% To use with only one author or several with the same address
-% ---------------
-%\oneauthor
-% {Names should be omitted for double-blind reviewing}
-% {Affiliations should be omitted for double-blind reviewing}
-
-% Two addresses
-% --------------
-%\twoauthors
-%{Chris Cannam} {Affiliation1 \\ {\tt author1@music-ir.org}}
-%{Lu\'{i}s A. Figueira} {Affiliation2 \\ {\tt author2@music-ir.org}}
-
-% Three addresses
-% --------------
- \threeauthors
-  {Chris Cannam} {Affiliation1 \\ {\tt author1@music-ir.org}}
-  {Lu\'{i}s A. Figueira} {Affiliation2 \\ {\tt author2@music-ir.org}}
-  {Simon Dixon} {Affiliation3 \\ {\tt author3@music-ir.org}}
-
-\begin{document}
-%
-\maketitle
-%
-\begin{abstract}
-
-The BeatRoot Vamp Plugin is an open source Vamp plugin library that
-implements the BeatRoot beat-tracking method of Simon Dixon\cite{!!!!}.
-
-This plugin library is available online as a free, open source
-download from the Centre for Digital Music at Queen Mary, University
-of London. The BeatRoot algorithm has been submitted to MIREX
-evaluation in earlier years\cite{!!!}; we are preparing and submitting
-this plugin version of the work as part of a programme of evaluation
-of Vamp plugin implementations of published or publicly available
-algorithms being carried out at the Centre for Digital Music.
-
-(For a complete overview of this submission across all of the tasks and
-plugins it covers, please see the relevant repository at the
-SoundSoftware
-site\footnote{http://code.soundsoftware.ac.uk/projects/mirex2013}.)
-
-\end{abstract}
-%
-\section{Introduction}\label{sec:introduction}
-
-describe vamp
-describe rationale supporting submission\ldots
-
-
-\bibliography{qmvamp-mirex2013}
-
-\end{document}
--- a/vamp-plugins_abstract/cep-mirex2013.tex	Fri Sep 06 16:14:30 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-% -----------------------------------------------
-% Template for MIREX 2010
-% (based on ISMIR 2010 template)
-% -----------------------------------------------
-
-\documentclass{article}
-\usepackage{mirex2010,amsmath,cite}
-\usepackage{graphicx}
-
-% Title.
-% ------
-\title{MIREX 2013 Entry: Cepstral Pitch Tracker Vamp Plugin}
-
-% Single address
-% To use with only one author or several with the same address
-% ---------------
-%\oneauthor
-% {Names should be omitted for double-blind reviewing}
-% {Affiliations should be omitted for double-blind reviewing}
-
-% Two addresses
-% --------------
-\twoauthors
-{Chris Cannam} {Affiliation1 \\ {\tt author1@music-ir.org}}
-{Lu\'{i}s A. Figueira} {Affiliation2 \\ {\tt author2@music-ir.org}}
-
-% Three addresses
-% --------------
-% \threeauthors
-%  {Chris Cannam} {Affiliation1 \\ {\tt author1@music-ir.org}}
-%  {Lu\'{i}s A. Figueira} {Affiliation2 \\ {\tt author2@music-ir.org}}
-%  {Simon Dixon} {Affiliation3 \\ {\tt author3@music-ir.org}}
-
-\begin{document}
-%
-\maketitle
-%
-\begin{abstract}
-
-The Cepstral Pitch Tracker Vamp Plugin is an open source Vamp plugin
-library that implements a monophonic pitch tracking and note
-segmentation method.
-
-This plugin library is available online as a free, open source
-download from the Centre for Digital Music at Queen Mary, University
-of London. It was initially developed as an illustration of the use of
-unit testing in development of audio research algorithms; we are now
-preparing and submitting it as part of a programme of evaluation of
-Vamp plugin implementations of published or publicly available
-algorithms being carried out at the Centre for Digital Music.
-
-(For a complete overview of this submission across all of the tasks and
-plugins it covers, please see the relevant repository at the
-SoundSoftware
-site\footnote{http://code.soundsoftware.ac.uk/projects/mirex2013}.)
-
-\end{abstract}
-%
-\section{Introduction}\label{sec:introduction}
-
-describe vamp
-describe rationale supporting submission\ldots
-
-
-\bibliography{qmvamp-mirex2013}
-
-\end{document}
--- a/vamp-plugins_abstract/chordino-mirex2013.tex	Fri Sep 06 16:14:30 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-% -----------------------------------------------
-% Template for MIREX 2010
-% (based on ISMIR 2010 template)
-% -----------------------------------------------
-
-\documentclass{article}
-\usepackage{mirex2010,amsmath,cite}
-\usepackage{graphicx}
-
-% Title.
-% ------
-\title{MIREX 2013 Entry: Chordino Vamp Plugin}
-
-% Single address
-% To use with only one author or several with the same address
-% ---------------
-%\oneauthor
-% {Names should be omitted for double-blind reviewing}
-% {Affiliations should be omitted for double-blind reviewing}
-
-% Two addresses
-% --------------
-%\twoauthors
-%{Chris Cannam} {Affiliation1 \\ {\tt author1@music-ir.org}}
-%{Lu\'{i}s A. Figueira} {Affiliation2 \\ {\tt author2@music-ir.org}}
-
-% Three addresses
-% --------------
- \threeauthors
-  {Chris Cannam} {Affiliation1 \\ {\tt author1@music-ir.org}}
-  {Lu\'{i}s A. Figueira} {Affiliation2 \\ {\tt author2@music-ir.org}}
-  {Matthias Mauch} {Affiliation3 \\ {\tt author3@music-ir.org}}
-
-\begin{document}
-%
-\maketitle
-%
-\begin{abstract}
-
-Chordino is an open source Vamp plugin library for harmony and chord
-extraction with some features aimed at amateur musicians, and some at
-music information retrieval researchers.
-
-This plugin library has been available online as a free, open source
-download from the Centre for Digital Music at Queen Mary, University
-of London since late 2010. A related method was submitted to MIREX in
-2010 by Matthias Mauch\cite{mauch:md1:2010}. We are now preparing and
-submitting this plugin version of his work as part of a programme of
-evaluation of Vamp plugin implementations of published or publicly
-available algorithms being carried out at the Centre for Digital
-Music.
-
-(For a complete overview of this submission across all of the tasks and
-plugins it covers, please see the relevant repository at the
-SoundSoftware
-site\footnote{http://code.soundsoftware.ac.uk/projects/mirex2013}.)
-
-\end{abstract}
-%
-\section{Introduction}\label{sec:introduction}
-
-desccibe vamp
-describe rationale supporting submission\ldots
-
-
-\bibliography{qmvamp-mirex2013}
-
-\end{document}
--- a/vamp-plugins_abstract/mirex2010.sty	Fri Sep 06 16:14:30 2013 +0100
+++ b/vamp-plugins_abstract/mirex2010.sty	Sat Sep 07 09:51:27 2013 +0100
@@ -1,7 +1,7 @@
 % Latex Paper Template for ISMIR 2010
 % Version 20100113
 % changed 2009 -> 2010
-% \bibliographystyle{unsrt} -> \bibliographystyle{plain} 
+% \bibliographystyle{unsrt} -> \bibliographystyle{plain}
 %
 % Version 20090507
 % The specification of reference order was corrected.
@@ -10,7 +10,7 @@
 % Version 20090430
 % A problem regarding references to sections was fixed.
 % This caused doubled periods at the end of sentences.
-% Example: Section \ref{sec:introduction} 
+% Example: Section \ref{sec:introduction}
 % Old version: Section 1.
 % New version: Section 1 (period was removed)
 
@@ -18,7 +18,7 @@
 \newcommand{\bm}[1]{\mbox{\boldmath{$#1$}}}
 \newcommand{\range}[2]{{#1,\cdots,#2\;}}
 \newcommand{\secref}[1]{\mbox{Section~\ref{#1}}}
-\newcommand{\tabref}[1]{\mbox{Table~\ref{#1}}} 
+\newcommand{\tabref}[1]{\mbox{Table~\ref{#1}}}
 \newcommand{\figref}[1]{\mbox{Figure~\ref{#1}}}
 \newcommand{\eqnref}[1]{\mbox{Eqn. (\ref{#1})}}
 
@@ -44,16 +44,16 @@
 \setlength\parskip{0\p@ \@plus \p@}
 %\def\baselinestretch{0.98}
 
-\def\normalsize{\@setsize\normalsize{12.2pt}\xpt\@xpt} 
-\def\small{\@setsize\small{10pt}\ixpt\@ixpt} 
-\def\footnotesize{\@setsize\footnotesize{9pt}\viiipt\@viiipt} 
-\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} 
-\def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} 
-\def\large{\@setsize\large{14pt}\xiipt\@xiipt} 
-\def\Large{\@setsize\Large{16pt}\xivpt\@xivpt} 
-\def\LARGE{\@setsize\LARGE{20pt}\xviipt\@xviipt} 
-\def\huge{\@setsize\huge{23pt}\xxpt\@xxpt} 
-\def\Huge{\@setsize\Huge{28pt}\xxvpt\@xxvpt} 
+\def\normalsize{\@setsize\normalsize{12.2pt}\xpt\@xpt}
+\def\small{\@setsize\small{10pt}\ixpt\@ixpt}
+\def\footnotesize{\@setsize\footnotesize{9pt}\viiipt\@viiipt}
+\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
+\def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
+\def\large{\@setsize\large{14pt}\xiipt\@xiipt}
+\def\Large{\@setsize\Large{16pt}\xivpt\@xivpt}
+\def\LARGE{\@setsize\LARGE{20pt}\xviipt\@xviipt}
+\def\huge{\@setsize\huge{23pt}\xxpt\@xxpt}
+\def\Huge{\@setsize\Huge{28pt}\xxvpt\@xxvpt}
 
 \twocolumn
 \pagestyle{empty}
@@ -91,7 +91,7 @@
   \vskip 2.0em {
     \large \lineskip .5em
     \begin{tabular}[t]{c}
-    \@author \\ 
+    \@author \\
     \end{tabular}
     \par
   }
@@ -112,11 +112,12 @@
 \end{figure}
 }
 
-\def\oneauthor#1#2{
+\def\oneauthor#1#2#3{
   \gdef\@author{
   \begin{tabular}{@{}c@{}}
     {\bf #1} \\
-    #2\relax
+    {\bf #2} \\
+    #3\relax
    \end{tabular}\hskip .3in
   }
 }
@@ -165,7 +166,7 @@
 
 \renewcommand\section{
   \@ismirsectiontrue
-  \@startsection 
+  \@startsection
   {section}
   {1}
   {\z@}
@@ -176,25 +177,25 @@
 
 \renewcommand\subsection{
   \@ismirsectionfalse
-  \@startsection 
+  \@startsection
   {subsection}
   {2}
   {\z@}
   {-2.5ex \@plus -1ex \@minus -.2ex}
   {6pt \@plus.2ex}
   {\normalsize\bf\raggedright}
-} 
+}
 
 \renewcommand\subsubsection{
   \@ismirsectionfalse
-  \@startsection 
+  \@startsection
   {subsubsection}
   {3}
   {\z@}
   {-1.5ex \@plus -1ex \@minus -.2ex}
   {6pt \@plus.2ex}
   {\normalsize\it\raggedright}
-} 
+}
 
 \def\@sect#1#2#3#4#5#6[#7]#8{
   \refstepcounter{#1}
@@ -203,7 +204,7 @@
   \else
     \edef\@svsec{\csname the#1\endcsname\hskip 0.6em}
   \fi
-  \begingroup 
+  \begingroup
     \ifnum #2=1
       \bf\centering{\interlinepenalty \@M \@svsec\uppercase{#8}\par}
     \else
@@ -247,9 +248,9 @@
 \long\def\@makecaption#1#2{
   \vskip 10pt
   \setbox\@tempboxa\hbox{#1. #2}
-  \ifdim 
-    \wd\@tempboxa >\hsize #1. #2\par 
-  \else 
+  \ifdim
+    \wd\@tempboxa >\hsize #1. #2\par
+  \else
     \hbox
     to\hsize{\hfil\box\@tempboxa\hfil}
   \fi
--- a/vamp-plugins_abstract/qmvamp-mirex2013.bib	Fri Sep 06 16:14:30 2013 +0100
+++ b/vamp-plugins_abstract/qmvamp-mirex2013.bib	Sat Sep 07 09:51:27 2013 +0100
@@ -8,10 +8,124 @@
   year = {2007}
 }
 
+@article{ellis2007,
+ author = {D. P. W. Ellis},
+ title = {Beat Tracking by Dynamic Programming},
+ journal = {Journal of New Music Research},
+ volume = {37},
+ number = {1},
+ pages = {51-60},
+ year = {2007}
+} 
+
+@inproceedings{dan2007a,
+  author = {Dan Stowell and Mark D. Plumbley},
+  title = {Adaptive whitening for improved real-time audio onset detection},
+  booktitle = {Proceedings of the International Computer Music Conference (ICMC'07)},
+  year = {2007}
+}
+
+@inproceedings{chris2003a,
+  author = {Chris Duxbury and Juan Pablo Bello and Mike Davies and Mark Sandler},
+  title = {Complex Domain Onset Detection for Musical Signals},
+  booktitle = {Proceedings of the 6th Int. Conference on Digital Audio Effects (DAFx-03) },
+  year = {2003}
+}
+
+@inproceedings{dan2005a,
+  author = {Dan Barry and Derry Fitzgerald and Eugene Coyle and Bob Lawlor},
+  title = {Drum Source Separation using Percussive Feature Detection and Spectral Modulation},
+  booktitle = {ISSC 2005},
+  year = {2005}
+}
+
+ @article{mark2008a,
+  author = {Mark Levy and Mark Sandler},
+  title = {Structural Segmentation of Musical Audio by Constrained Clustering},
+  journal = {IEEE Transactions on Audio, Speech, and Language Processing},
+  month = {February},
+  number = {2},
+  pages = {318-326},
+  volume = {16},
+  year = {2008}
+}
+
+@conference{noland2007signal,
+        title={Signal Processing Parameters for Tonality Estimation},
+        author={Noland, Katy and Sandler, Mark},
+        booktitle={Audio Engineering Society Convention 122},
+        month={May},
+        year={2007}
+}
+
+ @inproceedings{sonicvisualise2010,
+  author = {Chris Cannam and Christian Landone and Mark Sandler},
+  title = {Sonic Visualiser: An Open Source Application for Viewing, Analysing, and Annotating Music Audio Files},
+  booktitle = {Proceedings of the ACM Multimedia 2010 International Conference},
+  year = {2010}
+}
+
+@BOOK{krumhansl1990,
+    AUTHOR    = {C. L. Krumhansl},
+    TITLE     = {Cognitive Foundations of Musical Pitch},
+    PUBLISHER = {Oxford University Press},
+    YEAR      = {1990}
+}
+
+@article {gomez2006,
+    title = {Tonal description of polyphonic audio for music content processing},
+    journal = {INFORMS Journal on Computing, Special Cluster on Computation in Music},
+    volume = {18},
+    year = {2006},
+    author = {Emilia G{\'o}mez}
+}
+
 @incollection{mauch:md1:2010,
 	Author = {Matthias Mauch and Simon Dixon},
-	Booktitle = {Submissions to MIREX 2010},
-	Publisher = {Graduate School of Library Information Science University of Illinois at Urbana-Champaign},
 	Title = {MIREX 2010: Chord Detection Using a Dynamic Bayesian Network},
-	Year = {2010}}
+	Year = {2010}
+}
 
+ @inproceedings{matthias2010a,
+  author = {Matthias Mauch and Simon Dixon},
+  title = {Approximate Note Transcription for the Improved Identification of Difficult Chords},
+  booktitle = {Proceedings of the 11th International Society for Music Information Retrieval Conference (ISMIR 2010)},
+  year = {2010}
+} 
+
+ @inproceedings{matthias2009a,
+  author = {Matthias Mauch and Katy C. Noland and Dixon, Simon},
+  title = {Using Musical Structure to Enhance Automatic Chord Transcription},
+  booktitle = {Proceedings of the 10th International Conference on Music Information Retrieval (ISMIR 2009)},
+  pages = {231-236},
+  year = {2009}
+} 
+
+ @phdthesis{matthiasphd,
+  author = {Matthias Mauch},
+  title = {Automatic Chord Transcription from Audio Using Computational Models of Musical Context},
+  school = {Queen Mary, University of London},
+  year = {2010}
+} 
+
+@misc{chris2012a,
+  author = {Chris Cannam},
+  title = {Unit testing: An audio research example},
+  howpublished = {Handout},
+  note = {One of the single-page handouts made available at DAFx and ISMIR 2012 tutorials. See http://www.soundsoftware.ac.uk/handouts-guides for more information.},
+  year = {2012}
+} 
+
+ @inproceedings{simon2006a,
+  author = {Simon Dixon},
+  title = {MIREX 2006 Audio Beat Tracking Evaluation: BeatRoot},
+  year = {2006}
+} 
+
+ @inproceedings{simon2001a,
+  author = {Simon Dixon},
+  title = {An Interactive Beat Tracking and Visualisation System},
+  booktitle = {Proceedings of the 2001 International Computer Music Conference (ICMC'2001)},
+  year = {2001}
+} 
+
Binary file vamp-plugins_abstract/qmvamp-mirex2013.pdf has changed
--- a/vamp-plugins_abstract/qmvamp-mirex2013.tex	Fri Sep 06 16:14:30 2013 +0100
+++ b/vamp-plugins_abstract/qmvamp-mirex2013.tex	Sat Sep 07 09:51:27 2013 +0100
@@ -9,72 +9,299 @@
 
 % Title.
 % ------
-\title{MIREX 2013 Entry: VAMP Plugins}
+\title{MIREX 2013 Entry: Vamp Plugins from the Centre for Digital Music}
 
 % Single address
 % To use with only one author or several with the same address
 % ---------------
-%\oneauthor
-% {Names should be omitted for double-blind reviewing}
-% {Affiliations should be omitted for double-blind reviewing}
-
-% Two addresses
-% --------------
-\twoauthors
-{Chris Cannam} {Affiliation1 \\ {\tt author1@music-ir.org}}
-{Lu\'{i}s A. Figueira} {Affiliation2 \\ {\tt author2@music-ir.org}}
-
-% Three addresses
-% --------------
-% \threeauthors
-  % {Chris Cannam} {Affiliation1 \\ {\tt author1@music-ir.org}}
-  % {Lu\'{i}s A. Figueira} {Affiliation2 \\ {\tt author2@music-ir.org}}
-  % {Matthias Mauch} {Affiliation3 \\ {\tt author3@music-ir.org}}
+\oneauthor
+{Chris Cannam, Matthias Mauch, Matthew E. P. Davies, Simon Dixon, Christian Landone,}
+{Katy Noland, Mark Levy, Massimiliano Zanoni, Dan Stowell and Lu\'{i}s A. Figueira}
+{Queen Mary, University of London \\ {\em chris.cannam@eecs.qmul.ac.uk}}
 
 \begin{document}
 %
 \maketitle
 %
 \begin{abstract}
-This abstract relates to submissions to several different categories. All submissions are of previously published methods. All submissions are in the form of VAMP Plugins.
 
-All plugins are fully open-source, and can be downloaded from the Isophonics\footnote{http://isophonics.net/QMVampPlugins} and SoundSoftware websites\footnote{http://code.soundsoftware.ac.uk/projects/qm-vamp-plugins}.
-
-For a complete (except binary files) overview of this submission - with detailed README files, scripts, etc. - please see the SoundSoftware site\footnote{http://code.soundsoftware.ac.uk/projects/mirex2013}.
+In this submission we offer for evaluation several audio feature
+extraction plugins in Vamp format. Some of these plugins represent
+efficient implementations based on modern work, while others are no
+longer state-of-the-art and were developed a few years ago. The
+methods implemented in this set of plugins are described in the
+literature and are referenced throughout this paper.
 
 \end{abstract}
 %
 \section{Introduction}\label{sec:introduction}
 
-describe vamp\ldots
-describe rationale supporting submission\ldots
+The Vamp plugin format\footnote{http://vamp-plugins.org/} was
+developed at the Centre for Digital Music (C4DM) at Queen Mary,
+University of London, during 2005-2006 in response to a desire to
+publish work in a form that would be immediately useful to people
+outside this research field. The Vamp plugin format was published with
+an open source SDK, alongside the Sonic
+Visualiser~\cite{sonicvisualise2010} audio analysis application which
+provided a useful host for Vamp plugins.
 
-\section{Audio Beat Tracking}
+In subsequent years the Vamp format has become a moderately popular
+means of distributing methods from the Centre and other research
+groups. Some dozens of Vamp plugins are now available from groups such
+as the Music Technology Group at UPF in Barcelona, the Sound and Music
+Computing group at INESC in Porto, the BBC, and others, as well as
+from the Centre for Digital Music.
 
-\subsection{Tempo and Beat Tracker}
+The plugins submitted for this evaluation are provided as a set of
+library files. Those with names starting ``QM'' are all provided in a
+single library file, the QM Vamp Plugins set, made available in binary
+form for Windows, OS/X, and Linux from the Centre for Digital Music's
+download
+page\footnote{http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html}. All
+of these plugins are open-source, and source is available through the
+SoundSoftware code
+site\footnote{http://code.soundsoftware.ac.uk/projects/qm-vamp-plugins}. These
+plugins come from a number of authors who are credited in this
+abstract and in the plugins' accompanying documentation.
 
-The Tempo and Beat Tracker\cite{matthew2007a} VAMP plugin analyses a single channel of audio and estimates the positions of metrical beats within the music (the equivalent of a human listener tapping their foot to the beat).
+In addition to the QM Vamp Plugins set, this submission contains a
+number of individual plugins: the Chordino and Segmentino plugins from
+Matthias Mauch; the BeatRoot Vamp Plugin from Simon Dixon; OnsetsDS
+from Dan Stowell; and a Cepstral Pitch Tracker Plugin from Chris
+Cannam.
 
-The Tempo and Beat Tracker Vamp plugin was written by Matthew Davies and Christian Landone.
+(For a complete overview of this submission across all of the tasks
+ and plugins it covers, please see the relevant repository at the
+ SoundSoftware
+ site.\footnote{http://code.soundsoftware.ac.uk/projects/mirex2013})
 
-\section{Audio Chord Estimation}
+\section{Submissions by MIREX Task}
 
-\section{Audio Key Detection}
+\subsection{Audio Beat Tracking}
 
-\subsection{Key Detector}
+\subsubsection{QM Tempo and Beat Tracker}
+\label{tempo_and_beat_tracker}
 
-[Need reference]
+The QM Tempo and Beat Tracker\cite{matthew2007a} Vamp plugin analyses
+a single channel of audio and estimates the positions of metrical
+beats within the music.
 
-The Key Detector VAMP pluginanalyses a single channel of audio and continuously estimates the key of the music by comparing the degree to which a block-by-block chromagram correlates to the stored key profiles for each major and minor key.
+This plugin uses the complex-domain onset detection method from~\cite{chris2003a} with a hybrid of the two-state beat tracking model
+proposed in~\cite{matthew2007a} and a dynamic programming method based
+on~\cite{ellis2007}. 
 
-The key profiles are drawn from analysis of Book I of the Well Tempered Klavier by J S Bach, recorded at A=440 equal temperament.
+To identify the tempo, the onset detection function is partitioned
+into 6-second frames with a 1.5-second increment. The autocorrelation
+function of each 6-second onset detection function is found and this
+is then passed through a perceptually weighted comb
+filterbank\cite{matthew2007a}. The successive comb filterbank output
+signals are grouped together into a matrix of observations of
+periodicity through time. The best path of periodicity through these
+observations is found using the Viterbi algorithm, where the
+transition matrix is defined as a diagonal Gaussian.
 
-The Key Detector Vamp plugin was written by Katy Noland and Christian Landone.
+Given the estimates of periodicity, the beat locations are recovered
+by applying the dynamic programming algorithm\cite{ellis2007}. This
+process involves the calculation of a recursive cumulative score
+function and backtrace signal. The cumulative score indicates the
+likelihood of a beat existing at each sample of the onset detection
+function input, and the backtrace gives the location of the best
+previous beat given this point in time. Once the cumulative score and
+backtrace have been calculated for the whole input signal, the best
+path through beat locations is found by recursively sampling the
+backtrace signal from the end of the input signal back to the
+beginning.
 
-\section{Audio Melody Extraction}
-\section{Audio Onset Detection}
-\section{Audio Structural Segmentation}
-\section{Audio Tempo Estimation}
+The QM Tempo and Beat Tracker plugin was written by Matthew
+Davies and Christian Landone.
+
+\subsubsection{BeatRoot}
+
+The BeatRoot Vamp plugin is an open source Vamp plugin library that
+implements the BeatRoot beat-tracking method of Simon
+Dixon\cite{simon2001a}. The BeatRoot algorithm has been submitted to
+MIREX evaluation in earlier years\cite{simon2006a}; this plugin
+consists of the most recent BeatRoot code release, converted from Java
+to C++ and modified for plugin format.
+
+The BeatRoot plugin was written by Simon Dixon and Chris Cannam.
+
+\subsection{Audio Key Detection}
+
+\subsubsection{QM Key Detector}
+
+The QM Key Detector Vamp plugin continuously estimates the key of the
+music by comparing the degree to which a block-by-block chromagram
+correlates to stored key profiles for each major and minor key.
+
+This plugin uses the correlation method described in~\cite{krumhansl1990} and~\cite{gomez2006}, but using different tone
+profiles. The key profiles used in this implementation are drawn from
+analysis of Book I of the Well Tempered Klavier by J S Bach, recorded
+at A=440 equal temperament, as described in~\cite{noland2007signal}.
+
+The QM Key Detector plugin was written by Katy Noland and
+Christian Landone.
+
+\subsection{Audio Chord Extraction}
+
+\subsubsection{Chordino}
+
+The Chordino plugin was developed following Mauch's 2010 work on chord
+extraction, submitted to MIREX in that
+year\cite{mauch:md1:2010}. While that submission used a C++ chroma
+implementation with a MATLAB dynamic Bayesian network as a chord
+extraction front-end\cite{matthias2010a}, Chordino is an entirely C++
+implementation that was developed specifically to be made freely
+available as an open-source plugin for general use.
+
+The method for the Chordino plugin has two parts:
+
+{\bf NNLS Chroma} --- NNLS Chroma analyses a single channel of audio
+using frame-wise spectral input from the Vamp host. The spectrum is
+transformed to a log-frequency spectrum (constant-Q) with three bins
+per semitone. On this representation, two processing steps are
+performed: tuning, after which each centre bin (i.e. bin 2, 5, 8, …)
+corresponds to a semitone, even if the tuning of the piece deviates
+from 440 Hz standard pitch; and running standardisation: subtraction
+of the running mean, division by the running standard deviation. This
+has a spectral whitening effect.
+
+The processed log-frequency spectrum is then used as an input for NNLS
+approximate transcription using a dictionary of harmonic notes with
+geometrically decaying harmonics magnitudes. The output of the NNLS
+approximate transcription is semitone-spaced. To get the chroma, this
+semitone spectrum is multiplied (element-wise) with the desired
+profile (chroma or bass chroma) and then mapped to 12 bins.
+
+{\bf Chord transcription} --- A fixed dictionary of chord profiles is
+used to calculate frame-wise chord similarities. A standard
+HMM/Viterbi approach is used to smooth these to provide a chord
+transcription.
+
+Chordino was written by Matthias Mauch.
+
+\subsection{Audio Melody Extraction}
+
+\subsubsection{Cepstral Pitch Tracker}
+
+The Cepstral Pitch Tracker Vamp Plugin is an open source Vamp plugin
+implementation of a monophonic pitch tracking and note segmentation
+method.
+
+The method is that described in the one-page handout ``Unit Testing:
+An audio research example'' accompanying our tutorial at DAFx
+2012\cite{chris2012a}. It is an agent system, in which agents are used
+to evaluate successive pitch peaks to test whether they can be
+combined to form a plausible note. The peaks are obtained from an
+interpolating peak finder applied to the cepstral transform (inverse
+FFT of the log magnitude spectrum) of the short-time Fourier transform
+of each input frame. An agent-management system supplies the pitches
+to agents, creates a new agent when a novel pitch is found, reaps any
+agents that expire without finding a plausible note, and accumulates
+the resulting valid notes.
+
+The Cepstral Pitch Tracker plugin was written by Chris Cannam.
+
+\subsection{Audio Onset Detection}
+
+\subsubsection{QM Note Onset Detector}
+
+The QM Note Onset Detector Vamp plugin estimates the onset times of
+notes within the music. It calculates an onset likelihood function for
+each spectral frame, and picks peaks in a smoothed version of this
+function.
+
+Several onset detection functions are available in this plugin; this
+submission uses the complex-domain method described
+in~\cite{chris2003a}.
+
+The QM Note Onset Detector plugin was written by Chris Duxbury, Juan
+Pablo Bello and Christian Landone.
+
+\subsubsection{OnsetsDS}
+
+OnsetsDS is an onset detector plugin wrapping Dan Stowell's OnsetsDS
+library\footnote{http://onsetsds.sourceforge.net/}, described
+in~\cite{dan2007a}.
+
+OnsetsDS was designed to provide an FFT-based onset detection that
+works very efficiently in real-time, with a fast reaction time. It is
+not tailored for non-real-time use or for any particular type of
+signal.
+
+The OnsetsDS plugin was written by Dan Stowell and Chris Cannam.
+
+\subsection{Audio Structural Segmentation}
+
+\subsubsection{QM Segmenter}
+
+The QM Segmenter Vamp plugin divides a single channel of music up into
+structurally consistent segments.
+
+The method, described in~\cite{mark2008a}, relies upon timbral or
+pitch similarity to obtain the high-level song structure. This is
+based on the assumption that the distributions of timbre features are
+similar over corresponding structural elements of the music.
+
+The input feature is a frequency-domain representation of the audio
+signal, in this case using a Constant-Q transform for the underlying
+features (though the plugin supports other timbral and pitch
+features). The extracted features are normalised in accordance with
+the MPEG-7 standard (NASE descriptor), and the value of this envelope
+is stored for each processing block of audio. This is followed by the
+extraction of 20 principal components per block using PCA, yielding a
+sequence of 21 dimensional feature vectors where the last element in
+each vector corresponds to the energy envelope.
+
+A 40-state Hidden Markov Model is then trained on the whole sequence
+of features, with each state corresponding to a specific timbre
+type. This partitions the timbre-space of a given track into 40
+possible types. After training and decoding the HMM, the song is
+assigned a sequence of timbre-features according to specific
+timbre-type distributions for each possible structural segment.
+
+The segmentation itself is computed by clustering timbre-type
+histograms. A series of histograms are created over a sliding window
+which are grouped into M clusters by an adapted soft k-means
+algorithm.  Reference histograms, iteratively updated during
+clustering, describe the timbre distribution for each segment. The
+segmentation arises from the final cluster assignments.
+
+The QM Segmenter plugin was written by Mark Levy.
+
+\subsubsection{Segmentino}
+
+The Segmentino plugin is a new C++ implementation of a segmentation
+method first described in Matthias Mauch's paper on using musical
+structure to enhance chord transcription\cite{matthias2009a} and
+expanded on in Mauch's PhD thesis\cite{matthiasphd}.
+
+A beat-quantised chroma representation is used to calculate pair-wise
+similarities between beats (really: beat ``shingles'', i.e.\ multi-beat
+vectors). Based on this first similarity calculation, an exhaustive
+comparison of all possible segments of reasonable length in beats is
+executed, and segments are added to form segment families if they are
+sufficiently similar to another ``family member''. Having accumulated a
+lot of families, the families are rated, and the one with the highest
+score is used as the first segmentation group that gets
+annotated. This last step is repeated until no more families fit the
+remaining ``holes'' in the song that haven't already been assigned to a
+segment.
+
+This method was developed for ``classic rock'' music, and therefore
+assumes a few characteristics that are not necessarily found in other
+music: repetition of harmonic sequences in the music that coincide
+with structural segments in a song; a steady beat; segments of a
+certain length; corresponding segments have the same length in
+beats.
+
+The Segmentino plugin was written by Matthias Mauch and Massimiliano
+Zanoni. It is currently in preparation for a public release.
+
+\subsection{Audio Tempo Estimation}
+
+For this task we submit the same plugin as that used in the Audio Beat
+Tracking task in section~\ref{tempo_and_beat_tracker}.
 
 \bibliography{qmvamp-mirex2013}
 
--- a/vamp-plugins_abstract/segmentino-mirex2013.tex	Fri Sep 06 16:14:30 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-% -----------------------------------------------
-% Template for MIREX 2010
-% (based on ISMIR 2010 template)
-% -----------------------------------------------
-
-\documentclass{article}
-\usepackage{mirex2010,amsmath,cite}
-\usepackage{graphicx}
-
-% Title.
-% ------
-\title{MIREX 2013 Entry: Segmentino Vamp Plugin}
-
-% Single address
-% To use with only one author or several with the same address
-% ---------------
-%\oneauthor
-% {Names should be omitted for double-blind reviewing}
-% {Affiliations should be omitted for double-blind reviewing}
-
-% Two addresses
-% --------------
-%\twoauthors
-%{Chris Cannam} {Affiliation1 \\ {\tt author1@music-ir.org}}
-%{Lu\'{i}s A. Figueira} {Affiliation2 \\ {\tt author2@music-ir.org}}
-
-% Three addresses
-% --------------
- \threeauthors
-   {Chris Cannam} {Affiliation1 \\ {\tt author1@music-ir.org}}
-   {Lu\'{i}s A. Figueira} {Affiliation2 \\ {\tt author2@music-ir.org}}
-   {Matthias Mauch} {Affiliation3 \\ {\tt author3@music-ir.org}}
-
-\begin{document}
-%
-\maketitle
-%
-\begin{abstract}
-
-Segmentino is a Vamp plugin library for structural segmentation of music audio.
-
-%!!! check spelling
-This library, developed by Matthias Mauch and Massimiliano Zanoni, is
-currently in preparation for a public release from the Centre for
-Digital Music at Queen Mary, University of London. We are preparing
-and submitting it as part of a programme of evaluation of Vamp plugin
-implementations of existing algorithms being carried out at the Centre
-for Digital Music.
-
-(For a complete overview of this submission across all of the tasks and
-plugins it covers, please see the relevant repository at the
-SoundSoftware
-site\footnote{http://code.soundsoftware.ac.uk/projects/mirex2013}.)
-
-\end{abstract}
-%
-\section{Introduction}\label{sec:introduction}
-
-desccibe vamp
-describe rationale supporting submission\ldots
-
-
-\bibliography{qmvamp-mirex2013}
-
-\end{document}