Mercurial > hg > btrack
annotate doc/mainpage.dox @ 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 | deb49a2590f3 |
children |
rev | line source |
---|---|
adamstark@24 | 1 /** |
adamstark@24 | 2 * \mainpage BTrack - A Real-Time Beat Tracker |
adamstark@24 | 3 * |
adamstark@24 | 4 * A real-time beat tracker, implemented in C++. |
adamstark@24 | 5 * |
adamstark@24 | 6 * Written by Adam Stark, Matthew Davies and Mark Plumbley. |
adamstark@24 | 7 * |
adamstark@24 | 8 * License |
adamstark@24 | 9 * ------- |
adamstark@24 | 10 * |
adamstark@24 | 11 * BTrack is made available under the GNU General Public License, version 3. Please see the included LICENSE.txt for more details. |
adamstark@24 | 12 * |
adamstark@24 | 13 * Usage - C++ |
adamstark@24 | 14 * ----------- |
adamstark@24 | 15 * |
adamstark@24 | 16 * **STEP 1** |
adamstark@24 | 17 * |
adamstark@24 | 18 * Include the BTrack header file as follows: |
adamstark@24 | 19 * |
adamstark@24 | 20 * #include "BTrack.h" |
adamstark@24 | 21 * |
adamstark@24 | 22 * **STEP 2** |
adamstark@24 | 23 * |
adamstark@24 | 24 * Instantiate the algorithm by one of the following: |
adamstark@24 | 25 * |
adamstark@24 | 26 * |
adamstark@24 | 27 * // to use the default 512 hop size and 1024 frame size |
adamstark@24 | 28 * BTrack b; |
adamstark@24 | 29 * |
adamstark@24 | 30 * or: |
adamstark@24 | 31 * |
adamstark@24 | 32 * // to specify a hop size (e.g. 512) and have a frame size of 2 x the hop size |
adamstark@24 | 33 * BTrack b(512); |
adamstark@24 | 34 * |
adamstark@24 | 35 * or: |
adamstark@24 | 36 * |
adamstark@24 | 37 * // to specify both the hop size and frame size |
adamstark@24 | 38 * BTrack b(512,1024); |
adamstark@24 | 39 * |
adamstark@24 | 40 * **STEP 3.1 - Audio Input** |
adamstark@24 | 41 * |
adamstark@24 | 42 * In the processing loop, fill a double precision array with one frame of audio samples (as determined in step 2): |
adamstark@24 | 43 * |
adamstark@24 | 44 * double *frame; |
adamstark@24 | 45 * |
adamstark@24 | 46 * // ! |
adamstark@24 | 47 * // do something here to fill the frame with audio samples |
adamstark@24 | 48 * // ! |
adamstark@24 | 49 * |
adamstark@24 | 50 * and then call: |
adamstark@24 | 51 * |
adamstark@24 | 52 * b.processAudioFrame(frame); |
adamstark@24 | 53 * |
adamstark@24 | 54 * and to check for beats, simply call: |
adamstark@24 | 55 * |
adamstark@24 | 56 * if (b.beatDueInCurrentFrame()) |
adamstark@24 | 57 * { |
adamstark@24 | 58 * // do something on the beat |
adamstark@24 | 59 * } |
adamstark@24 | 60 * |
adamstark@24 | 61 * **STEP 3.2 - Onset Detection Function Input** |
adamstark@24 | 62 * |
adamstark@24 | 63 * The algorithm can process onset detection function samples. Given a double precision onset detection function sample called 'newSamples', at each step, call: |
adamstark@24 | 64 * |
adamstark@24 | 65 * b.processOnsetDetectionFunctionSample(newSample); |
adamstark@24 | 66 * |
adamstark@24 | 67 * and then check for beats with: |
adamstark@24 | 68 * |
adamstark@24 | 69 * if (b.beatDueInCurrentFrame()) |
adamstark@24 | 70 * { |
adamstark@24 | 71 * // do something on the beat |
adamstark@24 | 72 * } |
adamstark@24 | 73 * |
adamstark@24 | 74 * For any questions, please email Adam Stark (email at http://www.adamstark.co.uk). |
adamstark@24 | 75 */ |