annotate doc/mainpage.dox @ 117:ca2d83d29814 tip master

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