matthiasm@52
|
1 ### SEGMENTINO VAMP PLUGIN ###
|
matthiasm@52
|
2
|
Chris@65
|
3 Segmentino is a Vamp plugin for automatic music structural
|
Chris@65
|
4 segmentation, based on an algorithm first used in Mauch's paper on
|
Chris@65
|
5 "Using Musical Structure to Enhance Automatic Chord Transcription"
|
Chris@65
|
6 (http://code.soundsoftware.ac.uk/publications/55).
|
matthiasm@52
|
7
|
matthiasm@52
|
8 ## Installation ##
|
matthiasm@52
|
9
|
Chris@65
|
10 Vamp plugins (http://www.vamp-plugins.org/) can be used with any Vamp
|
Chris@65
|
11 host. Popular free hosts are Sonic Visualiser
|
Chris@65
|
12 (http://sonicvisualiser.org), Audacity
|
Chris@65
|
13 (http://audacity.sourceforge.net/) and Sonic Annotator (command-line
|
Chris@65
|
14 tool, http://www.omras2.org/sonicannotator().
|
matthiasm@52
|
15
|
Chris@65
|
16 For the newest Segmentino plugin downloads, ready to be installed, go
|
Chris@65
|
17 to the Downloads page:
|
Chris@65
|
18 http://code.soundsoftware.ac.uk/projects/segmenter-vamp-plugin/files.
|
matthiasm@52
|
19
|
Chris@65
|
20 Installation instructions for Mac, Windows, Linux can be found at:
|
Chris@65
|
21 http://www.vamp-plugins.org/download.html.
|
matthiasm@52
|
22
|
matthiasm@52
|
23 ## Method Overview ##
|
matthiasm@52
|
24
|
Chris@65
|
25 The idea of the method is quite simple. A beat-quantised chroma
|
Chris@65
|
26 representation is used to calculate pair-wise similarities between
|
Chris@65
|
27 beats (really: beat "shingles", i.e. multi-beat vectors). Based on
|
Chris@65
|
28 this first similarity calculation, an exhaustive comparison of all
|
Chris@65
|
29 possible segments of reasonable length in beats is executed, and
|
Chris@65
|
30 segments are added to form segment families if they are sufficiently
|
Chris@65
|
31 similar to another "family member".
|
matthiasm@52
|
32
|
Chris@65
|
33 Now comes the crucial greedy step: having accumulated a lot of
|
Chris@65
|
34 families, the families are rated, and the one with the highest score
|
Chris@65
|
35 is used as the first segmentation group that gets annotated. This last
|
Chris@65
|
36 step is repeated until no more families fit the remaining "holes" in
|
Chris@65
|
37 the song that haven't already been assigned to a segment. This is
|
Chris@65
|
38 described in Mauch's thesis:
|
Chris@65
|
39 http://code.soundsoftware.ac.uk/publications/56 as "heuristic of a
|
Chris@65
|
40 music editor who tries to make a concise transcription to make
|
Chris@65
|
41 orientation in the score easier, and to save space (or paper)".
|
matthiasm@52
|
42
|
matthiasm@52
|
43 More details in Mauch's thesis: http://code.soundsoftware.ac.uk/publications/56.
|
matthiasm@52
|
44
|
matthiasm@52
|
45 ## Limitations ##
|
matthiasm@52
|
46
|
Chris@65
|
47 This method was developed for "classic rock" music, and therefore
|
Chris@65
|
48 assumes a few characteristics that are not necessarily found in other
|
Chris@65
|
49 music: repetition of harmonic sequences in the music that coincide
|
Chris@65
|
50 with structural segments in a song; a steady beat; segments of a
|
Chris@65
|
51 certain length; corresponding segments have the same length in
|
Chris@65
|
52 beats. Furthermore, as with any audio algorithm, the method doesn't
|
Chris@65
|
53 work perfectly even if these conditions are actually fulfilled.
|
matthiasm@52
|
54
|
matthiasm@52
|
55 ## Implementation ##
|
matthiasm@52
|
56
|
Chris@65
|
57 This Vamp implementation was coded by Massimiliano Zanoni, Matthias
|
Chris@65
|
58 Mauch and Chris Cannam. It is similar to Mauch's original Matlab
|
Chris@65
|
59 implementation used in the publications, but not exactly the same. The
|
Chris@65
|
60 beat times are extracted using Davies's beat tracker as implemented in
|
Chris@65
|
61 the Queen Mary Vamp plugins
|
Chris@65
|
62 (http://code.soundsoftware.ac.uk/projects/qm-vamp-plugins), which in
|
Chris@65
|
63 turn is based on the QM DSP library
|
Chris@65
|
64 (http://code.soundsoftware.ac.uk/projects/qm-dsp). NNLS Chroma
|
Chris@65
|
65 (http://isophonics.net/nnls-chroma) is used as a chroma extractor, by
|
Chris@65
|
66 borrowing code from the Vamp plugin of the same name.
|
matthiasm@52
|
67
|
matthiasm@52
|
68 ## Examples ##
|
matthiasm@52
|
69
|
Chris@65
|
70 Some example YouTube videos showing off the range of quality of
|
Chris@65
|
71 segmentation one can get using Segmentino.
|
matthiasm@52
|
72
|
matthiasm@52
|
73 1. excellent: "Bring On The Night" http://www.youtube.com/v/c0W_n_i3Ksg&autoplay=1
|
matthiasm@52
|
74 2. very good: "Dirty Work" http://www.youtube.com/v/9lWrvvP4PCw&autoplay=1
|
matthiasm@52
|
75 3. less than good: "Every Kinda People" http://www.youtube.com/v/ICz-PnhfD0M&autoplay=1
|
matthiasm@52
|
76 4 complete failure: "New York New York" http://www.youtube.com/v/LcmTCeAKM48&autoplay=1
|
matthiasm@52
|
77
|
matthiasm@52
|
78 ## Citation, License and Use ##
|
matthiasm@52
|
79
|
Chris@65
|
80 If you make use of this software for any public or commercial purpose,
|
Chris@65
|
81 we ask you to kindly mention the authors and Queen Mary, University of
|
Chris@65
|
82 London in your user-visible documentation. We're very happy to see
|
Chris@65
|
83 this sort of use but would much appreciate being credited, separately
|
Chris@65
|
84 from the requirements of the software license itself (see below).
|
matthiasm@52
|
85
|
Chris@65
|
86 If you make use of this software for academic purposes, please cite
|
Chris@65
|
87 one of the publications indicated on the Publications page
|
Chris@65
|
88 https://code.soundsoftware.ac.uk/publications?project_id=segmenter-vamp-plugin.
|
Chris@65
|
89
|
Chris@65
|
90 This program is free software: you can redistribute it and/or modify
|
Chris@65
|
91 it under the terms of the GNU Affero General Public License as
|
Chris@65
|
92 published by the Free Software Foundation, either version 3 of the
|
Chris@65
|
93 License, or (at your option) any later version.
|
Chris@65
|
94
|
Chris@65
|
95 This program is distributed in the hope that it will be useful, but
|
Chris@65
|
96 WITHOUT ANY WARRANTY; without even the implied warranty of
|
Chris@65
|
97 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
Chris@65
|
98 Affero General Public License for more details.
|
Chris@65
|
99
|
Chris@65
|
100 You should have received a copy of the GNU Affero General Public License
|
Chris@65
|
101 along with this program. If not, see <http://www.gnu.org/licenses/>.
|
matthiasm@52
|
102
|
matthiasm@52
|
103 ## Pronunciation ##
|
matthiasm@52
|
104
|
Chris@65
|
105 Segmentino is pronounced "segmen'TEEno" (not "seg'MENtino", the third
|
Chris@65
|
106 person plural conjunctive of the Italian verb "segmentare").
|
Chris@65
|
107
|