adamstark@60
|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
adamstark@60
|
2 <html xmlns="http://www.w3.org/1999/xhtml">
|
adamstark@60
|
3 <head>
|
adamstark@60
|
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
adamstark@60
|
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
adamstark@61
|
6 <title>BTrack - A Real-Time Beat Tracker: BTrack - A Real-Time Beat Tracker</title>
|
adamstark@60
|
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
|
adamstark@60
|
8 <script type="text/javascript" src="jquery.js"></script>
|
adamstark@60
|
9 <script type="text/javascript" src="dynsections.js"></script>
|
adamstark@60
|
10 <link href="search/search.css" rel="stylesheet" type="text/css"/>
|
adamstark@60
|
11 <script type="text/javascript" src="search/search.js"></script>
|
adamstark@60
|
12 <script type="text/javascript">
|
adamstark@60
|
13 $(document).ready(function() { searchBox.OnSelectItem(0); });
|
adamstark@60
|
14 </script>
|
adamstark@60
|
15 <link href="doxygen.css" rel="stylesheet" type="text/css" />
|
adamstark@60
|
16 </head>
|
adamstark@60
|
17 <body>
|
adamstark@60
|
18 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
adamstark@60
|
19 <div id="titlearea">
|
adamstark@60
|
20 <table cellspacing="0" cellpadding="0">
|
adamstark@60
|
21 <tbody>
|
adamstark@60
|
22 <tr style="height: 56px;">
|
adamstark@60
|
23 <td style="padding-left: 0.5em;">
|
adamstark@60
|
24 <div id="projectname">BTrack - A Real-Time Beat Tracker
|
adamstark@60
|
25 </div>
|
adamstark@60
|
26 </td>
|
adamstark@60
|
27 </tr>
|
adamstark@60
|
28 </tbody>
|
adamstark@60
|
29 </table>
|
adamstark@60
|
30 </div>
|
adamstark@60
|
31 <!-- end header part -->
|
adamstark@60
|
32 <!-- Generated by Doxygen 1.8.2 -->
|
adamstark@60
|
33 <script type="text/javascript">
|
adamstark@60
|
34 var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
adamstark@60
|
35 </script>
|
adamstark@60
|
36 <div id="navrow1" class="tabs">
|
adamstark@60
|
37 <ul class="tablist">
|
adamstark@60
|
38 <li class="current"><a href="index.html"><span>Main Page</span></a></li>
|
adamstark@60
|
39 <li><a href="annotated.html"><span>Classes</span></a></li>
|
adamstark@60
|
40 <li><a href="files.html"><span>Files</span></a></li>
|
adamstark@60
|
41 <li>
|
adamstark@60
|
42 <div id="MSearchBox" class="MSearchBoxInactive">
|
adamstark@60
|
43 <span class="left">
|
adamstark@60
|
44 <img id="MSearchSelect" src="search/mag_sel.png"
|
adamstark@60
|
45 onmouseover="return searchBox.OnSearchSelectShow()"
|
adamstark@60
|
46 onmouseout="return searchBox.OnSearchSelectHide()"
|
adamstark@60
|
47 alt=""/>
|
adamstark@60
|
48 <input type="text" id="MSearchField" value="Search" accesskey="S"
|
adamstark@60
|
49 onfocus="searchBox.OnSearchFieldFocus(true)"
|
adamstark@60
|
50 onblur="searchBox.OnSearchFieldFocus(false)"
|
adamstark@60
|
51 onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
adamstark@60
|
52 </span><span class="right">
|
adamstark@60
|
53 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
adamstark@60
|
54 </span>
|
adamstark@60
|
55 </div>
|
adamstark@60
|
56 </li>
|
adamstark@60
|
57 </ul>
|
adamstark@60
|
58 </div>
|
adamstark@60
|
59 </div><!-- top -->
|
adamstark@60
|
60 <!-- window showing the filter options -->
|
adamstark@60
|
61 <div id="MSearchSelectWindow"
|
adamstark@60
|
62 onmouseover="return searchBox.OnSearchSelectShow()"
|
adamstark@60
|
63 onmouseout="return searchBox.OnSearchSelectHide()"
|
adamstark@60
|
64 onkeydown="return searchBox.OnSearchSelectKey(event)">
|
adamstark@61
|
65 <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Pages</a></div>
|
adamstark@60
|
66
|
adamstark@60
|
67 <!-- iframe showing the search results (closed by default) -->
|
adamstark@60
|
68 <div id="MSearchResultsWindow">
|
adamstark@60
|
69 <iframe src="javascript:void(0)" frameborder="0"
|
adamstark@60
|
70 name="MSearchResults" id="MSearchResults">
|
adamstark@60
|
71 </iframe>
|
adamstark@60
|
72 </div>
|
adamstark@60
|
73
|
adamstark@60
|
74 <div class="header">
|
adamstark@60
|
75 <div class="headertitle">
|
adamstark@61
|
76 <div class="title"><a class="el" href="class_b_track.html">BTrack</a> - A Real-Time Beat Tracker </div> </div>
|
adamstark@60
|
77 </div><!--header-->
|
adamstark@60
|
78 <div class="contents">
|
adamstark@61
|
79 <div class="textblock"><p>A real-time beat tracker, implemented in C++.</p>
|
adamstark@61
|
80 <p>Written by Adam Stark, Matthew Davies and Mark Plumbley.</p>
|
adamstark@61
|
81 <h2>License</h2>
|
adamstark@61
|
82 <p><a class="el" href="class_b_track.html">BTrack</a> is made available under the GNU General Public License, version 3. Please see the included LICENSE.txt for more details.</p>
|
adamstark@61
|
83 <h2>Usage - C++</h2>
|
adamstark@61
|
84 <p><b>STEP 1</b></p>
|
adamstark@61
|
85 <p>Include the <a class="el" href="class_b_track.html">BTrack</a> header file as follows: </p>
|
adamstark@61
|
86 <pre class="fragment"> #include "BTrack.h"
|
adamstark@61
|
87 </pre><p><b>STEP 2</b></p>
|
adamstark@61
|
88 <p>Instantiate the algorithm by one of the following: </p>
|
adamstark@61
|
89 <pre class="fragment">// to use the default 512 hop size and 1024 frame size
|
adamstark@61
|
90 BTrack b;
|
adamstark@61
|
91 </pre><p>or: </p>
|
adamstark@61
|
92 <pre class="fragment">// to specify a hop size (e.g. 512) and have a frame size of 2 x the hop size
|
adamstark@61
|
93 BTrack b(512);
|
adamstark@61
|
94 </pre><p>or: </p>
|
adamstark@61
|
95 <pre class="fragment">// to specify both the hop size and frame size
|
adamstark@61
|
96 BTrack b(512,1024);
|
adamstark@61
|
97 </pre><p><b>STEP 3.1 - Audio Input</b></p>
|
adamstark@61
|
98 <p>In the processing loop, fill a double precision array with one frame of audio samples (as determined in step 2): </p>
|
adamstark@61
|
99 <pre class="fragment">double *frame;
|
adamstark@61
|
100
|
adamstark@61
|
101 // !
|
adamstark@61
|
102 // do something here to fill the frame with audio samples
|
adamstark@61
|
103 // !
|
adamstark@61
|
104 </pre><p>and then call: </p>
|
adamstark@61
|
105 <pre class="fragment">b.processAudioFrame(frame);
|
adamstark@61
|
106 </pre><p>and to check for beats, simply call: </p>
|
adamstark@61
|
107 <pre class="fragment">if (b.beatDueInCurrentFrame())
|
adamstark@61
|
108 {
|
adamstark@61
|
109 // do something on the beat
|
adamstark@61
|
110 }
|
adamstark@61
|
111 </pre><p><b>STEP 3.2 - Onset Detection Function Input</b></p>
|
adamstark@61
|
112 <p>The algorithm can process onset detection function samples. Given a double precision onset detection function sample called 'newSamples', at each step, call: </p>
|
adamstark@61
|
113 <pre class="fragment">b.processOnsetDetectionFunctionSample(newSample);
|
adamstark@61
|
114 </pre><p>and then check for beats with: </p>
|
adamstark@61
|
115 <pre class="fragment">if (b.beatDueInCurrentFrame())
|
adamstark@61
|
116 {
|
adamstark@61
|
117 // do something on the beat
|
adamstark@61
|
118 }
|
adamstark@61
|
119 </pre><p>For any questions, please email Adam Stark (email at <a href="http://www.adamstark.co.uk">http://www.adamstark.co.uk</a>). </p>
|
adamstark@61
|
120 </div></div><!-- contents -->
|
adamstark@60
|
121 <!-- start footer part -->
|
adamstark@60
|
122 <hr class="footer"/><address class="footer"><small>
|
adamstark@67
|
123 Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by  <a href="http://www.doxygen.org/index.html">
|
adamstark@60
|
124 <img class="footer" src="doxygen.png" alt="doxygen"/>
|
adamstark@60
|
125 </a> 1.8.2
|
adamstark@60
|
126 </small></address>
|
adamstark@60
|
127 </body>
|
adamstark@60
|
128 </html>
|