Changeset fbafd2c for doc/develop.rst
- Timestamp:
- Mar 25, 2017, 12:12:38 PM (8 years ago)
- Branches:
- sampler
- Children:
- b201912
- Parents:
- f8d96f1 (diff), 2a7bcaa (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/develop.rst
rf8d96f1 rfbafd2c 4 4 ====================== 5 5 6 Read `Contribute`_ to report issues and request new features.6 Here is a brief overview of the C library. 7 7 8 See `Doxygen documentation`_ for the complete documentation of the C library, 9 built using `Doxygen <http://www.doxygen.org/>`_.8 For a more detailed list of available functions, see the `API documentation 9 <https://aubio.org/doc/latest/>`_. 10 10 11 Below is a brief `Library overview`_. 11 To report issues, ask questions, and request new features, use `Github Issues 12 <https://github.com/aubio/aubio/issues>`_ 12 13 13 Library overview 14 ------------- ---14 Design Basics 15 ------------- 15 16 16 Here is a brief overview of the C library. See also the `Doxygen 17 documentation`_ for a more detailed list of available functions. 17 The library is written in C and is optimised for speed and portability. 18 18 19 Vectors and matrix 20 `````````````````` 21 22 ``fvec_t`` are used to hold vectors of float (``smpl_t``). 23 24 .. literalinclude:: ../tests/src/test-fvec.c 25 :language: C 26 :lines: 7 27 19 All memory allocations take place in the `new_` methods. Each successful call 20 to `new_` should have a matching call to `del_` to deallocate the object. 28 21 29 22 .. code-block:: C 30 23 31 // set some elements 32 vec->data[511] = 2.; 33 vec->data[vec->length-2] = 1.; 24 // new_ to create an object foobar 25 aubio_foobar_t * new_aubio_foobar(void * args); 26 // del_ to delete foobar 27 void del_aubio_foobar (aubio_foobar_t * foobar); 34 28 35 Similarly, ``fmat_t`` are used to hold matrix of floats.29 The main computations are done in the `_do` methods. 36 30 37 .. literalinclude:: ../tests/src/test-fmat.c 38 :language: C 39 :lines: 9-19 31 .. code-block:: C 32 33 // _do to process output = foobar(input) 34 audio_foobar_do (aubio_foobar_t * foobar, fvec_t * input, cvec_t * output); 35 36 Most parameters can be read and written at any time: 37 38 .. code-block:: C 39 40 // _get_param to get foobar.param 41 smpl_t aubio_foobar_get_a_parameter (aubio_foobar_t * foobar); 42 // _set_param to set foobar.param 43 uint_t aubio_foobar_set_a_parameter (aubio_foobar_t * foobar, smpl_t a_parameter); 44 45 In some case, more functions are available: 46 47 .. code-block:: C 48 49 // non-real time functions 50 uint_t aubio_foobar_reset(aubio_foobar_t * t); 51 52 Basic Types 53 ----------- 54 55 .. code-block:: C 56 57 // integers 58 uint_t n = 10; // unsigned 59 sint_t delay = -90; // signed 60 61 // float 62 smpl_t a = -90.; // simple precision 63 lsmp_t f = 0.024; // double precision 64 65 // vector of floats (simple precision) 66 fvec_t * vec = new_fvec(n); 67 vec->data[0] = 1; 68 vec->data[vec->length-1] = 1.; // vec->data has n elements 69 fvec_print(vec); 70 del_fvec(vec); 71 72 // complex data 73 cvec_t * fftgrain = new_cvec(n); 74 vec->norm[0] = 1.; // vec->norm has n/2+1 elements 75 vec->phas[n/2] = 3.1415; // vec->phas as well 76 del_cvec(fftgrain); 77 78 // matrix 79 fmat_t * mat = new_fmat (height, length); 80 mat->data[height-1][0] = 1; // mat->data has height rows 81 mat->data[0][length-1] = 10; // mat->data[0] has length columns 82 del_fmat(mat); 83 40 84 41 85 Reading a sound file 42 ```````````````````` 43 In this example, ``aubio_source`` is used to read a media file. 86 -------------------- 44 87 45 First, create the objects we need. 88 In this example, `aubio_source <https://aubio.org/doc/latest/source_8h.html>`_ 89 is used to read a media file. 90 91 First, define a few variables and allocate some memory. 46 92 47 93 .. literalinclude:: ../tests/src/io/test-source.c … … 59 105 :lines: 40-44 60 106 61 At the end of the processing loop, clean-up and de-allocate memory:107 At the end of the processing loop, memory is deallocated: 62 108 63 109 .. literalinclude:: ../tests/src/io/test-source.c 64 110 :language: C 65 :lines: 5 0-56111 :lines: 55-56 66 112 67 113 See the complete example: :download:`test-source.c 68 114 <../tests/src/io/test-source.c>`. 69 115 70 Computing thespectrum71 `````````````````````` 116 Computing a spectrum 117 -------------------- 72 118 73 119 Now let's create a phase vocoder: … … 81 127 .. literalinclude:: ../tests/src/spectral/test-phasevoc.c 82 128 :language: C 83 :lines: 21-35 129 :lines: 20-37 130 131 Time to clean up the previously allocated memory: 132 133 .. literalinclude:: ../tests/src/spectral/test-phasevoc.c 134 :language: C 135 :lines: 39-44 84 136 85 137 See the complete example: :download:`test-phasevoc.c … … 91 143 --------------------- 92 144 93 The latest version of the doxygen documentation is available at: 145 The latest version of the API documentation is built using `Doxygen 146 <http://www.doxygen.org/>`_ and is available at: 94 147 95 https://aubio.org/doc/latest 148 https://aubio.org/doc/latest/ 96 149 97 150 Contribute … … 100 153 Please report any issue and feature request at the `Github issue tracker 101 154 <https://github.com/aubio/aubio/issues>`_. Patches and pull-requests welcome! 102
Note: See TracChangeset
for help on using the changeset viewer.