source: doc/requirements.rst @ 4b251ae

feature/autosinkfeature/cnnfeature/cnn_orgfeature/constantqfeature/crepefeature/crepe_orgfeature/pitchshiftfeature/pydocstringsfeature/timestretchfix/ffmpeg5pitchshiftsamplertimestretchyinfft+
Last change on this file since 4b251ae was 7a8a07e, checked in by Paul Brossier <piem@piem.org>, 8 years ago

doc/develop.rst: add some documentation about the c-api

  • Property mode set to 100644
File size: 5.6 KB
RevLine 
[5069da3]1.. _requirements:
2
3Requirements
4============
5
[a9a1e79]6While aubio can be built without any external dependencies, we **recommend** to
7use at least some of the following libraries.
[5069da3]8
9Platform notes
10--------------
11
[a9a1e79]12On all platforms, you will need to have installed:
13
14 - a compiler (gcc, clang, msvc, ...)
15 - python (any version >= 2.7, including 3.x)
16 - a terminal to run command lines in
17
[5069da3]18Linux
19.....
20
21The following `External libraries`_ will be used if found: `libav`_,
22`libsamplerate`_, `libsndfile`_, `libfftw3`_.
23
24macOS
25.....
26
27The following system frameworks will be used on Mac OS X systems:
28
29  - `Accelerate <https://developer.apple.com/reference/accelerate>`_ to compute
30    FFTs and other vectorized operations optimally.
31
32  - `CoreAudio <https://developer.apple.com/reference/coreaudio>`_ and
33    `AudioToolbox <https://developer.apple.com/reference/audiotoolbox>`_ to
34    decode audio from files and network streams.
35
36.. note::
37
38  To build a fat binary for both ``i386`` and ``x86_64``, use ``./waf configure
39  --enable-fat``.
40
41The following `External libraries`_ will also be checked: `libav`_,
42`libsamplerate`_, `libsndfile`_, `libfftw3`_.
43
44Windows
45.......
46
[7b3668c]47To use a specific version of the compiler, ``--msvc_version``. To build for a
48specific architecture, use ``--msvc_target``. For instance, to build aubio
49for ``x86`` using ``msvc 12.0``, use:
50
51.. code:: bash
52
53    waf configure --msvc_version='msvc 12.0' --msvc_target='x86'
54
55
[5069da3]56The following `External libraries`_ will be used if found: `libav`_,
57`libsamplerate`_, `libsndfile`_, `libfftw3`_.
58
59iOS
60...
61
62The following system frameworks will be used on iOS and iOS Simulator.
63
64  - `Accelerate <https://developer.apple.com/reference/accelerate>`_ to compute
65    FFTs and other vectorized operations optimally.
66
67  - `CoreAudio <https://developer.apple.com/reference/coreaudio>`_ and
68    `AudioToolbox <https://developer.apple.com/reference/audiotoolbox>`_ to
69    decode audio from files and network streams.
70
71To build aubio for iOS, configure with ``--with-target-platform=ios``. For the
72iOS Simulator, use ``--with-target-platform=iosimulator`` instead.
73
74By default, aubio is built with the following flags on iOS:
75
76.. code:: bash
77
78    CFLAGS="-fembed-bitcode -arch arm64 -arch armv7 -arch armv7s -miphoneos-version-min=6.1"
79
80and on iOS Simulator:
81
82.. code::
83
[6f29fe3]84    CFLAGS="-arch i386 -arch x86_64 -mios-simulator-version-min=6.1"
[5069da3]85
86Set ``CFLAGS`` and ``LINKFLAGS`` to change these default values, or edit
87``wscript`` directly.
88
89Build options
90-------------
91
[a9a1e79]92Some additional options can be passed to the configure step. For the complete
93list of options, run:
94
[385a9c1e]95.. code:: bash
96
[a9a1e79]97    $ ./waf configure --help
[5069da3]98
99Double precision
100................
101
102To compile aubio in double precision mode, configure with ``--enable-double``.
103
104To compile aubio in single precision mode, use ``--disable-double`` (default).
105
106Fat binary
107..........
108
109To build a fat binary on Mac OS platforms, configure with ``--enable-fat``.
110
111External libraries
112------------------
113
114External libraries are checked for using ``pkg-config``. Set the
115``PKG_CONFIG_PATH`` environment variable if you have them installed in an
116unusual location.
117
118
119.. note::
120
121    If ``pkg-config`` is not found in ``PATH``, the configure step will
122    succeed, but none of the external libraries will be used.
123
124libav
125.....
126
127  `libav.org <https://libav.org/>`_, open source audio and video processing
128  tools.
129
130If all of the following libraries are found, they will be used to compile
131``aubio_source_avcodec``. so that ``aubio_source`` will be able to decode audio
132from all formats supported by `libav
133<https://libav.org/documentation/general.html#Audio-Codecs>`_.
134
135* libavcodec
136* libavformat
137* libavutil
138* libavresample
139
140To enable this option, configure with ``--enable-avcodec``. The build will then
141failed if the required libraries are not found. To disable this option,
142configure with ``--disable-avcodec``
143
144
145libsndfile
146..........
147
148  `libsndfile <http://www.mega-nerd.com/libsndfile/>`_, a C library for reading
149  and writing sampled sound files.
150
151With libsndfile built in, ``aubio_source_sndfile`` will be built in and used by
152``aubio_source``.
153
154To enable this option, configure with ``--enable-sndfile``. The build will then
[a9a1e79]155fail if the required library is not found. To disable this option, configure
[5069da3]156with ``--disable-sndfile``
157
158libsamplerate
159.............
160
161  `libsamplerate <http://www.mega-nerd.com/SRC/>`_, a sample rate converter for
162  audio.
163
164With libsamplerate built in, ``aubio_source_sndfile`` will support resampling,
165and ``aubio_resample`` will be fully functional.
166
167To enable this option, configure with ``--enable-samplerate``. The build will
[a9a1e79]168then fail if the required library is not found. To disable this option,
[5069da3]169configure with ``--disable-samplerate``
170
171libfftw3
172........
173
174  `FFTW <http://fftw.org/>`_, a C subroutine for computing the discrete Fourier
175  transform
176
[7a8a07e]177With libfftw3 built in, ``aubio_fft`` will use `FFTW`_ to
[5069da3]178compute Fast Fourier Transform (FFT), allowing aubio to compute FFT on length
179that are not a power of 2.
180
181To enable this option, configure with ``--enable-fftw3``. The build will
[a9a1e79]182then fail if the required library is not found. To disable this option,
[5069da3]183configure with ``--disable-fftw3``
184
185External tools
186--------------
187
188If the following tools are found, additional documentations are built:
189
[7a8a07e]190 - `doxygen <http://doxygen.org>`_ to build the :ref:`doxygen-documentation`.
[5069da3]191 - `txt2man <https://github.com/mvertes/txt2man>`_ to build the :ref:`manpages`
192
193These tools are searched for in the current ``PATH`` environment variable.
194By default, the documentation is built only if the tools are found.
195
196To disable the documentation, configure with ``--disable-docs``. To build with
197the documentation, configure with ``--enable-docs``.
198
Note: See TracBrowser for help on using the repository browser.