changeset 67:ae3ec9b14092

Updated README, installation instructions for Python module and added an example.py file to explain how to use the Python module. Also regenerated documentation.
author Adam Stark <adamstark@users.noreply.github.com>
date Tue, 28 Jan 2014 01:07:44 +0000
parents b387d8327729
children ff83553fd8ea
files README.md doc/html/_b_track_8cpp.html doc/html/_b_track_8h.html doc/html/_b_track_8h_source.html doc/html/_onset_detection_function_8cpp.html doc/html/_onset_detection_function_8h.html doc/html/_onset_detection_function_8h_source.html doc/html/annotated.html doc/html/class_b_track-members.html doc/html/class_b_track.html doc/html/class_onset_detection_function-members.html doc/html/class_onset_detection_function.html doc/html/classes.html doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html doc/html/files.html doc/html/functions.html doc/html/functions_func.html doc/html/globals.html doc/html/globals_enum.html doc/html/index.html doc/html/search/all_69.js doc/html/search/all_6f.js doc/html/search/functions_69.js doc/html/search/functions_6f.js modules-and-plug-ins/python-module/INSTALL.md modules-and-plug-ins/python-module/example.py
diffstat 26 files changed, 215 insertions(+), 101 deletions(-) [+]
line wrap: on
line diff
--- a/README.md	Tue Jan 28 00:49:53 2014 +0000
+++ b/README.md	Tue Jan 28 01:07:44 2014 +0000
@@ -9,7 +9,7 @@
 About BTrack
 ------------
 
-BTrack is a causal beat tracking algorithm intended for real-time use. It is implemented in C++ with a wrapper for Python.
+BTrack is a causal beat tracking algorithm intended for real-time use. It is implemented in C++ with wrappers for Python and the Vamp plug-in framework.
 
 Full details of the working of the algorithm can be found in:
 
--- a/doc/html/_b_track_8cpp.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/_b_track_8cpp.html	Tue Jan 28 01:07:44 2014 +0000
@@ -103,7 +103,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/_b_track_8h.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/_b_track_8h.html	Tue Jan 28 01:07:44 2014 +0000
@@ -111,7 +111,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/_b_track_8h_source.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/_b_track_8h_source.html	Tue Jan 28 01:07:44 2014 +0000
@@ -202,7 +202,7 @@
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/_onset_detection_function_8cpp.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/_onset_detection_function_8cpp.html	Tue Jan 28 01:07:44 2014 +0000
@@ -101,7 +101,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/_onset_detection_function_8h.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/_onset_detection_function_8h.html	Tue Jan 28 01:07:44 2014 +0000
@@ -168,7 +168,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/_onset_detection_function_8h_source.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/_onset_detection_function_8h_source.html	Tue Jan 28 01:07:44 2014 +0000
@@ -125,80 +125,86 @@
 <div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;{</div>
 <div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="keyword">public</span>:</div>
 <div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    </div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <a class="code" href="class_onset_detection_function.html#a7b4e4ab1b0be5f57682c52141eb959d6">OnsetDetectionFunction</a>(<span class="keywordtype">int</span> hopSize_,<span class="keywordtype">int</span> frameSize_,<span class="keywordtype">int</span> onsetDetectionFunctionType_,<span class="keywordtype">int</span> windowType);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <a class="code" href="class_onset_detection_function.html#a1af5db39698d413cbb892b3a6de7aee5">OnsetDetectionFunction</a>(<span class="keywordtype">int</span> hopSize_,<span class="keywordtype">int</span> frameSize_);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    </div>
 <div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    </div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <a class="code" href="class_onset_detection_function.html#aa01f8125c950f3def45154878107e503">~OnsetDetectionFunction</a>();</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    </div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_onset_detection_function.html#a654ed22782f6dc62e8347df44c90fbeb">initialise</a>(<span class="keywordtype">int</span> hopSize_,<span class="keywordtype">int</span> frameSize_,<span class="keywordtype">int</span> onsetDetectionFunctionType_,<span class="keywordtype">int</span> windowType);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <a class="code" href="class_onset_detection_function.html#a1af5db39698d413cbb892b3a6de7aee5">OnsetDetectionFunction</a>(<span class="keywordtype">int</span> hopSize_,<span class="keywordtype">int</span> frameSize_,<span class="keywordtype">int</span> onsetDetectionFunctionType_,<span class="keywordtype">int</span> windowType_);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <a class="code" href="class_onset_detection_function.html#aa01f8125c950f3def45154878107e503">~OnsetDetectionFunction</a>();</div>
 <div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    </div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="class_onset_detection_function.html#a7b8fffe6221d3bd4f6cac82c17db0e92">calculateOnsetDetectionFunctionSample</a>(<span class="keywordtype">double</span> *buffer);</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    </div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_onset_detection_function.html#a51fdab443155aaaa935956645e8f9131">setOnsetDetectionFunctionType</a>(<span class="keywordtype">int</span> onsetDetectionFunctionType_);</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    </div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    </div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keywordtype">void</span> performFFT();</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="comment">//=======================================================================</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="comment"></span>    <span class="keywordtype">double</span> energyEnvelope();</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    </div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="keywordtype">double</span> energyDifference();</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    </div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">double</span> spectralDifference();</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_onset_detection_function.html#ab3379d150c375e4a7e525f326ce5a2e6">initialise</a>(<span class="keywordtype">int</span> hopSize_,<span class="keywordtype">int</span> frameSize_);</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_onset_detection_function.html#ab3379d150c375e4a7e525f326ce5a2e6">initialise</a>(<span class="keywordtype">int</span> hopSize_,<span class="keywordtype">int</span> frameSize_,<span class="keywordtype">int</span> onsetDetectionFunctionType_,<span class="keywordtype">int</span> windowType_);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="class_onset_detection_function.html#a7b8fffe6221d3bd4f6cac82c17db0e92">calculateOnsetDetectionFunctionSample</a>(<span class="keywordtype">double</span> *buffer);</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    </div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_onset_detection_function.html#a51fdab443155aaaa935956645e8f9131">setOnsetDetectionFunctionType</a>(<span class="keywordtype">int</span> onsetDetectionFunctionType_);</div>
 <div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    </div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordtype">double</span> spectralDifferenceHWR();</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    </div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keywordtype">double</span> phaseDeviation();</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    </div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordtype">double</span> complexSpectralDifference();</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordtype">void</span> performFFT();</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="comment">//=======================================================================</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="comment"></span>    <span class="keywordtype">double</span> energyEnvelope();</div>
 <div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    </div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keywordtype">double</span> complexSpectralDifferenceHWR();</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keywordtype">double</span> energyDifference();</div>
 <div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    </div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="keywordtype">double</span> highFrequencyContent();</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="keywordtype">double</span> spectralDifference();</div>
 <div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    </div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="keywordtype">double</span> highFrequencySpectralDifference();</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="keywordtype">double</span> spectralDifferenceHWR();</div>
 <div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    </div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keywordtype">double</span> highFrequencySpectralDifferenceHWR();</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="comment">//=======================================================================</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="comment"></span>    <span class="keywordtype">void</span> calculateRectangularWindow();</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    </div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordtype">void</span> calculateHanningWindow();</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    </div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="keywordtype">void</span> calclulateHammingWindow();</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    </div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="keywordtype">void</span> calculateBlackmanWindow();</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    </div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">void</span> calculateTukeyWindow();</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="comment">//=======================================================================</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="comment"></span>    <span class="keywordtype">double</span> princarg(<span class="keywordtype">double</span> phaseVal);</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    </div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    </div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keywordtype">double</span> pi;                          </div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordtype">int</span> frameSize;                      </div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="keywordtype">int</span> hopSize;                        </div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="keywordtype">int</span> onsetDetectionFunctionType;     </div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    fftw_plan p;                        </div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    fftw_complex *complexIn;            </div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    fftw_complex *complexOut;           </div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="keywordtype">bool</span> initialised;                   </div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    std::vector&lt;double&gt; frame;          </div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    std::vector&lt;double&gt; window;         </div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keywordtype">double</span> prevEnergySum;               </div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    std::vector&lt;double&gt; magSpec;        </div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    std::vector&lt;double&gt; prevMagSpec;    </div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    std::vector&lt;double&gt; phase;          </div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    std::vector&lt;double&gt; prevPhase;      </div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    std::vector&lt;double&gt; prevPhase2;     </div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;};</div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keywordtype">double</span> phaseDeviation();</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    </div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="keywordtype">double</span> complexSpectralDifference();</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    </div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordtype">double</span> complexSpectralDifferenceHWR();</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keywordtype">double</span> highFrequencyContent();</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="keywordtype">double</span> highFrequencySpectralDifference();</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <span class="keywordtype">double</span> highFrequencySpectralDifferenceHWR();</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="comment">//=======================================================================</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="comment"></span>    <span class="keywordtype">void</span> calculateRectangularWindow();</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="keywordtype">void</span> calculateHanningWindow();</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="keywordtype">void</span> calclulateHammingWindow();</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    </div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordtype">void</span> calculateBlackmanWindow();</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keywordtype">void</span> calculateTukeyWindow();</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="comment">//=======================================================================</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="comment"></span>    <span class="keywordtype">double</span> princarg(<span class="keywordtype">double</span> phaseVal);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keywordtype">double</span> pi;                          </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <span class="keywordtype">int</span> frameSize;                      </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="keywordtype">int</span> hopSize;                        </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="keywordtype">int</span> onsetDetectionFunctionType;     </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keywordtype">int</span> windowType;                     </div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    fftw_plan p;                        </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    fftw_complex *complexIn;            </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    fftw_complex *complexOut;           </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordtype">bool</span> initialised;                   </div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    std::vector&lt;double&gt; frame;          </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    std::vector&lt;double&gt; window;         </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <span class="keywordtype">double</span> prevEnergySum;               </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    std::vector&lt;double&gt; magSpec;        </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    std::vector&lt;double&gt; prevMagSpec;    </div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    std::vector&lt;double&gt; phase;          </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    std::vector&lt;double&gt; prevPhase;      </div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    std::vector&lt;double&gt; prevPhase2;     </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;};</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="preprocessor">#endif</span></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/annotated.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/annotated.html	Tue Jan 28 01:07:44 2014 +0000
@@ -92,7 +92,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/class_b_track-members.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/class_b_track-members.html	Tue Jan 28 01:07:44 2014 +0000
@@ -104,7 +104,7 @@
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/class_b_track.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/class_b_track.html	Tue Jan 28 01:07:44 2014 +0000
@@ -516,7 +516,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/class_onset_detection_function-members.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/class_onset_detection_function-members.html	Tue Jan 28 01:07:44 2014 +0000
@@ -87,14 +87,16 @@
 <p>This is the complete list of members for <a class="el" href="class_onset_detection_function.html">OnsetDetectionFunction</a>, including all inherited members.</p>
 <table class="directory">
   <tr class="even"><td class="entry"><a class="el" href="class_onset_detection_function.html#a7b8fffe6221d3bd4f6cac82c17db0e92">calculateOnsetDetectionFunctionSample</a>(double *buffer)</td><td class="entry"><a class="el" href="class_onset_detection_function.html">OnsetDetectionFunction</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="class_onset_detection_function.html#a654ed22782f6dc62e8347df44c90fbeb">initialise</a>(int hopSize_, int frameSize_, int onsetDetectionFunctionType_, int windowType)</td><td class="entry"><a class="el" href="class_onset_detection_function.html">OnsetDetectionFunction</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="class_onset_detection_function.html#a7b4e4ab1b0be5f57682c52141eb959d6">OnsetDetectionFunction</a>(int hopSize_, int frameSize_, int onsetDetectionFunctionType_, int windowType)</td><td class="entry"><a class="el" href="class_onset_detection_function.html">OnsetDetectionFunction</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_onset_detection_function.html#ab3379d150c375e4a7e525f326ce5a2e6">initialise</a>(int hopSize_, int frameSize_)</td><td class="entry"><a class="el" href="class_onset_detection_function.html">OnsetDetectionFunction</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_onset_detection_function.html#a4f9e1352bfdcd032bdd8193cc72489ba">initialise</a>(int hopSize_, int frameSize_, int onsetDetectionFunctionType_, int windowType_)</td><td class="entry"><a class="el" href="class_onset_detection_function.html">OnsetDetectionFunction</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_onset_detection_function.html#a1af5db39698d413cbb892b3a6de7aee5">OnsetDetectionFunction</a>(int hopSize_, int frameSize_)</td><td class="entry"><a class="el" href="class_onset_detection_function.html">OnsetDetectionFunction</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_onset_detection_function.html#ad2c23f2d1ac346da8289712df173b190">OnsetDetectionFunction</a>(int hopSize_, int frameSize_, int onsetDetectionFunctionType_, int windowType_)</td><td class="entry"><a class="el" href="class_onset_detection_function.html">OnsetDetectionFunction</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="class_onset_detection_function.html#a51fdab443155aaaa935956645e8f9131">setOnsetDetectionFunctionType</a>(int onsetDetectionFunctionType_)</td><td class="entry"><a class="el" href="class_onset_detection_function.html">OnsetDetectionFunction</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="class_onset_detection_function.html#aa01f8125c950f3def45154878107e503">~OnsetDetectionFunction</a>()</td><td class="entry"><a class="el" href="class_onset_detection_function.html">OnsetDetectionFunction</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/class_onset_detection_function.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/class_onset_detection_function.html	Tue Jan 28 01:07:44 2014 +0000
@@ -91,12 +91,16 @@
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a7b4e4ab1b0be5f57682c52141eb959d6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#a7b4e4ab1b0be5f57682c52141eb959d6">OnsetDetectionFunction</a> (int hopSize_, int frameSize_, int onsetDetectionFunctionType_, int windowType)</td></tr>
-<tr class="separator:a7b4e4ab1b0be5f57682c52141eb959d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1af5db39698d413cbb892b3a6de7aee5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#a1af5db39698d413cbb892b3a6de7aee5">OnsetDetectionFunction</a> (int hopSize_, int frameSize_)</td></tr>
+<tr class="separator:a1af5db39698d413cbb892b3a6de7aee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2c23f2d1ac346da8289712df173b190"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#ad2c23f2d1ac346da8289712df173b190">OnsetDetectionFunction</a> (int hopSize_, int frameSize_, int onsetDetectionFunctionType_, int windowType_)</td></tr>
+<tr class="separator:ad2c23f2d1ac346da8289712df173b190"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa01f8125c950f3def45154878107e503"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#aa01f8125c950f3def45154878107e503">~OnsetDetectionFunction</a> ()</td></tr>
 <tr class="separator:aa01f8125c950f3def45154878107e503"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a654ed22782f6dc62e8347df44c90fbeb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#a654ed22782f6dc62e8347df44c90fbeb">initialise</a> (int hopSize_, int frameSize_, int onsetDetectionFunctionType_, int windowType)</td></tr>
-<tr class="separator:a654ed22782f6dc62e8347df44c90fbeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3379d150c375e4a7e525f326ce5a2e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#ab3379d150c375e4a7e525f326ce5a2e6">initialise</a> (int hopSize_, int frameSize_)</td></tr>
+<tr class="separator:ab3379d150c375e4a7e525f326ce5a2e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f9e1352bfdcd032bdd8193cc72489ba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#a4f9e1352bfdcd032bdd8193cc72489ba">initialise</a> (int hopSize_, int frameSize_, int onsetDetectionFunctionType_, int windowType_)</td></tr>
+<tr class="separator:a4f9e1352bfdcd032bdd8193cc72489ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a7b8fffe6221d3bd4f6cac82c17db0e92"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#a7b8fffe6221d3bd4f6cac82c17db0e92">calculateOnsetDetectionFunctionSample</a> (double *buffer)</td></tr>
 <tr class="separator:a7b8fffe6221d3bd4f6cac82c17db0e92"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a51fdab443155aaaa935956645e8f9131"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_onset_detection_function.html#a51fdab443155aaaa935956645e8f9131">setOnsetDetectionFunctionType</a> (int onsetDetectionFunctionType_)</td></tr>
@@ -105,7 +109,41 @@
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>A class for calculating onset detection functions. </p>
 </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a7b4e4ab1b0be5f57682c52141eb959d6"></a>
+<a class="anchor" id="a1af5db39698d413cbb892b3a6de7aee5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">OnsetDetectionFunction::OnsetDetectionFunction </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>hopSize_</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>frameSize_</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Constructor that defaults the onset detection function type to ComplexSpectralDifferenceHWR and the window type to HanningWindow </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hopSize_</td><td>the hop size in audio samples </td></tr>
+    <tr><td class="paramname">frameSize_</td><td>the frame size in audio samples </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="ad2c23f2d1ac346da8289712df173b190"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -131,7 +169,7 @@
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">int&#160;</td>
-          <td class="paramname"><em>windowType</em>&#160;</td>
+          <td class="paramname"><em>windowType_</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -194,7 +232,41 @@
 
 </div>
 </div>
-<a class="anchor" id="a654ed22782f6dc62e8347df44c90fbeb"></a>
+<a class="anchor" id="ab3379d150c375e4a7e525f326ce5a2e6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void OnsetDetectionFunction::initialise </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>hopSize_</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>frameSize_</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Initialisation function for only updating hop size and frame size (and not window type or onset detection function type </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">hopSize_</td><td>the hop size in audio samples </td></tr>
+    <tr><td class="paramname">frameSize_</td><td>the frame size in audio samples </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a4f9e1352bfdcd032bdd8193cc72489ba"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -220,7 +292,7 @@
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">int&#160;</td>
-          <td class="paramname"><em>windowType</em>&#160;</td>
+          <td class="paramname"><em>windowType_</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -272,7 +344,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/classes.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/classes.html	Tue Jan 28 01:07:44 2014 +0000
@@ -96,7 +96,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html	Tue Jan 28 01:07:44 2014 +0000
@@ -99,7 +99,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/files.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/files.html	Tue Jan 28 01:07:44 2014 +0000
@@ -94,7 +94,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/functions.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/functions.html	Tue Jan 28 01:07:44 2014 +0000
@@ -114,10 +114,10 @@
 : <a class="el" href="class_b_track.html#a7ccb5059d0f00e3217ea686e4c1e156d">BTrack</a>
 </li>
 <li>initialise()
-: <a class="el" href="class_onset_detection_function.html#a654ed22782f6dc62e8347df44c90fbeb">OnsetDetectionFunction</a>
+: <a class="el" href="class_onset_detection_function.html#ab3379d150c375e4a7e525f326ce5a2e6">OnsetDetectionFunction</a>
 </li>
 <li>OnsetDetectionFunction()
-: <a class="el" href="class_onset_detection_function.html#a7b4e4ab1b0be5f57682c52141eb959d6">OnsetDetectionFunction</a>
+: <a class="el" href="class_onset_detection_function.html#a1af5db39698d413cbb892b3a6de7aee5">OnsetDetectionFunction</a>
 </li>
 <li>processAudioFrame()
 : <a class="el" href="class_b_track.html#abb7ce7253095e6f859ef7b30f06ce051">BTrack</a>
@@ -141,7 +141,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/functions_func.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/functions_func.html	Tue Jan 28 01:07:44 2014 +0000
@@ -114,10 +114,10 @@
 : <a class="el" href="class_b_track.html#a7ccb5059d0f00e3217ea686e4c1e156d">BTrack</a>
 </li>
 <li>initialise()
-: <a class="el" href="class_onset_detection_function.html#a654ed22782f6dc62e8347df44c90fbeb">OnsetDetectionFunction</a>
+: <a class="el" href="class_onset_detection_function.html#ab3379d150c375e4a7e525f326ce5a2e6">OnsetDetectionFunction</a>
 </li>
 <li>OnsetDetectionFunction()
-: <a class="el" href="class_onset_detection_function.html#a7b4e4ab1b0be5f57682c52141eb959d6">OnsetDetectionFunction</a>
+: <a class="el" href="class_onset_detection_function.html#a1af5db39698d413cbb892b3a6de7aee5">OnsetDetectionFunction</a>
 </li>
 <li>processAudioFrame()
 : <a class="el" href="class_b_track.html#abb7ce7253095e6f859ef7b30f06ce051">BTrack</a>
@@ -141,7 +141,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/globals.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/globals.html	Tue Jan 28 01:07:44 2014 +0000
@@ -95,7 +95,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/globals_enum.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/globals_enum.html	Tue Jan 28 01:07:44 2014 +0000
@@ -95,7 +95,7 @@
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/index.html	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/index.html	Tue Jan 28 01:07:44 2014 +0000
@@ -120,7 +120,7 @@
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Tue Jan 28 2014 00:29:23 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Jan 28 2014 01:06:53 for BTrack - A Real-Time Beat Tracker by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.2
 </small></address>
--- a/doc/html/search/all_69.js	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/search/all_69.js	Tue Jan 28 01:07:44 2014 +0000
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['initialise',['initialise',['../class_onset_detection_function.html#a654ed22782f6dc62e8347df44c90fbeb',1,'OnsetDetectionFunction']]]
+  ['initialise',['initialise',['../class_onset_detection_function.html#ab3379d150c375e4a7e525f326ce5a2e6',1,'OnsetDetectionFunction::initialise(int hopSize_, int frameSize_)'],['../class_onset_detection_function.html#a4f9e1352bfdcd032bdd8193cc72489ba',1,'OnsetDetectionFunction::initialise(int hopSize_, int frameSize_, int onsetDetectionFunctionType_, int windowType_)']]]
 ];
--- a/doc/html/search/all_6f.js	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/search/all_6f.js	Tue Jan 28 01:07:44 2014 +0000
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['onsetdetectionfunction',['OnsetDetectionFunction',['../class_onset_detection_function.html',1,'OnsetDetectionFunction'],['../class_onset_detection_function.html#a7b4e4ab1b0be5f57682c52141eb959d6',1,'OnsetDetectionFunction::OnsetDetectionFunction()']]],
+  ['onsetdetectionfunction',['OnsetDetectionFunction',['../class_onset_detection_function.html',1,'OnsetDetectionFunction'],['../class_onset_detection_function.html#a1af5db39698d413cbb892b3a6de7aee5',1,'OnsetDetectionFunction::OnsetDetectionFunction(int hopSize_, int frameSize_)'],['../class_onset_detection_function.html#ad2c23f2d1ac346da8289712df173b190',1,'OnsetDetectionFunction::OnsetDetectionFunction(int hopSize_, int frameSize_, int onsetDetectionFunctionType_, int windowType_)']]],
   ['onsetdetectionfunction_2ecpp',['OnsetDetectionFunction.cpp',['../_onset_detection_function_8cpp.html',1,'']]],
   ['onsetdetectionfunction_2eh',['OnsetDetectionFunction.h',['../_onset_detection_function_8h.html',1,'']]],
   ['onsetdetectionfunctiontype',['OnsetDetectionFunctionType',['../_onset_detection_function_8h.html#a36dbf81d14d771e0712d0316ec06612b',1,'OnsetDetectionFunction.h']]]
--- a/doc/html/search/functions_69.js	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/search/functions_69.js	Tue Jan 28 01:07:44 2014 +0000
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['initialise',['initialise',['../class_onset_detection_function.html#a654ed22782f6dc62e8347df44c90fbeb',1,'OnsetDetectionFunction']]]
+  ['initialise',['initialise',['../class_onset_detection_function.html#ab3379d150c375e4a7e525f326ce5a2e6',1,'OnsetDetectionFunction::initialise(int hopSize_, int frameSize_)'],['../class_onset_detection_function.html#a4f9e1352bfdcd032bdd8193cc72489ba',1,'OnsetDetectionFunction::initialise(int hopSize_, int frameSize_, int onsetDetectionFunctionType_, int windowType_)']]]
 ];
--- a/doc/html/search/functions_6f.js	Tue Jan 28 00:49:53 2014 +0000
+++ b/doc/html/search/functions_6f.js	Tue Jan 28 01:07:44 2014 +0000
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['onsetdetectionfunction',['OnsetDetectionFunction',['../class_onset_detection_function.html#a7b4e4ab1b0be5f57682c52141eb959d6',1,'OnsetDetectionFunction']]]
+  ['onsetdetectionfunction',['OnsetDetectionFunction',['../class_onset_detection_function.html#a1af5db39698d413cbb892b3a6de7aee5',1,'OnsetDetectionFunction::OnsetDetectionFunction(int hopSize_, int frameSize_)'],['../class_onset_detection_function.html#ad2c23f2d1ac346da8289712df173b190',1,'OnsetDetectionFunction::OnsetDetectionFunction(int hopSize_, int frameSize_, int onsetDetectionFunctionType_, int windowType_)']]]
 ];
--- a/modules-and-plug-ins/python-module/INSTALL.md	Tue Jan 28 00:49:53 2014 +0000
+++ b/modules-and-plug-ins/python-module/INSTALL.md	Tue Jan 28 01:07:44 2014 +0000
@@ -15,3 +15,9 @@
 	python setup.py install
 	
 You may need to prefix the second command with 'sudo', depending upon your system configuration.
+
+
+Usage
+-----
+
+See the example.py script for basic usage of the Python module.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/modules-and-plug-ins/python-module/example.py	Tue Jan 28 01:07:44 2014 +0000
@@ -0,0 +1,28 @@
+# need scikits audiolab for reading audio files
+from scikits.audiolab import wavread
+
+# need to import btrack, our beat tracker
+import btrack
+
+# set the path to an audio file on your machine
+audioFilePath = "/Users/adamstark/Documents/Audio/Databases/Hainsworth/audio/001.wav"
+
+# read the audio file
+audioData, fs, enc = wavread(audioFilePath)     # extract audio from file
+
+# convert to mono if need be
+if (audioData[0].size == 2):
+    print "converting to mono"
+    data = np.average(data,axis=1)
+
+# ==========================================    
+# Usage A: track beats from audio            
+beats = btrack.trackBeats(audioData)    
+
+# ==========================================
+# Usage B: extract the onset detection function
+onsetDF = btrack.calculateOnsetDF(audioData)         
+
+# ==========================================
+# Usage C: track beats from the onset detection function (calculated in Usage B)
+ODFbeats = btrack.trackBeatsFromOnsetDF(onsetDF)