Chris@181
|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
|
Chris@181
|
2
|
Chris@181
|
3 /*
|
Chris@181
|
4 Vamp feature extraction plugin using the MATCH audio alignment
|
Chris@181
|
5 algorithm.
|
Chris@181
|
6
|
Chris@181
|
7 Centre for Digital Music, Queen Mary, University of London.
|
Chris@181
|
8
|
Chris@181
|
9 This program is free software; you can redistribute it and/or
|
Chris@181
|
10 modify it under the terms of the GNU General Public License as
|
Chris@181
|
11 published by the Free Software Foundation; either version 2 of the
|
Chris@181
|
12 License, or (at your option) any later version. See the file
|
Chris@181
|
13 COPYING included with this distribution for more information.
|
Chris@181
|
14 */
|
Chris@181
|
15
|
Chris@181
|
16 #ifndef MATCH_TYPES_H
|
Chris@181
|
17 #define MATCH_TYPES_H
|
Chris@181
|
18
|
Chris@181
|
19 #include <vector>
|
Chris@183
|
20 #include <cstdint>
|
Chris@181
|
21
|
Chris@181
|
22 /// A single value in a feature vector
|
Chris@183
|
23 typedef float featurebin_t;
|
Chris@181
|
24
|
Chris@181
|
25 /// A feature vector
|
Chris@181
|
26 typedef std::vector<featurebin_t> feature_t;
|
Chris@181
|
27
|
Chris@182
|
28 /// A sequence of feature vectors
|
Chris@182
|
29 typedef std::vector<feature_t> featureseq_t;
|
Chris@182
|
30
|
Chris@181
|
31 /// The distance between two feature vectors
|
Chris@183
|
32 typedef uint8_t distance_t;
|
Chris@183
|
33
|
Chris@183
|
34 const int InvalidDistance = 0xff;
|
Chris@181
|
35
|
Chris@181
|
36 /// A distance vector
|
Chris@182
|
37 typedef std::vector<distance_t> distancevec_t;
|
Chris@181
|
38
|
Chris@181
|
39 /// A distance matrix
|
Chris@182
|
40 typedef std::vector<distancevec_t> distancemat_t;
|
Chris@181
|
41
|
Chris@181
|
42 /// The integrated distance (path cost) from the origin to a given point
|
Chris@183
|
43 typedef uint32_t pathcost_t;
|
Chris@183
|
44
|
Chris@183
|
45 const int InvalidPathCost = 0xdeadbeef;
|
Chris@181
|
46
|
Chris@181
|
47 /// A vector of path costs
|
Chris@182
|
48 typedef std::vector<pathcost_t> pathcostvec_t;
|
Chris@181
|
49
|
Chris@181
|
50 /// A matrix of path costs
|
Chris@182
|
51 typedef std::vector<pathcostvec_t> pathcostmat_t;
|
Chris@181
|
52
|
Chris@181
|
53 /// A direction advance instruction or state
|
Chris@183
|
54 enum advance_t : uint8_t {
|
Chris@181
|
55 AdvanceNone,
|
Chris@181
|
56 AdvanceBoth,
|
Chris@181
|
57 AdvanceThis,
|
Chris@181
|
58 AdvanceOther
|
Chris@181
|
59 };
|
Chris@181
|
60
|
Chris@181
|
61 /// A vector of advance directions
|
Chris@181
|
62 typedef std::vector<advance_t> advancevec_t;
|
Chris@181
|
63
|
Chris@181
|
64 /// A matrix of advance directions
|
Chris@181
|
65 typedef std::vector<advancevec_t> advancemat_t;
|
Chris@181
|
66
|
Chris@181
|
67
|
Chris@181
|
68 #endif
|