annotate README.md @ 34:06fb712323bd release/1.0.0

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