Sophie

Sophie

distrib > Mageia > 6 > armv7hl > by-pkgid > 52c675b343936dc300a25ab661f24b1f > files > 126

libaubio-devel-0.4.2-2.2.mga6.armv7hl.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>aubio: Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">aubio
   &#160;<span id="projectnumber">0.4.2~alpha</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">aubio Documentation</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h1><a class="anchor" id="introduction"></a>
Introduction</h1>
<p>aubio is a library to extract annotations from audio signals: it provides a set of functions that take an input audio signal, and output pitch estimates, attack times (onset), beat location estimates, and other annotation tasks.</p>
<h1><a class="anchor" id="basics"></a>
Basics</h1>
<p>All object structures in aubio share the same function prefixes and suffixes:</p>
<ul>
<li><code>new_aubio_foo</code> creates the object <code>foo</code> </li>
<li><code>aubio_foo_do</code> executes the object <code>foo</code> </li>
<li><code>del_aubio_foo</code> destroys the object <code>foo</code> </li>
</ul>
<p>All memory allocation and deallocation take place in the <code>new_</code> and <code>del_</code> functions. Optionally, more than one <code>_do</code> methods are available. Additional parameters can be adjusted and observed using:</p>
<ul>
<li><code>aubio_foo_get_param</code>, getter function, gets the value of a parameter</li>
<li><code>aubio_foo_set_param</code>, setter function, changes the value of a parameter</li>
</ul>
<p>Unless specified in its documentation, no memory operations take place in the getter functions. However, memory resizing can take place in setter functions.</p>
<h2><a class="anchor" id="vectors"></a>
Vectors</h2>
<p>Two basic structures are being used in aubio: <a class="el" href="structfvec__t.html" title="Buffer for real data. ">fvec_t</a> and <a class="el" href="structcvec__t.html" title="Vector of real-valued phase and spectrum data. ">cvec_t</a>. The <a class="el" href="structfvec__t.html" title="Buffer for real data. ">fvec_t</a> structures are used to store vectors of floating pointer number. <a class="el" href="structcvec__t.html" title="Vector of real-valued phase and spectrum data. ">cvec_t</a> are used to store complex number, as two vectors of norm and phase elements.</p>
<p>Additionally, the <a class="el" href="structlvec__t.html" title="Buffer for real data in double precision. ">lvec_t</a> structure can be used to store floating point numbers in double precision. They are mostly used to store filter coefficients, to avoid instability.</p>
<h2><a class="anchor" id="objects"></a>
Available objects</h2>
<p>Here is a list of some of the most common objects for aubio:</p>
<div class="fragment"><div class="line"><span class="comment">// fast Fourier transform (FFT)</span></div><div class="line"><a class="code" href="fft_8h.html#ad506b94ab0c39da949d97064e394d2c9">aubio_fft_t</a> *fft = <a class="code" href="fft_8h.html#a4673d96bb99fa2e758352cc177516465">new_aubio_fft</a> (winsize);</div><div class="line"><span class="comment">// phase vocoder</span></div><div class="line"><a class="code" href="phasevoc_8h.html#a0ab307b4e3ade23af88ccebbe81900e5">aubio_pvoc_t</a> *pv = <a class="code" href="phasevoc_8h.html#aff037315bd1ae2caca67ee95e735c31b">new_aubio_pvoc</a> (winsize, stepsize);</div><div class="line"><span class="comment">// onset detection</span></div><div class="line"><a class="code" href="onset_8h.html#aab9be831df71952f95d3685f86fce281">aubio_onset_t</a> *onset = <a class="code" href="onset_8h.html#a00512092dd9dde0cdf0cf73b9109c149">new_aubio_onset</a> (method, winsize, stepsize, samplerate);</div><div class="line"><span class="comment">// pitch detection</span></div><div class="line"><a class="code" href="pitch_8h.html#af76b14582e2b766e6b325038fe6426a0">aubio_pitch_t</a> *pitch = <a class="code" href="pitch_8h.html#a962561ea270e0308ed26ac9bab554550">new_aubio_pitch</a> (method, winsize, stepsize, samplerate);</div><div class="line"><span class="comment">// beat tracking</span></div><div class="line"><a class="code" href="tempo_8h.html#a4d9ae24f5a1ffe740169611a298e991b">aubio_tempo_t</a> *tempo = <a class="code" href="tempo_8h.html#aaa49f5d6554904a452d031775f385521">new_aubio_tempo</a> (method, winsize, stepsize, samplerate);</div></div><!-- fragment --><p>See the <a href="globals_type.html">list of typedefs</a> for a complete list.</p>
<h2><a class="anchor" id="example"></a>
Example</h2>
<p>Here is a simple example that creates an A-Weighting filter and applies it to a vector.</p>
<div class="fragment"><div class="line"><span class="comment">// set window size, and sampling rate</span></div><div class="line"><a class="code" href="types_8h.html#a12a1e9b3ce141648783a82445d02b58d">uint_t</a> winsize = 1024, sr = 44100;</div><div class="line"><span class="comment">// create a vector</span></div><div class="line"><a class="code" href="structfvec__t.html">fvec_t</a> *this_buffer = <a class="code" href="fvec_8h.html#aa9bc0906651523429a4ebf7b4342fe73">new_fvec</a> (winsize);</div><div class="line"><span class="comment">// create the a-weighting filter</span></div><div class="line"><a class="code" href="filter_8h.html#a49b09d27ea1ef7b06d9948048143f67a">aubio_filter_t</a> *this_filter = <a class="code" href="a__weighting_8h.html#a99c12d2c155e374aa55f4c9bea923ef5">new_aubio_filter_a_weighting</a> (sr);</div><div class="line"></div><div class="line"><span class="keywordflow">while</span> (running) {</div><div class="line">  <span class="comment">// here some code to put some data in this_buffer</span></div><div class="line">  <span class="comment">// ...</span></div><div class="line"></div><div class="line">  <span class="comment">// apply the filter, in place</span></div><div class="line">  <a class="code" href="filter_8h.html#aca218f7701ad142eb6c0ce95b2d1c49b">aubio_filter_do</a> (this_filter, this_buffer);</div><div class="line"></div><div class="line">  <span class="comment">// here some code to get some data from this_buffer</span></div><div class="line">  <span class="comment">// ...</span></div><div class="line">}</div><div class="line"></div><div class="line"><span class="comment">// and free the structures</span></div><div class="line"><a class="code" href="filter_8h.html#a55e4be86dd74d9eddfe544bddc94e482">del_aubio_filter</a> (this_filter);</div><div class="line"><a class="code" href="fvec_8h.html#a86fad6d27aad91c910d1b48195922cb9">del_fvec</a> (this_buffer);</div></div><!-- fragment --><p>Several examples of C programs are available in the <code>examples/</code> and <code>tests/src</code> directories of the source tree.</p>
<h2><a class="anchor" id="unstable_api"></a>
Unstable API</h2>
<p>Several more functions are available and used within aubio, but not documented here, either because they are not considered useful to the user, or because they may need to be changed in the future. However, they can still be used by defining AUBIO_UNSTABLE to 1 before including the aubio header:</p>
<div class="fragment"><div class="line"><span class="preprocessor">#define AUBIO_UNSTABLE 1</span></div><div class="line"><span class="preprocessor">#include &lt;aubio/aubio.h&gt;</span></div></div><!-- fragment --><p>Future versions of aubio could break API compatibility with these functions without warning. If you choose to use functions in AUBIO_UNSTABLE, you are on your own.</p>
<h1><a class="anchor" id="download"></a>
Download</h1>
<p>Latest versions, further documentation, examples, wiki, and mailing lists can be found at <a href="http://aubio.org">http://aubio.org</a> . </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>