Mercurial > hg > btrack
diff 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 |
line wrap: on
line diff
--- a/README.md Tue Jan 21 01:45:36 2014 +0000 +++ b/README.md Tue Jul 08 12:32:27 2014 +0100 @@ -1,7 +1,7 @@ BTrack - A Real-Time Beat Tracker ================================= -** Version 0.9 ** +** Version 1.0.0 ** *by Adam Stark, Matthew Davies and Mark Plumbley.* @@ -9,7 +9,7 @@ About BTrack ------------ -BTrack is a causal beat tracking algorithm intended for real-time use. It is implemented in C++ with a wrapper for Python. +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. Full details of the working of the algorithm can be found in: @@ -21,7 +21,11 @@ Versions -------- -==== 0.9 ==== +==== 1.0.0 ==== (8th July 2014) + +* Many updates to stability and improvements to implementation + +==== 0.9.0 ==== (circa 2008/2009) * This is the original version of the BTrack algorithm @@ -30,4 +34,83 @@ License ------- -BTrack is made available under the GNU General Public License, version 3. Please see the included LICENSE.txt for more details. \ No newline at end of file +BTrack is made available under the GNU General Public License, version 3. Please see the included LICENSE.txt for more details. + +Usage - C++ +----------- + +**STEP 1** + +Include the BTrack header file as follows: + + #include "BTrack.h" + +**STEP 2** + +Instantiate the algorithm by one of the following: + + // to use the default 512 hop size and 1024 frame size + BTrack b; + +or: + + // to specify a hop size (e.g. 512) and have a frame size of 2 x the hop size + BTrack b(512); + +or: + + // to specify both the hop size and frame size + BTrack b(512,1024); + +**STEP 3.1 - Audio Input** + +In the processing loop, fill a double precision array with one frame of audio samples (as determined in step 2): + + double *frame; + + // ! + // do something here to fill the frame with audio samples + // ! + +and then call: + + b.processAudioFrame(frame); + +and to check for beats, simply call: + + if (b.beatDueInCurrentFrame()) + { + // do something on the beat + } + +**STEP 3.2 - Onset Detection Function Input** + +The algorithm can process onset detection function samples. Given a double precision onset detection function sample called 'newSamples', at each step, call: + + b.processOnsetDetectionFunctionSample(newSample); + +and then check for beats with: + + if (b.beatDueInCurrentFrame()) + { + // do something on the beat + } + + +License +------- + +Copyright (c) 2014 Queen Mary University of London + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. \ No newline at end of file