Mercurial > hg > btrack
comparison doc/html/index.html @ 114:d6d9df2db3e1
Update documentation
| author | Adam Stark <adamstark.uk@gmail.com> |
|---|---|
| date | Fri, 18 Aug 2023 10:48:26 +0200 |
| parents | ae3ec9b14092 |
| children |
comparison
equal
deleted
inserted
replaced
| 113:1fb8df379f2d | 114:d6d9df2db3e1 |
|---|---|
| 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| 2 <html xmlns="http://www.w3.org/1999/xhtml"> | 2 <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> |
| 3 <head> | 3 <head> |
| 4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | 4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
| 5 <meta http-equiv="X-UA-Compatible" content="IE=9"/> | 5 <meta http-equiv="X-UA-Compatible" content="IE=11"/> |
| 6 <meta name="generator" content="Doxygen 1.9.7"/> | |
| 7 <meta name="viewport" content="width=device-width, initial-scale=1"/> | |
| 6 <title>BTrack - A Real-Time Beat Tracker: BTrack - A Real-Time Beat Tracker</title> | 8 <title>BTrack - A Real-Time Beat Tracker: BTrack - A Real-Time Beat Tracker</title> |
| 7 <link href="tabs.css" rel="stylesheet" type="text/css"/> | 9 <link href="tabs.css" rel="stylesheet" type="text/css"/> |
| 8 <script type="text/javascript" src="jquery.js"></script> | 10 <script type="text/javascript" src="jquery.js"></script> |
| 9 <script type="text/javascript" src="dynsections.js"></script> | 11 <script type="text/javascript" src="dynsections.js"></script> |
| 10 <link href="search/search.css" rel="stylesheet" type="text/css"/> | 12 <link href="search/search.css" rel="stylesheet" type="text/css"/> |
| 13 <script type="text/javascript" src="search/searchdata.js"></script> | |
| 11 <script type="text/javascript" src="search/search.js"></script> | 14 <script type="text/javascript" src="search/search.js"></script> |
| 12 <script type="text/javascript"> | |
| 13 $(document).ready(function() { searchBox.OnSelectItem(0); }); | |
| 14 </script> | |
| 15 <link href="doxygen.css" rel="stylesheet" type="text/css" /> | 15 <link href="doxygen.css" rel="stylesheet" type="text/css" /> |
| 16 </head> | 16 </head> |
| 17 <body> | 17 <body> |
| 18 <div id="top"><!-- do not remove this div, it is closed by doxygen! --> | 18 <div id="top"><!-- do not remove this div, it is closed by doxygen! --> |
| 19 <div id="titlearea"> | 19 <div id="titlearea"> |
| 20 <table cellspacing="0" cellpadding="0"> | 20 <table cellspacing="0" cellpadding="0"> |
| 21 <tbody> | 21 <tbody> |
| 22 <tr style="height: 56px;"> | 22 <tr id="projectrow"> |
| 23 <td style="padding-left: 0.5em;"> | 23 <td id="projectalign"> |
| 24 <div id="projectname">BTrack - A Real-Time Beat Tracker | 24 <div id="projectname">BTrack - A Real-Time Beat Tracker |
| 25 </div> | 25 </div> |
| 26 </td> | 26 </td> |
| 27 </tr> | 27 </tr> |
| 28 </tbody> | 28 </tbody> |
| 29 </table> | 29 </table> |
| 30 </div> | 30 </div> |
| 31 <!-- end header part --> | 31 <!-- end header part --> |
| 32 <!-- Generated by Doxygen 1.8.2 --> | 32 <!-- Generated by Doxygen 1.9.7 --> |
| 33 <script type="text/javascript"> | 33 <script type="text/javascript"> |
| 34 var searchBox = new SearchBox("searchBox", "search",false,'Search'); | 34 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| 35 var searchBox = new SearchBox("searchBox", "search/",'.html'); | |
| 36 /* @license-end */ | |
| 35 </script> | 37 </script> |
| 36 <div id="navrow1" class="tabs"> | 38 <script type="text/javascript" src="menudata.js"></script> |
| 37 <ul class="tablist"> | 39 <script type="text/javascript" src="menu.js"></script> |
| 38 <li class="current"><a href="index.html"><span>Main Page</span></a></li> | 40 <script type="text/javascript"> |
| 39 <li><a href="annotated.html"><span>Classes</span></a></li> | 41 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| 40 <li><a href="files.html"><span>Files</span></a></li> | 42 $(function() { |
| 41 <li> | 43 initMenu('',true,false,'search.php','Search'); |
| 42 <div id="MSearchBox" class="MSearchBoxInactive"> | 44 $(document).ready(function() { init_search(); }); |
| 43 <span class="left"> | 45 }); |
| 44 <img id="MSearchSelect" src="search/mag_sel.png" | 46 /* @license-end */ |
| 45 onmouseover="return searchBox.OnSearchSelectShow()" | 47 </script> |
| 46 onmouseout="return searchBox.OnSearchSelectHide()" | 48 <div id="main-nav"></div> |
| 47 alt=""/> | |
| 48 <input type="text" id="MSearchField" value="Search" accesskey="S" | |
| 49 onfocus="searchBox.OnSearchFieldFocus(true)" | |
| 50 onblur="searchBox.OnSearchFieldFocus(false)" | |
| 51 onkeyup="searchBox.OnSearchFieldChange(event)"/> | |
| 52 </span><span class="right"> | |
| 53 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> | |
| 54 </span> | |
| 55 </div> | |
| 56 </li> | |
| 57 </ul> | |
| 58 </div> | |
| 59 </div><!-- top --> | 49 </div><!-- top --> |
| 60 <!-- window showing the filter options --> | 50 <!-- window showing the filter options --> |
| 61 <div id="MSearchSelectWindow" | 51 <div id="MSearchSelectWindow" |
| 62 onmouseover="return searchBox.OnSearchSelectShow()" | 52 onmouseover="return searchBox.OnSearchSelectShow()" |
| 63 onmouseout="return searchBox.OnSearchSelectHide()" | 53 onmouseout="return searchBox.OnSearchSelectHide()" |
| 64 onkeydown="return searchBox.OnSearchSelectKey(event)"> | 54 onkeydown="return searchBox.OnSearchSelectKey(event)"> |
| 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> | 55 </div> |
| 66 | 56 |
| 67 <!-- iframe showing the search results (closed by default) --> | 57 <!-- iframe showing the search results (closed by default) --> |
| 68 <div id="MSearchResultsWindow"> | 58 <div id="MSearchResultsWindow"> |
| 69 <iframe src="javascript:void(0)" frameborder="0" | 59 <div id="MSearchResults"> |
| 70 name="MSearchResults" id="MSearchResults"> | 60 <div class="SRPage"> |
| 71 </iframe> | 61 <div id="SRIndex"> |
| 62 <div id="SRResults"></div> | |
| 63 <div class="SRStatus" id="Loading">Loading...</div> | |
| 64 <div class="SRStatus" id="Searching">Searching...</div> | |
| 65 <div class="SRStatus" id="NoMatches">No Matches</div> | |
| 66 </div> | |
| 67 </div> | |
| 68 </div> | |
| 72 </div> | 69 </div> |
| 73 | 70 |
| 74 <div class="header"> | 71 <div><div class="header"> |
| 75 <div class="headertitle"> | 72 <div class="headertitle"><div class="title"><a class="el" href="class_b_track.html">BTrack</a> - A Real-Time Beat Tracker </div></div> |
| 76 <div class="title"><a class="el" href="class_b_track.html">BTrack</a> - A Real-Time Beat Tracker </div> </div> | |
| 77 </div><!--header--> | 73 </div><!--header--> |
| 78 <div class="contents"> | 74 <div class="contents"> |
| 79 <div class="textblock"><p>A real-time beat tracker, implemented in C++.</p> | 75 <div class="textblock"><p>A real-time beat tracker, implemented in C++.</p> |
| 80 <p>Written by Adam Stark, Matthew Davies and Mark Plumbley.</p> | 76 <p>Written by Adam Stark, Matthew Davies and Mark Plumbley.</p> |
| 81 <h2>License</h2> | 77 <h2><a class="anchor" id="autotoc_md0"></a> |
| 78 License</h2> | |
| 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> | 79 <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> |
| 83 <h2>Usage - C++</h2> | 80 <h2><a class="anchor" id="autotoc_md1"></a> |
| 81 Usage - C++</h2> | |
| 84 <p><b>STEP 1</b></p> | 82 <p><b>STEP 1</b></p> |
| 85 <p>Include the <a class="el" href="class_b_track.html">BTrack</a> header file as follows: </p> | 83 <p>Include the <a class="el" href="class_b_track.html">BTrack</a> header file as follows: </p><pre class="fragment"> #include "BTrack.h" |
| 86 <pre class="fragment"> #include "BTrack.h" | 84 </pre><p> <b>STEP 2</b></p> |
| 87 </pre><p><b>STEP 2</b></p> | 85 <p>Instantiate the algorithm by one of the following:</p> |
| 88 <p>Instantiate the algorithm by one of the following: </p> | |
| 89 <pre class="fragment">// to use the default 512 hop size and 1024 frame size | 86 <pre class="fragment">// to use the default 512 hop size and 1024 frame size |
| 90 BTrack b; | 87 BTrack b; |
| 91 </pre><p>or: </p> | 88 </pre><p> or: </p><pre class="fragment">// to specify a hop size (e.g. 512) and have a frame size of 2 x the hop size |
| 92 <pre class="fragment">// to specify a hop size (e.g. 512) and have a frame size of 2 x the hop size | |
| 93 BTrack b(512); | 89 BTrack b(512); |
| 94 </pre><p>or: </p> | 90 </pre><p> or: </p><pre class="fragment">// to specify both the hop size and frame size |
| 95 <pre class="fragment">// to specify both the hop size and frame size | |
| 96 BTrack b(512,1024); | 91 BTrack b(512,1024); |
| 97 </pre><p><b>STEP 3.1 - Audio Input</b></p> | 92 </pre><p> <b>STEP 3.1 - Audio Input</b></p> |
| 98 <p>In the processing loop, fill a double precision array with one frame of audio samples (as determined in step 2): </p> | 93 <p>In the processing loop, fill a double precision array with one frame of audio samples (as determined in step 2): </p><pre class="fragment">double *frame; |
| 99 <pre class="fragment">double *frame; | |
| 100 | 94 |
| 101 // ! | 95 // ! |
| 102 // do something here to fill the frame with audio samples | 96 // do something here to fill the frame with audio samples |
| 103 // ! | 97 // ! |
| 104 </pre><p>and then call: </p> | 98 </pre><p> and then call: </p><pre class="fragment">b.processAudioFrame(frame); |
| 105 <pre class="fragment">b.processAudioFrame(frame); | 99 </pre><p> and to check for beats, simply call: </p><pre class="fragment">if (b.beatDueInCurrentFrame()) |
| 106 </pre><p>and to check for beats, simply call: </p> | |
| 107 <pre class="fragment">if (b.beatDueInCurrentFrame()) | |
| 108 { | 100 { |
| 109 // do something on the beat | 101 // do something on the beat |
| 110 } | 102 } |
| 111 </pre><p><b>STEP 3.2 - Onset Detection Function Input</b></p> | 103 </pre><p> <b>STEP 3.2 - Onset Detection Function Input</b> <br /> |
| 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> | 104 </p> |
| 113 <pre class="fragment">b.processOnsetDetectionFunctionSample(newSample); | 105 <p>The algorithm can process onset detection function samples. Given a double precision onset detection function sample called 'newSamples', at each step, call: </p><pre class="fragment">b.processOnsetDetectionFunctionSample(newSample); |
| 114 </pre><p>and then check for beats with: </p> | 106 </pre><p> and then check for beats with: </p><pre class="fragment">if (b.beatDueInCurrentFrame()) |
| 115 <pre class="fragment">if (b.beatDueInCurrentFrame()) | |
| 116 { | 107 { |
| 117 // do something on the beat | 108 // do something on the beat |
| 118 } | 109 } |
| 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> | 110 </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> |
| 120 </div></div><!-- contents --> | 111 </div></div><!-- PageDoc --> |
| 112 </div><!-- contents --> | |
| 121 <!-- start footer part --> | 113 <!-- start footer part --> |
| 122 <hr class="footer"/><address class="footer"><small> | 114 <hr class="footer"/><address class="footer"><small> |
| 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"> | 115 Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7 |
| 124 <img class="footer" src="doxygen.png" alt="doxygen"/> | |
| 125 </a> 1.8.2 | |
| 126 </small></address> | 116 </small></address> |
| 127 </body> | 117 </body> |
| 128 </html> | 118 </html> |
