comparison README.md @ 36:5bd9ae503dcf master 1.0.0

flow: Merged <release> '1.0.0' to <master> ('master').
author Adam Stark <adamstark.uk@gmail.com>
date Tue, 08 Jul 2014 12:32:27 +0100
parents a90b187d6122
children
comparison
equal deleted inserted replaced
13:0d29e68fa2ee 36:5bd9ae503dcf
1 BTrack - A Real-Time Beat Tracker 1 BTrack - A Real-Time Beat Tracker
2 ================================= 2 =================================
3 3
4 ** Version 0.9 ** 4 ** Version 1.0.0 **
5 5
6 *by Adam Stark, Matthew Davies and Mark Plumbley.* 6 *by Adam Stark, Matthew Davies and Mark Plumbley.*
7 7
8 8
9 About BTrack 9 About BTrack
10 ------------ 10 ------------
11 11
12 BTrack is a causal beat tracking algorithm intended for real-time use. It is implemented in C++ with a wrapper for Python. 12 BTrack is a causal beat tracking algorithm intended for real-time use. It is implemented in C++ with wrappers for Python and the Vamp plug-in framework.
13 13
14 Full details of the working of the algorithm can be found in: 14 Full details of the working of the algorithm can be found in:
15 15
16 * Musicians and Machines: Bridging the Semantic Gap in Live Performance, Chapter 3, A. M. Stark, PhD Thesis, Queen Mary, University of London, 2011. 16 * Musicians and Machines: Bridging the Semantic Gap in Live Performance, Chapter 3, A. M. Stark, PhD Thesis, Queen Mary, University of London, 2011.
17 17
19 19
20 20
21 Versions 21 Versions
22 -------- 22 --------
23 23
24 ==== 0.9 ==== 24 ==== 1.0.0 ==== (8th July 2014)
25
26 * Many updates to stability and improvements to implementation
27
28 ==== 0.9.0 ==== (circa 2008/2009)
25 29
26 * This is the original version of the BTrack algorithm 30 * This is the original version of the BTrack algorithm
27 31
28 32
29 33
30 License 34 License
31 ------- 35 -------
32 36
33 BTrack is made available under the GNU General Public License, version 3. Please see the included LICENSE.txt for more details. 37 BTrack is made available under the GNU General Public License, version 3. Please see the included LICENSE.txt for more details.
38
39 Usage - C++
40 -----------
41
42 **STEP 1**
43
44 Include the BTrack header file as follows:
45
46 #include "BTrack.h"
47
48 **STEP 2**
49
50 Instantiate the algorithm by one of the following:
51
52 // to use the default 512 hop size and 1024 frame size
53 BTrack b;
54
55 or:
56
57 // to specify a hop size (e.g. 512) and have a frame size of 2 x the hop size
58 BTrack b(512);
59
60 or:
61
62 // to specify both the hop size and frame size
63 BTrack b(512,1024);
64
65 **STEP 3.1 - Audio Input**
66
67 In the processing loop, fill a double precision array with one frame of audio samples (as determined in step 2):
68
69 double *frame;
70
71 // !
72 // do something here to fill the frame with audio samples
73 // !
74
75 and then call:
76
77 b.processAudioFrame(frame);
78
79 and to check for beats, simply call:
80
81 if (b.beatDueInCurrentFrame())
82 {
83 // do something on the beat
84 }
85
86 **STEP 3.2 - Onset Detection Function Input**
87
88 The algorithm can process onset detection function samples. Given a double precision onset detection function sample called 'newSamples', at each step, call:
89
90 b.processOnsetDetectionFunctionSample(newSample);
91
92 and then check for beats with:
93
94 if (b.beatDueInCurrentFrame())
95 {
96 // do something on the beat
97 }
98
99
100 License
101 -------
102
103 Copyright (c) 2014 Queen Mary University of London
104
105 This program is free software: you can redistribute it and/or modify
106 it under the terms of the GNU General Public License as published by
107 the Free Software Foundation, either version 3 of the License, or
108 (at your option) any later version.
109
110 This program is distributed in the hope that it will be useful,
111 but WITHOUT ANY WARRANTY; without even the implied warranty of
112 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
113 GNU General Public License for more details.
114
115 You should have received a copy of the GNU General Public License
116 along with this program. If not, see <http://www.gnu.org/licenses/>.