Chris@0
|
1
|
Chris@12
|
2 #include "PiperExport.h"
|
Chris@0
|
3
|
Chris@0
|
4 #include "plugins/BeatTrack.h"
|
Chris@0
|
5 #include "plugins/OnsetDetect.h"
|
Chris@0
|
6 #include "plugins/ChromagramPlugin.h"
|
Chris@0
|
7 #include "plugins/ConstantQSpectrogram.h"
|
Chris@0
|
8 #include "plugins/TonalChangeDetect.h"
|
Chris@0
|
9 #include "plugins/KeyDetect.h"
|
Chris@0
|
10 #include "plugins/MFCCPlugin.h"
|
Chris@0
|
11 #include "plugins/SegmenterPlugin.h"
|
Chris@0
|
12 #include "plugins/SimilarityPlugin.h"
|
Chris@0
|
13 #include "plugins/BarBeatTrack.h"
|
Chris@0
|
14 //!!!#include "plugins/AdaptiveSpectrogram.h"
|
Chris@0
|
15 #include "plugins/DWT.h"
|
Chris@0
|
16 #include "plugins/Transcription.h"
|
Chris@0
|
17
|
Chris@2
|
18 using piper_vamp_js::PiperAdapter;
|
Chris@2
|
19 using piper_vamp_js::PiperPluginLibrary;
|
Chris@0
|
20
|
Chris@21
|
21 static std::string libname("qm-vamp-plugins");
|
Chris@0
|
22
|
Chris@21
|
23 static PiperAdapter<BeatTracker>
|
Chris@21
|
24 qmTempoTrackerAdapter(
|
Chris@21
|
25 libname,
|
Chris@21
|
26 { "Time", "Tempo" },
|
Chris@21
|
27 {
|
Chris@21
|
28 { "beats",
|
Chris@21
|
29 { "http://purl.org/ontology/af/Beat" }
|
Chris@21
|
30 },
|
Chris@21
|
31 { "detection_fn",
|
Chris@21
|
32 { "http://purl.org/ontology/af/OnsetDetectionFunction" }
|
Chris@21
|
33 },
|
Chris@21
|
34 { "tempo",
|
Chris@21
|
35 { "http://purl.org/ontology/af/Tempo" }
|
Chris@21
|
36 }
|
Chris@21
|
37 }
|
Chris@21
|
38 );
|
Chris@21
|
39
|
Chris@21
|
40 static PiperAdapter<OnsetDetector>
|
Chris@21
|
41 qmOnsetDetectorAdapter(
|
Chris@21
|
42 libname,
|
Chris@21
|
43 { "Time", "Onsets" },
|
Chris@21
|
44 {
|
Chris@21
|
45 { "onsets",
|
Chris@21
|
46 { "http://purl.org/ontology/af/Onset" }
|
Chris@21
|
47 },
|
Chris@21
|
48 { "detection_fn",
|
Chris@21
|
49 { "http://purl.org/ontology/af/OnsetDetectionFunction" }
|
Chris@21
|
50 },
|
Chris@21
|
51 { "smoothed_df",
|
Chris@21
|
52 { "http://purl.org/ontology/af/OnsetDetectionFunction" }
|
Chris@21
|
53 }
|
Chris@21
|
54 }
|
Chris@21
|
55 );
|
Chris@21
|
56
|
Chris@21
|
57 static PiperAdapter<ChromagramPlugin>
|
Chris@21
|
58 qmChromagramAdapter(
|
Chris@21
|
59 libname,
|
Chris@21
|
60 { "Visualisation" },
|
Chris@21
|
61 {
|
Chris@21
|
62 { "chromagram",
|
Chris@21
|
63 { "http://purl.org/ontology/af/Chromagram" }
|
Chris@21
|
64 },
|
Chris@21
|
65 { "chromameans",
|
Chris@21
|
66 { "" }
|
Chris@21
|
67 }
|
Chris@21
|
68 }
|
Chris@21
|
69 );
|
Chris@21
|
70
|
Chris@21
|
71 static PiperAdapter<ConstantQSpectrogram>
|
Chris@21
|
72 qmConstantQAdapter(
|
Chris@21
|
73 libname,
|
Chris@21
|
74 { "Visualisation" },
|
Chris@21
|
75 {
|
Chris@21
|
76 { "constantq",
|
Chris@21
|
77 { "http://purl.org/ontology/af/Spectrogram" }
|
Chris@21
|
78 }
|
Chris@21
|
79 }
|
Chris@21
|
80 );
|
Chris@21
|
81
|
Chris@21
|
82 static PiperAdapter<TonalChangeDetect>
|
Chris@21
|
83 qmTonalChangeAdapter(
|
Chris@21
|
84 libname,
|
Chris@21
|
85 { "Key and Tonality" },
|
Chris@21
|
86 {
|
Chris@21
|
87 { "tcstransform",
|
Chris@21
|
88 { "http://purl.org/ontology/af/TonalContentSpace" }
|
Chris@21
|
89 },
|
Chris@21
|
90 { "tcfunction",
|
Chris@21
|
91 { "http://purl.org/ontology/af/TonalChangeDetectionFunction" }
|
Chris@21
|
92 },
|
Chris@21
|
93 { "changepositions",
|
Chris@21
|
94 { "http://purl.org/ontology/af/TonalOnset" }
|
Chris@21
|
95 }
|
Chris@21
|
96 }
|
Chris@21
|
97 );
|
Chris@21
|
98
|
Chris@21
|
99 static PiperAdapter<KeyDetector>
|
Chris@21
|
100 qmKeyDetectorAdapter(
|
Chris@21
|
101 libname,
|
Chris@21
|
102 { "Key and Tonality" },
|
Chris@21
|
103 {
|
Chris@21
|
104 { "tonic",
|
Chris@21
|
105 { "" }
|
Chris@21
|
106 },
|
Chris@21
|
107 { "mode",
|
Chris@21
|
108 { "" }
|
Chris@21
|
109 },
|
Chris@21
|
110 { "key",
|
Chris@21
|
111 { "http://purl.org/ontology/af/KeyChange" }
|
Chris@21
|
112 },
|
Chris@21
|
113 { "keystrength",
|
Chris@21
|
114 { "" }
|
Chris@21
|
115 }
|
Chris@21
|
116 }
|
Chris@21
|
117 );
|
Chris@21
|
118
|
Chris@21
|
119 static PiperAdapter<SegmenterPlugin>
|
Chris@21
|
120 qmSegmenterAdapter(
|
Chris@21
|
121 libname,
|
Chris@21
|
122 { "Classification" },
|
Chris@21
|
123 {
|
Chris@21
|
124 { "segmentation",
|
Chris@21
|
125 { "http://purl.org/ontology/af/StructuralSegment" }
|
Chris@21
|
126 }
|
Chris@21
|
127 }
|
Chris@21
|
128 );
|
Chris@21
|
129
|
Chris@21
|
130 static PiperAdapter<SimilarityPlugin>
|
Chris@21
|
131 qmSimilarityAdapter(
|
Chris@21
|
132 libname,
|
Chris@21
|
133 { "Classification" },
|
Chris@21
|
134 {
|
Chris@21
|
135 { "distancematrix",
|
Chris@21
|
136 { "" }
|
Chris@21
|
137 },
|
Chris@21
|
138 { "distancevector",
|
Chris@21
|
139 { "" }
|
Chris@21
|
140 },
|
Chris@21
|
141 { "sorteddistancevector",
|
Chris@21
|
142 { "" }
|
Chris@21
|
143 },
|
Chris@21
|
144 { "means",
|
Chris@21
|
145 { "" }
|
Chris@21
|
146 },
|
Chris@21
|
147 { "variances",
|
Chris@21
|
148 { "" }
|
Chris@21
|
149 },
|
Chris@21
|
150 { "beatspectrum",
|
Chris@21
|
151 { "" }
|
Chris@21
|
152 }
|
Chris@21
|
153 }
|
Chris@21
|
154 );
|
Chris@21
|
155
|
Chris@21
|
156 static PiperAdapter<MFCCPlugin>
|
Chris@21
|
157 qmMfccAdapter(
|
Chris@21
|
158 libname,
|
Chris@21
|
159 { "Low Level Features" },
|
Chris@21
|
160 {
|
Chris@21
|
161 { "coefficients",
|
Chris@21
|
162 { "" }
|
Chris@21
|
163 },
|
Chris@21
|
164 { "means",
|
Chris@21
|
165 { "" }
|
Chris@21
|
166 }
|
Chris@21
|
167 }
|
Chris@21
|
168 );
|
Chris@21
|
169
|
Chris@21
|
170 static PiperAdapter<BarBeatTracker>
|
Chris@21
|
171 qmBarBeatTrackerAdapter(
|
Chris@21
|
172 libname,
|
Chris@21
|
173 { "Time", "Tempo" },
|
Chris@21
|
174 {
|
Chris@21
|
175 { "beats",
|
Chris@21
|
176 { "http://purl.org/ontology/af/Beat" }
|
Chris@21
|
177 },
|
Chris@21
|
178 { "bars",
|
Chris@21
|
179 { "" }
|
Chris@21
|
180 },
|
Chris@21
|
181 { "beatcounts",
|
Chris@21
|
182 { "" }
|
Chris@21
|
183 },
|
Chris@21
|
184 { "beatsd",
|
Chris@21
|
185 { "" }
|
Chris@21
|
186 }
|
Chris@21
|
187 }
|
Chris@21
|
188 );
|
Chris@21
|
189
|
Chris@21
|
190 static PiperAdapter<DWT>
|
Chris@21
|
191 qmDwtAdapter(
|
Chris@21
|
192 libname,
|
Chris@21
|
193 { "Visualisation" },
|
Chris@21
|
194 {
|
Chris@21
|
195 { "wcoeff",
|
Chris@21
|
196 { "" }
|
Chris@21
|
197 }
|
Chris@21
|
198 }
|
Chris@21
|
199 );
|
Chris@21
|
200
|
Chris@21
|
201 /*
|
Chris@21
|
202 static PiperAdapter<AdaptiveSpectrogram>
|
Chris@21
|
203 qmAdaptiveSpectrogramAdapter(
|
Chris@21
|
204 libname,
|
Chris@21
|
205 { "Visualisation" },
|
Chris@21
|
206 {
|
Chris@21
|
207 { "output",
|
Chris@21
|
208 { "http://purl.org/ontology/af/Spectrogram" }
|
Chris@21
|
209 }
|
Chris@21
|
210 }
|
Chris@21
|
211 );
|
Chris@21
|
212 */
|
Chris@21
|
213
|
Chris@21
|
214 static PiperAdapter<Transcription>
|
Chris@21
|
215 qmTranscriptionAdapter(
|
Chris@21
|
216 libname,
|
Chris@21
|
217 { "Notes" },
|
Chris@21
|
218 {
|
Chris@21
|
219 { "transcription",
|
Chris@21
|
220 { "http://purl.org/ontology/af/Note" }
|
Chris@21
|
221 }
|
Chris@21
|
222 }
|
Chris@21
|
223 );
|
Chris@0
|
224
|
Chris@0
|
225 static PiperPluginLibrary library({
|
Chris@21
|
226 &qmTempoTrackerAdapter,
|
Chris@21
|
227 &qmOnsetDetectorAdapter,
|
Chris@21
|
228 &qmChromagramAdapter,
|
Chris@21
|
229 &qmConstantQAdapter,
|
Chris@21
|
230 &qmTonalChangeAdapter,
|
Chris@21
|
231 &qmKeyDetectorAdapter,
|
Chris@21
|
232 &qmSegmenterAdapter,
|
Chris@21
|
233 &qmSimilarityAdapter,
|
Chris@21
|
234 &qmMfccAdapter,
|
Chris@21
|
235 &qmBarBeatTrackerAdapter,
|
Chris@21
|
236 &qmDwtAdapter,
|
Chris@21
|
237 // &qmAdaptivespectrogramAdapter,
|
Chris@21
|
238 &qmTranscriptionAdapter
|
Chris@12
|
239 });
|
Chris@0
|
240
|
Chris@12
|
241 PIPER_EXPORT_LIBRARY(library);
|
Chris@0
|
242
|