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 */