matthiasm@52: ### SEGMENTINO VAMP PLUGIN ### matthiasm@52: Chris@65: Segmentino is a Vamp plugin for automatic music structural Chris@65: segmentation, based on an algorithm first used in Mauch's paper on Chris@65: "Using Musical Structure to Enhance Automatic Chord Transcription" Chris@65: (http://code.soundsoftware.ac.uk/publications/55). matthiasm@52: matthiasm@52: ## Installation ## matthiasm@52: Chris@65: Vamp plugins (http://www.vamp-plugins.org/) can be used with any Vamp Chris@65: host. Popular free hosts are Sonic Visualiser Chris@65: (http://sonicvisualiser.org), Audacity Chris@65: (http://audacity.sourceforge.net/) and Sonic Annotator (command-line Chris@65: tool, http://www.omras2.org/sonicannotator(). matthiasm@52: Chris@65: For the newest Segmentino plugin downloads, ready to be installed, go Chris@65: to the Downloads page: Chris@65: http://code.soundsoftware.ac.uk/projects/segmenter-vamp-plugin/files. matthiasm@52: Chris@65: Installation instructions for Mac, Windows, Linux can be found at: Chris@65: http://www.vamp-plugins.org/download.html. matthiasm@52: matthiasm@52: ## Method Overview ## matthiasm@52: Chris@65: The idea of the method is quite simple. A beat-quantised chroma Chris@65: representation is used to calculate pair-wise similarities between Chris@65: beats (really: beat "shingles", i.e. multi-beat vectors). Based on Chris@65: this first similarity calculation, an exhaustive comparison of all Chris@65: possible segments of reasonable length in beats is executed, and Chris@65: segments are added to form segment families if they are sufficiently Chris@65: similar to another "family member". matthiasm@52: Chris@65: Now comes the crucial greedy step: having accumulated a lot of Chris@65: families, the families are rated, and the one with the highest score Chris@65: is used as the first segmentation group that gets annotated. This last Chris@65: step is repeated until no more families fit the remaining "holes" in Chris@65: the song that haven't already been assigned to a segment. This is Chris@65: described in Mauch's thesis: Chris@65: http://code.soundsoftware.ac.uk/publications/56 as "heuristic of a Chris@65: music editor who tries to make a concise transcription to make Chris@65: orientation in the score easier, and to save space (or paper)". matthiasm@52: matthiasm@52: More details in Mauch's thesis: http://code.soundsoftware.ac.uk/publications/56. matthiasm@52: matthiasm@52: ## Limitations ## matthiasm@52: Chris@65: This method was developed for "classic rock" music, and therefore Chris@65: assumes a few characteristics that are not necessarily found in other Chris@65: music: repetition of harmonic sequences in the music that coincide Chris@65: with structural segments in a song; a steady beat; segments of a Chris@65: certain length; corresponding segments have the same length in Chris@65: beats. Furthermore, as with any audio algorithm, the method doesn't Chris@65: work perfectly even if these conditions are actually fulfilled. matthiasm@52: matthiasm@52: ## Implementation ## matthiasm@52: Chris@65: This Vamp implementation was coded by Massimiliano Zanoni, Matthias Chris@65: Mauch and Chris Cannam. It is similar to Mauch's original Matlab Chris@65: implementation used in the publications, but not exactly the same. The Chris@65: beat times are extracted using Davies's beat tracker as implemented in Chris@65: the Queen Mary Vamp plugins Chris@65: (http://code.soundsoftware.ac.uk/projects/qm-vamp-plugins), which in Chris@65: turn is based on the QM DSP library Chris@65: (http://code.soundsoftware.ac.uk/projects/qm-dsp). NNLS Chroma Chris@65: (http://isophonics.net/nnls-chroma) is used as a chroma extractor, by Chris@65: borrowing code from the Vamp plugin of the same name. matthiasm@52: matthiasm@52: ## Examples ## matthiasm@52: Chris@65: Some example YouTube videos showing off the range of quality of Chris@65: segmentation one can get using Segmentino. matthiasm@52: matthiasm@52: 1. excellent: "Bring On The Night" http://www.youtube.com/v/c0W_n_i3Ksg&autoplay=1 matthiasm@52: 2. very good: "Dirty Work" http://www.youtube.com/v/9lWrvvP4PCw&autoplay=1 matthiasm@52: 3. less than good: "Every Kinda People" http://www.youtube.com/v/ICz-PnhfD0M&autoplay=1 matthiasm@52: 4 complete failure: "New York New York" http://www.youtube.com/v/LcmTCeAKM48&autoplay=1 matthiasm@52: matthiasm@52: ## Citation, License and Use ## matthiasm@52: Chris@65: If you make use of this software for any public or commercial purpose, Chris@65: we ask you to kindly mention the authors and Queen Mary, University of Chris@65: London in your user-visible documentation. We're very happy to see Chris@65: this sort of use but would much appreciate being credited, separately Chris@65: from the requirements of the software license itself (see below). matthiasm@52: Chris@65: If you make use of this software for academic purposes, please cite Chris@65: one of the publications indicated on the Publications page Chris@65: https://code.soundsoftware.ac.uk/publications?project_id=segmenter-vamp-plugin. Chris@65: Chris@65: This program is free software: you can redistribute it and/or modify Chris@65: it under the terms of the GNU Affero General Public License as Chris@65: published by the Free Software Foundation, either version 3 of the Chris@65: License, or (at your option) any later version. Chris@65: Chris@65: This program is distributed in the hope that it will be useful, but Chris@65: WITHOUT ANY WARRANTY; without even the implied warranty of Chris@65: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Chris@65: Affero General Public License for more details. Chris@65: Chris@65: You should have received a copy of the GNU Affero General Public License Chris@65: along with this program. If not, see . matthiasm@52: matthiasm@52: ## Pronunciation ## matthiasm@52: Chris@65: Segmentino is pronounced "segmen'TEEno" (not "seg'MENtino", the third Chris@65: person plural conjunctive of the Italian verb "segmentare"). Chris@65: