Changeset 633400d


Ignore:
Timestamp:
Dec 5, 2018, 10:34:39 PM (13 months ago)
Author:
Paul Brossier <piem@piem.org>
Branches:
feature/pitchshift, feature/timestretch
Children:
283a619a
Parents:
5b46bc3 (diff), f19db54 (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.
Message:

Merge branch 'master' into feature/pitchshift

Files:
53 added
3 deleted
174 edited

Legend:

Unmodified
Added
Removed
  • .appveyor.yml

    r5b46bc3 r633400d  
    88    # pre-installed python version, see:
    99    # http://www.appveyor.com/docs/installed-software#python
    10     - PYTHON: "C:\\Python27"
    11       PYTHON_VERSION: "2.7.x"
    12       PYTHON_ARCH: "32"
     10    - PYTHONDIR: C:\Python27
     11      PYTHON_VERSION: 2.7.x
     12      PYTHON_ARCH: 32
    1313
    14     - PYTHON: "C:\\Python27-x64"
    15       PYTHON_VERSION: "2.7.x"
    16       PYTHON_ARCH: "64"
     14    - PYTHONDIR: C:\Python27-x64
     15      PYTHON_VERSION: 2.7.x
     16      PYTHON_ARCH: 64
    1717
    18     - PYTHON: "C:\\Python34"
    19       PYTHON_VERSION: "3.4.x"
    20       PYTHON_ARCH: "32"
     18    - PYTHONDIR: C:\Python35
     19      PYTHON_VERSION: 3.5.x
     20      PYTHON_ARCH: 32
    2121
    22     - PYTHON: "C:\\Python34-x64"
    23       PYTHON_VERSION: "3.4.x"
    24       PYTHON_ARCH: "64"
     22    - PYTHONDIR: C:\Python35-x64
     23      PYTHON_VERSION: 3.5.x
     24      PYTHON_ARCH: 64
    2525
    26     - PYTHON: "C:\\Python35"
    27       PYTHON_VERSION: "3.5.x"
    28       PYTHON_ARCH: "32"
     26    - PYTHONDIR: C:\Python36
     27      PYTHON_VERSION: 3.6.x
     28      PYTHON_ARCH: 32
    2929
    30     - PYTHON: "C:\\Python35-x64"
    31       PYTHON_VERSION: "3.5.x"
    32       PYTHON_ARCH: "64"
    33       # add path required to run preprocessor step
    34       PATH_EXTRAS: "c:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\bin"
     30    - PYTHONDIR: C:\Python36-x64
     31      PYTHON_VERSION: 3.6.x
     32      PYTHON_ARCH: 64
     33
     34    - PYTHONDIR: C:\Python37
     35      PYTHON_VERSION: 3.7.x
     36      PYTHON_ARCH: 32
     37
     38    - PYTHONDIR: C:\Python37-x64
     39      PYTHON_VERSION: 3.7.x
     40      PYTHON_ARCH: 64
    3541
    3642install:
    37 
    3843  - ECHO "Installed SDKs:"
    3944  - ps: "ls \"C:/Program Files/Microsoft SDKs/Windows\""
    4045
     46  - "SET PATH=%PYTHONDIR%;%PYTHONDIR%\\Scripts;%PATH%"
     47
    4148  # Check that we have the expected version and architecture for Python
    42   - "%PYTHON%\\python.exe --version"
    43   - "%PYTHON%\\python.exe -c \"import struct; print(struct.calcsize('P') * 8)\""
     49  - "python --version"
     50  - "python -c \"import struct; print(struct.calcsize('P') * 8)\""
     51
     52  - "python -m pip install --disable-pip-version-check --user --upgrade pip"
     53  - "python -m pip install --upgrade setuptools"
    4454
    4555  # We need wheel installed to build wheels
    46   - "%PYTHON%\\python.exe -m pip install wheel"
     56  - "python -m pip install wheel"
    4757
    48   - "SET PATH=%PATH_EXTRAS%;%PYTHON%;%PYTHON%\\Scripts;%PATH%"
    49 
    50   - "pip install --disable-pip-version-check --user --upgrade pip"
    51   - "pip install --upgrade setuptools"
     58  - "pip install -r requirements.txt"
    5259
    5360before_build:
    54   - curl -fsS -o waf https://waf.io/waf-1.8.22
    55   - curl -fsS -o waf.bat https://raw.githubusercontent.com/waf-project/waf/master/utils/waf.bat
     61  - "bash scripts/get_waf.sh"
    5662
    5763build_script:
    58   # build python module without using libaubio
    59   - "pip install -r requirements.txt"
    60   - "python setup.py build"
    61   - "pip install ."
     64  # also build libaubio with waf
     65  - python waf configure build install --verbose --msvc_version="msvc 14.0"
     66  # clean before building python package
     67  - python waf distclean
     68  # build, upload and install wheel (inspired by numpy's appveyor)
     69  - ps: |
     70      pip wheel -v -v -v --wheel-dir=dist .
     71      ls dist -r | Foreach-Object {
     72          Push-AppveyorArtifact $_.FullName
     73          pip install $_.FullName
     74      }
     75
     76test_script:
    6277  - "python python\\demos\\demo_create_test_sounds.py"
    6378  - "nose2 --verbose"
    64   # clean up
    65   - waf distclean
    66   # build libaubio
    67   - waf configure build --verbose
    68   # build python module using libaubio dll
    69   - "python setup.py build"
  • .gitignore

    r5b46bc3 r633400d  
    3131doc/web/
    3232doc/full/
     33doc/_build/
    3334
    3435python/gen
     
    3839python/*.wav
    3940
     41pip-delete-this-directory.txt
     42
    4043aubio-*.tar.bz2
    4144aubio-*.zip
     45dist/*.tar.gz
     46dist/*.whl
    4247
    4348# test sounds
    4449python/tests/sounds
    4550aubio.egg-info
     51.eggs
     52.cache
  • .travis.yml

    r5b46bc3 r633400d  
    33matrix:
    44  include:
     5    - python: 3.5
     6      os: linux
     7      compiler: gcc
     8    - python: 3.4
     9      os: linux
     10      compiler: gcc
    511    - python: 2.7
    612      os: linux
    713      compiler: gcc
    8       env: ARCH=x86_64
     14    - python: 3.5
     15      os: linux
     16      compiler: gcc
     17      env: CFLAGS="-Os" WAFOPTS="--disable-samplerate --disable-sndfile"
     18    - python: 3.4
     19      os: linux
     20      compiler: gcc
     21      env: HAVE_AUBIO_DOUBLE=1 CFLAGS="-O3" WAFOPTS="--enable-fftw3"
    922    - python: 2.7
    1023      os: linux
    1124      compiler: gcc
    12       env: ARCH=i386
    13     - python: 3.4
    14       os: linux
    15       compiler: gcc
    16       env: ARCH=x86_64
    17     - python: 3.4
    18       os: linux
    19       compiler: gcc
    20       env: ARCH=i386 WAFOPTS=--enable-fftw3f
     25      env: CFLAGS="`dpkg-buildflags --get CFLAGS`" LDFLAGS="`dpkg-buildflags --get LDFLAGS`"
    2126    - language: C
    2227      os: osx
    2328      compiler: clang
    24       env: ARCH=x86_64
    2529    - language: C
    2630      os: osx
    2731      compiler: clang
    28       env: ARCH=i386
    29     - python: 2.7
    30       os: linux
    31       compiler: gcc
    32       env: ARCH=x86_64 HAVE_DOUBLE=1 WAFOPTS=--enable-fftw3
    33     - python: 2.7
    34       os: linux
    35       compiler: gcc
    36       env: ARCH=i386 HAVE_DOUBLE=1
    37     - python: 3.4
    38       os: linux
    39       compiler: gcc
    40       env: ARCH=x86_64 HAVE_DOUBLE=1
    41     - python: 3.4
    42       os: linux
    43       compiler: gcc
    44       env: ARCH=i386 HAVE_DOUBLE=1
     32      env: CFLAGS="-Os" HAVE_AUBIO_DOUBLE=1 WAFOPTS="--disable-accelerate"
    4533    - language: C
    4634      os: osx
    4735      compiler: clang
    48       env: ARCH=x86_64 HAVE_DOUBLE=1
     36      env: WAFOPTS="--enable-fat --disable-avcodec --disable-sndfile --disable-samplerate --disable-rubberband"
    4937    - language: C
    5038      os: osx
    5139      compiler: clang
    52       env: ARCH=i386 HAVE_DOUBLE=1
     40      env: WAFOPTS="--with-target-platform=ios --disable-avcodec --disable-sndfile" AUBIO_NOTESTS=1
    5341    - language: C
    5442      os: osx
    5543      compiler: clang
    56       env: ARCH=x86_64 WAFOPTS="--enable-fat --disable-sndfile --disable-samplerate --disable-rubberband"
    57     - language: C
    58       os: osx
    59       compiler: clang
    60       env: ARCH=i386 WAFOPTS="--enable-fat --disable-sndfile --disable-samplerate --disable-rubberband"
     44      env: WAFOPTS="--with-target-platform=iosimulator --disable-avcodec --disable-sndfile" AUBIO_NOTESTS=1
     45
     46# use trusty
     47dist: trusty
     48sudo: required
    6149
    6250addons:
     
    6452    packages:
    6553    - bzip2
     54    - libavcodec-dev
     55    - libavformat-dev
     56    - libavresample-dev
     57    - libavutil-dev
    6658    - libsndfile1-dev
    6759    - libsamplerate-dev
     
    7163    - librubberband-dev
    7264    - sox
     65    - lcov
     66  homebrew:
     67    packages:
     68    - sox
     69    - ffmpeg
     70    - libsndfile
     71    - libsamplerate
     72    - rubberband
     73    - lcov
     74    #update: true
    7375
    7476before_install:
    7577   - |
    7678     if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
    77        brew update
    78        brew install sox libsamplerate libsndfile rubberband
    7979       export PATH="$HOME/Library/Python/2.7/bin/:$PATH"
    8080     fi;
    8181
    82 
    8382install:
    84   - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then travis_retry pip install nose2; fi
    85   - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then travis_retry pip install --user nose2; fi
     83  - |
     84    if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
     85      alias pip=pip2
     86    fi;
     87  - travis_retry pip install --upgrade pip
     88  - travis_retry make getwaf expandwaf deps_python
     89  - which pip
     90  - pip --version
    8691
    8792script:
    8893  - make create_test_sounds
    89   - make build
    90   - make build_python
    91   - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then make test_python; fi
    92   - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then make test_python_osx; fi
    93   - make clean_python
    94   - make clean
    95   - make distcheck
    96   - make test_pure_python
     94  - |
     95    if [[ -z "$AUBIO_NOTESTS" ]]; then
     96      make test_lib_python_clean
     97      make coverage
     98    else
     99      make test_lib_only_clean
     100    fi;
     101
     102after_success:
     103  - |
     104    if [[ -z "$AUBIO_NOTESTS" ]]; then
     105      # upload to codecov
     106      bash <(curl -s https://codecov.io/bash)
     107    fi
    97108
    98109notifications:
     
    101112            - "irc.freenode.org#aubio"
    102113        use_notice: true
     114    webhooks:
     115        urls:
     116            - https://webhooks.gitter.im/e/81e7733a5b1d977854b4
     117        on_success: change  # options: [always|never|change] default: always
     118        on_failure: always  # options: [always|never|change] default: always
     119        on_start: never     # options: [always|never|change] default: always
  • ChangeLog

    r5b46bc3 r633400d  
     12018-11-21 Paul Brossier <piem@aubio.org>
     2
     3        [ Overview ]
     4
     5        * VERSION: bump to 0.4.8
     6        * notes: new option release_drop (gh-203)
     7        * spectral: new parameters added to filterbank and mfcc (gh-206)
     8        * python: start documenting module (gh-73, debian #480018), improve build for
     9        win-amd64 (gh-154, gh-199, gh-208)
     10        * fixes: prevent crash when using fft sizes unsupported by vDSP (gh-207),
     11        prevent saturation when down-mixing a multi-channel source (avcodec/ffmpeg)
     12
     13        [ Fixes ]
     14
     15        * avcodec: prevent saturation when down-mixing a multi-channel source, emit
     16        a warning if compiling against avutil < 53 (gh-137), wrap long lines
     17        * examples/: avoid hiding global and unreachable code
     18        * fft: limit to r*2*n sizes, with r in [1, 3, 5, 15] (vDSP only) (gh-207)
     19        * fft: fix reconstruction for odd sizes (fftw only)
     20        * pvoc: add missing implementations for aubio_pvoc_get_hop/win
     21        * mathutils: increase ln(2) precision of in freqtomidi/miditofreq
     22        * wavetable: stop sets playing to 0, add dummy implementation for _load
     23
     24        [ New features ]
     25
     26        * src/musicutils.h: new aubio_meltohz, aubio_hztomel, with _htk versions
     27        * src/spectral/filterbank.h: new set_mel_coeffs, set_mel_coeffs_htk,
     28        set_power, and set_norm methods, improved set_triangle_bands
     29        * src/spectral/mfcc.h: new set_scale, set_power, set_norm, set_mel_coeffs,
     30        set_mel_coeffs_htk, set_mel_coeffs_slaney
     31        * src/mathutils.h: new fvec_mul
     32        * src/notes: new option release_drop to prevent missing note-offs (gh-203)
     33
     34        [ Python module ]
     35
     36        * fix: rounding to nearest integer in midi2note and freq2note
     37        * general: supports code generation of setters with none or multiple
     38        parameters
     39        * documentation: add docstrings do fvec, cvec, source, sink, pvoc, frequency
     40        conversion and level detection routines (gh-73, debian #480018)
     41        * slicing: improve and document slice_source_at_stamps
     42        * module: new note2freq function, recover error log when raising exceptions
     43        on failed set_ methods, prevent cyclic import, coding style improvements
     44        * demos: improve coding style, fix bpm_extract arguments
     45        * MANIFEST.in: exclude *.pyc, improve patterns
     46
     47        [ Documentation ]
     48
     49        * doc/: use sphinx autodoc to load docstrings from aubio module, reorganize
     50        python module documentation, add a note about double precision, use https
     51        when possible
     52        * src/spectral/: update Auditory Toolbox url, update copyright year
     53
     54        [ Tools ]
     55
     56        * aubionotes: add --release-drop option
     57        * aubio: add --release-drop and --silence options to `aubio notes`,
     58        workaround for -V to really show version (py2)
     59        * aubiocut: add option --create-first to always create first slice
     60
     61        [ Tests ]
     62
     63        * tests/, python/tests: add tests for new methods, check source channel
     64        down-mix, improve coverage
     65
     66        [ Build system ]
     67
     68        * Makefile: disable docs when measuring coverage, add branch coverage
     69        option, add coverage_zero_counters target, improve html report
     70        * waf: update to 2.0.12, improve wscript style, prevent shipping some
     71        generated files
     72        * python: always show compiler warnings when pre-processing headers,
     73        workaround to fix code generation for win-amd64 (gh-154, gh-199, gh-208).
     74        * continuous integration: add azure pipelines, update and improve
     75        configurations for appveyor, circleci, and travis.
     76
     772018-09-22 Paul Brossier <piem@aubio.org>
     78
     79        [ Overview ]
     80
     81        * VERSION: bump to 0.4.7
     82        * src/spectral/dct.h: add dct type II object with optimised versions
     83        * src/io/, src/notes/, src/pitch: prevent crashes on corrupted files
     84        * examples/: fix jack midi output, improve messages when jack disabled
     85        * python/: add dct support, minor bug fixes tests and demos
     86        * wscript: improve support for BLAS/ATLAS
     87
     88        [ Library fixes ]
     89
     90        * src/pitch/pitchyinfft.c: fix out of bound read when samplerate > 50kHz
     91        thanks to @fCorleone (closes #189, CVE-2018-14523, debian #904906)
     92        * src/notes/notes.c: bail out if pitch creation failed (see #188)
     93        * src/io/source_wavread.c:
     94         - also exit if samplerate is negative (closes #188, CVE-2018-14522,
     95         debian #904907)
     96         - add some input validation (closes #148 and #158, CVE-2017-17054,
     97         debian #883355)
     98        * src/io/source_avcodec.c:
     99         - give up if resampling context failed opening (see #137, closes #187,
     100         CVE-2018-14521, debian #904908)
     101         - give up reading file if number of channel changes during stream (closes
     102         #137, CVE-2017-17554, debian #884237)
     103         - make sure libavutil > 52 before checking avFrame->channels (see #137)
     104         - fix build with ffmpeg 4.0, thanks to @jcowgill (closes #168, #173)
     105         - avoid deprecated call for ffmpeg >= 4.0
     106        * src/onset/onset.c: add dummy default parameters for wphase (closes #150)
     107
     108        [ Tools ]
     109
     110        * examples/parse_args.h: hide jack options if not available, improve error
     111        message (closes #182)
     112        * examples/utils.h: process_block returns void
     113        * examples/utils.c: fix examples failing to send more than one JACK midi
     114        event per frame, thanks to @cyclopsian (closes #201)
     115
     116        [ New features ]
     117
     118        * src/spectral/dct.h: add dct type II object with implementation factory
     119        * src/spectral/dct_plain.c: add plain dct implementation
     120        * src/spectral/dct_ooura.c: add ooura implementation
     121        * src/spectral/dct_fftw.c: add fftw implementation
     122        * src/spectral/dct_ipp.c: add ipp version
     123        * src/spectral/dct_accelerate.c: add vdsp/accelerate dct
     124        * tests/src/spectral/test-dct.c: check reconstruction works
     125        * src/spectral/mfcc.c: use new dct to compute mfcc
     126
     127        [ Library internals ]
     128
     129        * src/aubio_priv.h: avoid hard-coded undefs, split BLAS and ATLAS support,
     130        add vdsp scalar add and multiply
     131
     132        [ Build system ]
     133
     134        * wscript:
     135         - add options to disable examples and tests
     136         - detect includes for openblas/libblas/atlas
     137        * scripts/get_waf.sh: bump to 2.0.11, verify signature if gpg available
     138        * python/lib/gen_external.py: pass '-x c' to emcc only
     139
     140        [ Python ]
     141
     142        * python/lib/gen_code.py: add support for rdo methods
     143        * python/tests/test_dct.py: add tests for new dct
     144        * python/demos/demo_pitch_sinusoid.py: use // to yield an integer, fixing
     145        demo on py3, thanks to @ancorcruz (closes #176)
     146        * python/ext/py-musicutils.*: add shift(fvec) and ishift(fvec)
     147        * python/tests/test_fvec_shift.py: add tests for shift() and ishift()
     148        * python/lib/aubio/cmd.py: fix typo in comment
     149
     150        [ Documentation ]
     151
     152        * README.md, doc/statuslinks.rst: use latest for commits-since
     153        * examples/parse_args.h: add yinfast to pitch algorithms
     154        * doc/requirements.rst: add some blas documentation
     155        * doc/requirements.rst: split media/optimisation libraries
     156        * doc/develop.rst: fixed spelling error, thanks to Jon Williams (closes #161)
     157        * doc/aubio{pitch,notes}.txt: add yinfast to list of pitch methods
     158
     159        [ Continuous integration ]
     160
     161        * .travis.yml: remove xcode8.2 builds, group osx, add alias pip=pip2
     162        * .appveyor.yml: upgrade pip first, always use python -m pip
     163
     1642017-10-02 Paul Brossier <piem@aubio.org>
     165
     166        [ Overview ]
     167
     168        * VERSION: bump to 0.4.6
     169        * src/spectral/fft.c, src/*.c: add support for Intel IPP (many thanks to
     170        Eduard Mueller)
     171        * wscript: add support for emscripten (thanks to Martin Hermant)
     172        * src/pitch/pitchyinfast.h: new fast method to compute YIN algorithm
     173        * src/pitch/pitchyin*.c: improve confidence measure, making sure its value
     174        corresponds to the selected period (thanks to Eduard Mueller)
     175        * python/lib/aubio/cmd.py: add `quiet`, `cut`, and `help` subcommands
     176
     177        [ Library ]
     178
     179        * src/aubio_priv.h: add missing aubio_vDSP_vclr (Eduard Mueller)
     180        * src/io/source_avcodec.c: improve error message, prevent un-opened bracket,
     181        no declaration after statements for older compilers, avoid unused variable
     182        * src/mathutils.c: prevent segfault with Accelerate.framework (closes #58,
     183        closes #102)
     184        * src/spectral/phasevoc.h: add aubio_pvoc_set_window to change the windowing
     185        function
     186        * src/mathutils.c: add window type `ones` (no windowing)
     187
     188        [ Python ]
     189
     190        * python/demos/demo_tapthebeat.py: add a real-time example to play beats
     191        using pyaudio
     192        * python/lib/gen_external.py: improve parsing and syntax, use results in
     193        emscripten build (Martin Hermant)
     194        * python/lib/aubio/cmd.py: add option `-u` to `aubio pitch`, improve error
     195        messages, add `quiet` subcommand (closes #124), improve syntax, add some
     196        documentation, add `cut` and `help` subcommand, add silence and time format
     197        options
     198        * python/lib/aubio/cut.py: upgrade to argparse, set samplerate as needed
     199        * python/demos/demo_yin_compare.py: add comparison of yin implementations
     200        * python/demos/demo_wav2midi.py: add an example to create a midi from a
     201        sound file using mido (closes: #134)
     202        * python/demos/demo_bpm_extract.py: use argparse, use beats_to_bpm function
     203        * python/ext/py-cvec.c: fix support for pypy by changing setters to return a
     204        negative value on error (closes #17)
     205
     206        [ Documentation ]
     207
     208        * src/tempo/beattracking.h: fix typo (thanks to Hannes Fritz)
     209        * doc/requirements.rst: fix broken link (thanks to @ssj71, closes #99)
     210        * doc/aubiomfcc.txt: fix typo in 'coefficients'
     211
     212        [ Tests ]
     213
     214        * python/tests/tests_aubio_{cmd,cut}.py: add basic tests
     215        * python/tests/test_filterbank*.py: ignore UserWarnings, clean-up,
     216        improve get_coeff tests
     217
     218        [ Build system ]
     219
     220        * wscript: add support for emscripten, see scripts/build_emscripten
     221        * scripts/get_waf.sh: update waf to 2.0.1, build waf from source tarball
     222        * scripts/build_emscripten: update to build aubio.js
     223        * Makefile: add coverage and coverage_report targets, run tests once
     224
     225        [ Continuous integration ]
     226
     227        * .travis.yml: add coverage report on osx
     228        * .appveyor.yml: use msvc 14.0 (VS 2015) and scripts/get_waf.sh
     229        * .coveragerc: add minimal python coverage configuration
     230
     2312017-04-10 Paul Brossier <piem@aubio.org>
     232
     233        [Overview]
     234
     235        * VERSION: bump to 0.4.5
     236        * src/io/source_avcodec.c: add support for libswresample
     237        * aubio: new python command line tool to extract information
     238        * src/onset/onset.c: add spectral whitening and compression, improve default
     239        parameters
     240        * this_version.py: use centralized script to get current version, adding git
     241        sha when building from git repo (thanks to MartinHN)
     242
     243        [Interface]
     244
     245        * src/spectral/awhithening.h: add adaptive whitening
     246        * src/{cvec,mathutils,musicutils}.h: add cvec_logmag, fvec_logmag, and fvec_push
     247        * src/onset/onset.h: add aubio_onset_set_default_parameters to load optimal
     248        parameters of each novelty function, _{set,get}_compression and
     249        _{set,get}_awhitening to turn on/off compression and adaptive whitening
     250        * src/spectral/specdesc.h: add weighted phase
     251
     252        [Library]
     253
     254        * src/onset/onset.c: improve default onset parameters (thanks to @superbock
     255        for access to his evaluation database), see commit dccfad2 for more details
     256        * src/pitch/pitch.c: avoid segfault when using invalid parameters
     257        * src/temporal/biquad.c: fix biquad parameters initialization (thanks to
     258        @jurlhardt)
     259
     260        [Tools]
     261
     262        * examples/aubio{onset,track}.c: add options --miditap-note and
     263        --miditap-velo to set which midi note is triggered at onset/beat (thanks to
     264        @tseaver)
     265        * examples/aubioonset.c: show actual parameters in verbose mode
     266        * examples/utils.c: improve memory usage to emit midi notes
     267
     268        [Python]
     269
     270        * python/ext/py-source.c: add with (PEP 343) and iter (PEP 234) interface
     271        * python/ext/py-sink.c: add with interface (PEP 343)
     272        * python/lib/aubio/cmd.py: new `aubio` command line tool
     273        * python/lib/aubio/cut.py: moved from python/scripts/aubiocut
     274
     275        [Documentation]
     276
     277        * doc/*.rst: reorganize and improve sphinx manual
     278        * doc/*.txt: update manpages, add simple manpage for aubio command line
     279        * doc/full.cfg: derive from doc/web.cfg
     280        * README.md: simplify and add contribute information
     281
     282        [Build system]
     283
     284        * wscript: prefer libswresample over libavsamplerate when available, use
     285        current version in manpages, doxygen, and sphinx, update to newest waf
     286        * setup.py: use entry_points console_scripts to generate scripts, use
     287        centralized version from this_version.py, clean up
     288        * python/lib/moresetuptools.py: detect if libswresample is available
     289
     2902017-01-08 Paul Brossier <piem@aubio.org>
     291
     292        [ Overview ]
     293
     294        * VERSION: bump to 0.4.4
     295        * src/utils/log.h: new function to redirect log, error, and warnings
     296        * python/: AUBIO_ERR raises python exception, AUBIO_WRN to emit py warning
     297        * doc/: add some documentation, fix errors in manpages
     298        * wscript: new rules to build 'manpages', 'doxygen', and 'sphinx', new
     299        --build-type=<release|debug> option (thanks to Eduard Mueller)
     300        * src/notes/notes.h: add minioi and silence methods
     301        * examples/: add --minioi (minimum inter-onset interval) option
     302        * src/pitch/pitchyin.c: improve msvc compiler optimisations (thanks to
     303        Eduard Mueller)
     304        * python/, src/: improve error messages, fix minor memory leaks
     305        * src/io/source_avcodec.c: improve compatibility with latest ffmpeg and with
     306        older libav/ffmpeg versions
     307        * python/demos/: new demos to capture microphone in real time
     308
     309        [ Interface]
     310
     311        * src/aubio.h: include utils/log.h
     312        * src/utils/log.h: add new aubio_log_set_function to redirect log messages
     313        * src/notes/notes.h: add aubio_notes_{get,set}_minioi_ms, add
     314        _{get,set}_silence methods
     315
     316        [ Library ]
     317
     318        * src/aubio_priv.h: add AUBIO_INF to print to stdout with header, use new
     319        logging function, add ATAN alias, add stdarg.h, move #include "config.h"
     320        * src/{fmat,fvec}.c: avoid integer division
     321        * src/pitch/pitchyin.c: [msvc] help compiler to optimize aubio_pitchyin_do
     322        by giving it addresses for all arrays which are referenced in inner loops,
     323        thanks to Eduard Mueller.
     324        * src/pitch/pitch.c: declare internal functions as static, fail on wrong
     325        method, warn on wrong unit, improve error messages, fix error string
     326        * src/spectral/specdesc.c: return NULL if wrong mode asked, remove trailing
     327        spaces
     328        * src/onset/onset.c: return null and clean-up if new_aubio_specdesc failed,
     329        fix error message
     330        * src/notes/notes.c: use midi note to store pitch candidate, round to
     331        nearest note, add a variable to define precision, fix out-of-bound write,
     332        fix unset silence_threshold, fix error message
     333        * src/spectral/ooura_fft8g.c: add cast to avoid conversion warnings, prefix
     334        public function with aubio_ooura_ to avoid with other apps using ooura (e.g.
     335        puredata), make internal functions static,
     336        * src/spectral/fft.c: add message about fftw3 being able to do non-power of
     337        two sizes, make calls to fftw_destroy_plan thread-safe, use prefixed
     338        aubio_ooura_rdft
     339        * src/spectral/phasevoc.c: fix error string
     340        * src/temporal/resampler.c: throw an error when using libsamplerate with doubles
     341        * src/io/ioutils.h: add functions to check samplerate and channels, use in sink_*.c
     342        * src/io/source.c: add error message when aubio was compiled with no source,
     343        only show error message from last child source_
     344        * src/io/source_avcodec.c: call avformat_free_context after
     345        avformat_close_input, keep a reference to packet to remove it when closing
     346        file, avoid deprecation warnings with ffmpeg 3.2, add backward compatibility
     347        for libavcodec55, fix for old libavcodec54, use AV_SAMPLE_FMT_DBL when
     348        compiling with HAVE_AUBIO_DOUBLE, fix missing samples in eof block, avoid
     349        function calls before declarations, improve error messages, replace with new
     350        context before closing old one, make sure s->path is set to null
     351        * src/io/{source_wavread,sink_wavwrite}.c: declare internal functions as static
     352        * src/io/source_wavread.c: fix bytes_read for JUNK headers, improve error
     353        messages, initialize buffer, skip chunks until data is found, or abort, skip
     354        junk chunk
     355        * src/io/source_sndfile.c: add support for multi-channel resampling, set
     356        handle to null after sucessful close, add missing floor in ratio comparison,
     357        improve formatting
     358        * src/io/sink.c: only show error message from last child sink_
     359        * src/io/sink_apple_audio.c: avoid crash on empty file name
     360        * src/io/sink_sndfile.c: improve error message
     361        * src/io/sink_{sndfile,wavwrite}.c: use AUBIO_MAX_CHANNELS, fix error message
     362
     363        [ Documentation ]
     364
     365        * README.md: update copyright dates, use https
     366        * src/aubio.h: add some links to examples, use https
     367        * src/pitch/pitch.h: add aubio_pitch_get_tolerance, add basic description of
     368        unit modes
     369        * src/notes/notes.h: add doxygen header
     370        * src/spectral/fft.h: strip example path
     371        * doc/*.rst: improve sphinx documentation
     372        * doc/android.rst: add reference to it scripts/build_android
     373        * doc/debian_packages.rst: added page on debian packages
     374        * doc/python_module.rst: add demo_source_simple.py, add note on pip, add
     375        `print(aubio.version)`
     376        * doc/cli.rst: include command line manpages
     377        * doc/cli_features.rst: add matrix of command line features
     378        * doc/requirements.rst: add a note about --notests (closes #77), document
     379        --msvc options, improve description of options
     380        * doc/download.rst: added page on download
     381        * doc/installing.rst: update
     382        * doc/xcode_frameworks.rst: added page on xcode frameworks
     383        * doc/**: use https://aubio.org
     384        * doc/conf.py: use pyramid theme, update copyright, remove hardcoded path
     385        * doc/web.cfg: exclude ioutils from doc
     386        * doc/aubionotes.txt: document -M option (see #18),
     387        * doc/aubioonset.txt: add documentation for -M, --minioi, improve threshold
     388        description (thanks to Peter Parker), fix typo (onset, not pitch)
     389        * doc/aubio*.txt: document -T/--timeformat option
     390
     391        [ Build ]
     392
     393        * Makefile: add a brief intro, avoid offline operations, add html and dist
     394        targets, add rules for documentation, simplify listing, avoid offline
     395        operations, bump waf to 1.9.6, check for waf before clean, chmod go-w
     396        waflib, improve clean, use pip to install, factorise pip options, generate
     397        more test sounds, improve test_python and test_pure_python, pass build_ext
     398        in test_pure_python{,_wheel}, quieten uninstall_python if already
     399        uninstalled, improve test targets, use bdist_wheel in test_pure_python,
     400        build_ext only for --enable-double, verbose waf rules, add cleanwaf
     401        * wscript: added debug/release build type configurations release (default)
     402        enables optimizations, debug symbols are enabled in both configurations,
     403        thanks to Eduard Mueller.
     404        * wscript: add options to disable source_wavread/sink_wavwrite, add check
     405        for stdarg.h, new rules 'manpages', 'sphinx', and 'doxygen' to build
     406        documentation, add version to sphinx and manpages, disable libsamplerate
     407        if double precision enabled (libsamplerate only supports float), fix typos,
     408        remove trailing spaces, improve tarball creation (./waf dist), remove
     409        full.cfg from tarball, prepend to CFLAGS to honor user cflags
     410        * wscript, src/wscript_build: improve install locations using DATAROOTDIR,
     411        MANDIR, INCLUDEDIR
     412        * wscript: default to no atlas for now
     413        * src/wscript_build: always build static library
     414        * scripts/build_android: add an example script to build aubio on android,
     415
     416        [ Tools ]
     417
     418        * examples/aubionotes.c: use new notes, set minioi, send last note off when
     419        needed, add warning for missing options
     420        * examples/aubioonset.c: add minioi option, in seconds
     421        * examples/: only send a last note off when using jack
     422        * examples/: return 1 if object creation failed
     423        * examples/: use PROG_HAS_OUTPUT, add PROG_HAS_SILENCE
     424
     425        [ Tests ]
     426
     427        * tests/src/spectral/test-fft.c: fix default size
     428        * tests/src/spectral/test-phasevoc.c: fix typos
     429        * tests/src/utils/test-log.c: add AUBIO_INF, add example for
     430        aubio_log_set_function, improve messages
     431
     432        [ Python ]
     433
     434        * python/ext/aubiomodule.c: add aubio._aubio.__version__ and import it as
     435        aubio.version, use custom logging function for errors and warnings, remove
     436        duplicated add_generated_objects, use <> for non local aubio
     437        * python/ext/py-cvec.c: use NPY_INTP_FMT
     438        * python/ext/py-fft.c: use error string set in src/spectral/fft.c
     439        * python/ext/py-phasevoc.c: use error string set in src/spectral/phasevoc.c
     440        * python/ext/py-sink.c: always set samplerate and channels in init
     441        * python/ext/py-source.c: use error string set in src/io/source.c
     442        * python/lib/aubio/midiconv.py: add unicode double sharp and double flat,
     443        improve unicode handling, skip UnicodeEncodeError on python 2.x
     444
     445        [ Python build ]
     446
     447        * MANIFEST.in: add src/**.c, exclude full.cfg, include waflib, remove
     448        python/ext/config.h
     449        * setup.py: define AUBIO_VERSION use sorted glob.glob to improve
     450        reproducibility, remove extra quotes, remove status from version string,
     451        update description, use custom build_ext instead of 'generate' command,
     452        define HAVE_AUBIO_DOUBLE to 1 if needed
     453        * python/lib/gen_code.py: add support for multiple _do outputs, fix number
     454        of output, improve del_ function, safer DECREF, fix indentation, emit RuntimeError
     455        * python/lib/gen_external.py: clean-up, enable tss, remove duplicate,
     456        sort generated files
     457        * python/lib/moresetuptools.py: add HAVE_STDARG_H, also check for
     458        HAVE_AUBIO_DOUBLE, cleaner clean, look first for system library, then for
     459        local build, then local sources, mo nore fake config.h here, use
     460        samplerate in single precision only
     461        * python/README.md: add a note about nose2 for python tests (closes #74)
     462        * scripts/setenv_local.sh: python3 compat
     463
     464        [ Python demos ]
     465
     466        * python/demos/demo_alsa.py: add example using alsaaudio (closes #72)
     467        * python/demos/demo_mfcc.py: add options to plot first and second
     468        derivatives, and set samplerate/win_s/hop_s, thanks to @jhoelzl (closes #68)
     469        * python/demos/demo_notes.py: add simple notes demos
     470        * python/demos/demo_pyaudio.py: added simple demo for pyaudio, see #6,
     471        closes #78, thanks to @jhoelzl and @notalentgeek, add some comments, avoid
     472        overwriting aubio.pitch
     473        * python/demos/demo_source_simple.py: fix indentation, make executable
     474        * python/demos/demo_timestretch{,_online}.py: fix usage string, remove
     475        unused import, use // to yield an integer (closes #71)
     476        * python/demos/demo_timestretch_online.py: use 512, fix block counter
     477        * python/demos/demo_tss.py: improve default parameters, exit before plotting
     478
     479        [ Python tests ]
     480
     481        * python/tests/: use local import, add __init__.py
     482        * python/tests/test_cvec.py: simplify
     483        * python/tests/test_fft.py: skip test fft(zeros).phas == 0 if needed, expected powerpc
     484        * python/tests/test_fvec.py: reduce alpha norm precision to 10.-4
     485        * python/tests/test_{midi2note,note2midi}.py: use nose2.params, add unicode tests
     486        * python/tests/test_notes.py: add basic tests
     487        * python/tests/test_notes.py: test results are correct for 44100Hz_44100f_sine441.wav
     488        * python/tests/test_sink.py: add more tests, quiet warnings
     489        * python/tests/test_source.py: break long line, check the tail of the file
     490        is non-zero on non silent test files, filter user warnings to avoid spamming
     491        the console, only check if last frames are non silent on brownnoise (weak),
     492        remove fragile brownnoise test, check duration on short files, use nose2
     493        params to process one sound file per test
     494        * python/tests/test_specdesc.py: RuntimeError is now raised on wrong mode
     495        * python/tests/utils.py: by default, use 5 seconds brownoise
     496
     497        [ Only in git ]
     498
     499        * .travis.yml: add debian dpkg-buildflags config, switch from precise to
     500        trusty, sudo required, add ffmpeg on osx, add targets ios, iosimulator,
     501        and osx noopt configs, bump to xcode8, add xcode8.2 config, mimick
     502        build_apple_frameworks options, alway upgrade pip, add pip --version and
     503        which pip after upgrading, remove --user, use expandwaf in install, remove
     504        unused ARCH, shuffle order, remove duplicate, add missing opening quote,
     505        use AUBIO_NOTESTS to build only lib on ios, add gitter webhook
     506        * .appveyor.yml: fix path for windows+python 3.5, fix typo in path, make
     507        nose2 tests verbose
     508
    15092016-08-16 Paul Brossier <piem@aubio.org>
    2510
  • MANIFEST.in

    r5b46bc3 r633400d  
    11include AUTHORS COPYING README.md VERSION ChangeLog
    22include python/README.md
     3include this_version.py
     4include waf_gensyms.py
     5include waf
     6recursive-include waflib *.py
    37include Makefile wscript */wscript_build
    4 include waf
    58include aubio.pc.in
    69include nose2.cfg
     
    1114include tests/*.h tests/*/*.c tests/*/*/*.c
    1215include python/ext/*.h
    13 include python/__init__.py
    14 include python/lib/__init__.py
    15 include python/lib/moresetuptools.py
    16 include python/lib/gen_external.py
    17 include python/lib/gen_code.py
     16recursive-include python *.py
     17include python/README.md
    1818include python/tests/run_all_tests
    19 include python/tests/*.py
    20 include python/demos/*.py
     19include python/tests/eval_pitch
    2120include python/tests/*.expected
    2221include doc/*.txt doc/*.rst doc/*.cfg doc/Makefile doc/make.bat doc/conf.py
     22exclude doc/full.cfg
    2323include scripts/* scripts/apple/Info.plist scripts/apple/Modules/module.modulemap
    2424exclude python/gen/*
    25 exclude python/ext/config.h
  • Makefile

    r5b46bc3 r633400d  
     1#!/usr/bin/make -f
     2# -*- makefile -*-
     3#
     4# This makefile contains simple rules to prepare, compile, test, and install
     5# aubio. Try one of the following rules:
     6#
     7# $ make configure
     8# $ make build
     9# $ make install
     10# $ make test_python
     11
    112WAFCMD=python waf
    2 WAFURL=https://waf.io/waf-1.8.22
     13
     14#WAFOPTS:=
     15# turn on verbose mode
     16WAFOPTS += --verbose
     17# build wafopts
     18WAFOPTS += --destdir $(DESTDIR)
     19# multiple jobs
     20WAFOPTS += --jobs 4
     21# if HAVE_AUBIO_DOUBLE is defined, pass --enable-double to waf
     22# python/lib/moresetuptools.py also checks for HAVE_AUBIO_DOUBLE
     23WAFOPTS += $(shell [ -z $(HAVE_AUBIO_DOUBLE) ] || echo --enable-double )
     24
     25PIPOPTS += --verbose
     26
     27DESTDIR:=$(PWD)/build/dist
     28PYDESTDIR:=$(PWD)/build/pydist
     29
     30# default install locations
     31PREFIX?=/usr/local
     32EXEC_PREFIX?=$(PREFIX)
     33LIBDIR?=$(PREFIX)/lib
     34INCLUDEDIR?=$(PREFIX)/include
     35DATAROOTDIR?=$(PREFIX)/share
     36MANDIR?=$(DATAROOTDIR)/man
     37
     38# default nose2 command
     39NOSE2?=nose2 -N 4 --verbose
    340
    441SOX=sox
    542
    6 ENABLE_DOUBLE := $(shell [ -z $(HAVE_DOUBLE) ] || echo --enable-double )
    743TESTSOUNDS := python/tests/sounds
     44
     45LCOVOPTS += --rc lcov_branch_coverage=1
    846
    947all: build
     
    1351
    1452getwaf:
    15         @./scripts/get_waf.sh
    16 
    17 expandwaf:
    18         @[ -d wafilb ] || rm -fr waflib
    19         @$(WAFCMD) --help > /dev/null
    20         @mv .waf*/waflib . && rm -fr .waf*
    21         @sed '/^#==>$$/,$$d' waf > waf2 && mv waf2 waf
    22         @chmod +x waf
     53        ./scripts/get_waf.sh
     54
     55expandwaf: getwaf
     56        [ -d wafilb ] || rm -fr waflib
     57        $(WAFCMD) --help > /dev/null
     58        mv .waf*/waflib . && rm -fr .waf*
     59        sed '/^#==>$$/,$$d' waf > waf2 && mv waf2 waf
     60        chmod +x waf && chmod -R go-w waflib
     61
     62cleanwaf:
     63        rm -rf waf waflib .waf*
    2364
    2465configure: checkwaf
    25         $(WAFCMD) configure $(WAFOPTS) $(ENABLE_DOUBLE)
     66        $(WAFCMD) configure $(WAFOPTS)
    2667
    2768build: configure
    2869        $(WAFCMD) build $(WAFOPTS)
    2970
     71install:
     72        # install
     73        $(WAFCMD) install $(WAFOPTS)
     74
     75list_installed:
     76        find $(DESTDIR) -ls | sed 's|$(DESTDIR)|/«destdir»|'
     77
     78list_installed_python:
     79        pip show -f aubio
     80
     81list_all_installed: list_installed list_installed_python
     82
     83uninstall:
     84        # uninstall
     85        $(WAFCMD) uninstall $(WAFOPTS)
     86
     87delete_install:
     88        rm -rf $(PWD)/dist/test
     89
    3090build_python:
    31         python ./setup.py generate $(ENABLE_DOUBLE) build
    32 
    33 test_python: export LD_LIBRARY_PATH=$(PWD)/build/src
    34 test_python:
    35         pip install -v -r requirements.txt
    36         pip install -v .
    37         nose2 --verbose
    38         pip uninstall -y -v aubio
    39 
    40 test_python_osx:
     91        # build python-aubio, using locally built libaubio if found
     92        python ./setup.py build
     93
     94build_python_extlib:
     95        # build python-aubio using (locally) installed libaubio
     96        [ -f $(DESTDIR)/$(INCLUDEDIR)/aubio/aubio.h ]
     97        [ -d $(DESTDIR)/$(LIBDIR) ]
     98        [ -f $(DESTDIR)/$(LIBDIR)/pkgconfig/aubio.pc ]
     99        PKG_CONFIG_PATH=$(DESTDIR)/$(LIBDIR)/pkgconfig \
     100        CFLAGS="-I$(DESTDIR)/$(INCLUDEDIR)" \
     101        LDFLAGS="-L$(DESTDIR)/$(LIBDIR)" \
     102                make build_python
     103
     104deps_python:
     105        # install or upgrade python requirements
     106        pip install $(PIPOPTS) --requirement requirements.txt
     107
     108# use pip or distutils?
     109install_python: install_python_with_pip
     110uninstall_python: uninstall_python_with_pip
     111#install_python: install_python_with_distutils
     112#uninstall_python: uninstall_python_with_distutils
     113
     114install_python_with_pip:
     115        # install package
     116        pip install $(PIPOPTS) .
     117
     118uninstall_python_with_pip:
     119        # uninstall package
     120        ( pip show aubio | grep -l aubio > /dev/null ) && \
     121        pip uninstall -y -v aubio || echo "info: aubio package is not installed"
     122
     123install_python_with_distutils:
     124        ./setup.py install $(PIPOPTS) $(DISTUTILSOPTS)
     125
     126uninstall_python_with_distutils:
     127        #./setup.py uninstall
     128        [ -d $(PYDESTDIR)/$(LIBDIR) ] && echo Warning: did not clean $(PYDESTDIR)/$(LIBDIR) || true
     129
     130force_uninstall_python:
     131        # ignore failure if not installed
     132        -make uninstall_python
     133
     134local_dylib:
     135        # DYLD_LIBRARY_PATH is no more on mac os
    41136        # create links from ~/lib/lib* to build/src/lib*
    42         [ -f build/src/libaubio.[0-9].dylib ] && ( mkdir -p ~/lib && cp -prv build/src/libaubio.[0-9].dylib ~/lib ) || true
    43         # then run the tests
    44         pip install --user -v -r requirements.txt
    45         pip install --user -v .
    46         nose2 --verbose
    47         pip uninstall -y -v aubio
     137        [ -f $(PWD)/build/src/libaubio.[0-9].dylib ] && ( mkdir -p ~/lib && cp -prv build/src/libaubio.[0-9].dylib ~/lib ) || true
     138
     139test_python: export LD_LIBRARY_PATH=$(DESTDIR)/$(LIBDIR)
     140test_python: export PYTHONPATH=$(PYDESTDIR)/$(LIBDIR)
     141test_python: local_dylib
     142        # run test with installed package
     143        # ./python/tests/run_all_tests --verbose
     144        # run with nose2, multiple processes
     145        $(NOSE2)
    48146
    49147clean_python:
    50148        ./setup.py clean
    51149
    52 test_pure_python:
    53         -pip uninstall -v -y aubio
    54         -rm -rf build/ python/gen/
    55         -rm -f dist/*.egg
    56         -pip install -v -r requirements.txt
    57         CFLAGS=-Os python setup.py bdist_egg
    58         [ "$(TRAVIS_OS_NAME)" == "osx" ] && easy_install --user dist/*.egg || \
    59                 easy_install dist/*.egg
    60         nose2 -N 4
    61         pip uninstall -v -y aubio
    62 
    63 test_pure_python_wheel:
    64         -pip uninstall -v -y aubio
    65         -rm -rf build/ python/gen/
    66         -rm -f dist/*.whl
    67         -pip install -v -r requirements.txt
    68         -pip install -v wheel
    69         CFLAGS=-Os python setup.py bdist_wheel --universal
    70         wheel install dist/*.whl
    71         nose2 -N 4
    72         pip uninstall -v -y aubio
    73 
    74 build_python3:
    75         python3 ./setup.py generate $(ENABLE_DOUBLE) build
    76 
    77 clean_python3:
    78         python3 ./setup.py clean
    79 
    80 clean:
     150check_clean_python:
     151        # check cleaning a second time works
     152        make clean_python
     153        make clean_python
     154
     155clean: checkwaf
     156        # optionnaly clean before build
     157        -$(WAFCMD) clean
     158        # remove possible left overs
     159        -rm -rf doc/_build
     160
     161check_clean:
     162        # check cleaning after build works
    81163        $(WAFCMD) clean
     164        # check cleaning a second time works
     165        $(WAFCMD) clean
     166
     167distclean:
     168        $(WAFCMD) distclean
     169        -rm -rf doc/_build/
     170        -rm -rf doc/web/
     171
     172check_distclean:
     173        make distclean
    82174
    83175distcheck: checkwaf
    84         $(WAFCMD) distcheck $(WAFOPTS) $(ENABLE_DOUBLE)
     176        $(WAFCMD) distcheck $(WAFOPTS)
    85177
    86178help:
     
    90182        -[ -z `which $(SOX)` ] && ( echo $(SOX) could not be found) || true
    91183        -mkdir -p $(TESTSOUNDS)
    92         -$(SOX) -r 44100 -b 16 -n "$(TESTSOUNDS)/44100Hz_1f_silence.wav"      synth 1s   silence 0
     184        -$(SOX) -r 44100 -b 16 -n "$(TESTSOUNDS)/44100Hz_1f_silence.wav"      trim 0 1s
    93185        -$(SOX) -r 22050 -b 16 -n "$(TESTSOUNDS)/22050Hz_5s_brownnoise.wav"   synth 5    brownnoise      vol 0.9
    94186        -$(SOX) -r 32000 -b 16 -n "$(TESTSOUNDS)/32000Hz_127f_sine440.wav"    synth 127s sine 440        vol 0.9
    95         -$(SOX) -r  8000 -b 16 -n "$(TESTSOUNDS)/8000Hz_30s_silence.wav"      synth 30   silence 0       vol 0.9
     187        -$(SOX) -r  8000 -b 16 -n "$(TESTSOUNDS)/8000Hz_30s_silence.wav"      trim 0 30
    96188        -$(SOX) -r 48000 -b 32 -n "$(TESTSOUNDS)/48000Hz_60s_sweep.wav"       synth 60   sine 100-20000  vol 0.9
     189        -$(SOX) -r 44100 -b 16 -n "$(TESTSOUNDS)/44100Hz_44100f_sine441.wav"  synth 44100s   sine 441   vol 0.9
     190        -$(SOX) -r 44100 -b 16 -n "$(TESTSOUNDS)/44100Hz_100f_sine441.wav"    synth 100s sine 441       vol 0.9
     191
     192# build only libaubio, no python-aubio
     193test_lib_only: clean distclean configure build install list_installed
     194# additionally, clean after a fresh build
     195test_lib_only_clean: test_lib_only uninstall check_clean check_distclean
     196
     197# build libaubio, build and test python-aubio against it
     198test_lib_python: force_uninstall_python deps_python \
     199        clean_python clean distclean \
     200        configure build build_python \
     201        install install_python \
     202        test_python \
     203        list_all_installed
     204
     205test_lib_python_clean: test_lib_python \
     206        uninstall_python uninstall \
     207        check_clean_python \
     208        check_clean \
     209        check_distclean
     210
     211# build libaubio, install it, build python-aubio against it
     212test_lib_install_python: force_uninstall_python deps_python \
     213        clean_python distclean \
     214        configure build \
     215        install \
     216        build_python_extlib \
     217        install_python \
     218        test_python \
     219        list_all_installed
     220
     221test_lib_install_python_clean: test_lib_install_python \
     222        uninstall_python \
     223        delete_install \
     224        check_clean_python \
     225        check_distclean
     226
     227# build a python-aubio that includes libaubio
     228test_python_only: force_uninstall_python deps_python \
     229        clean_python clean distclean \
     230        build_python \
     231        install_python \
     232        test_python \
     233        list_installed_python
     234
     235test_python_only_clean: test_python_only \
     236        uninstall_python \
     237        check_clean_python
     238
     239coverage_cycle: coverage_zero_counters coverage_report
     240
     241coverage_zero_counters:
     242        lcov --zerocounters --directory .
     243
     244coverage: export CFLAGS=--coverage
     245coverage: export LDFLAGS=--coverage
     246coverage: export PYTHONPATH=$(PWD)/python/lib
     247coverage: export LD_LIBRARY_PATH=$(PWD)/build/src
     248coverage: force_uninstall_python deps_python \
     249        clean_python clean distclean build local_dylib
     250        # capture coverage after running c tests
     251        lcov $(LCOVOPTS) --capture --no-external --directory . \
     252                --output-file build/coverage_lib.info
     253        # build and test python
     254        pip install -v -e .
     255        # run tests, with python coverage
     256        coverage run `which nose2`
     257        # capture coverage again
     258        lcov $(LCOVOPTS) --capture --no-external --directory . \
     259                --output-file build/coverage_python.info
     260        # merge both coverage info files
     261        lcov $(LCOVOPTS) -a build/coverage_python.info -a build/coverage_lib.info \
     262                --output-file build/coverage.info
     263        # remove tests
     264        lcov $(LCOVOPTS) --remove build/coverage.info '*/ooura_fft8g*' \
     265                --output-file build/coverage_lib.info
     266
     267# make sure we don't build the doc, which builds a temporary python module
     268coverage_report: export WAFOPTS += --disable-docs
     269coverage_report: coverage
     270        # generate report with lcov's genhtml
     271        genhtml build/coverage_lib.info --output-directory build/coverage_c \
     272                --branch-coverage --highlight --legend
     273        # generate python report with coverage python package
     274        coverage report
     275        coverage html -d build/coverage_python
     276        # show links to generated reports
     277        for i in $$(ls build/coverage_*/index.html); do echo file://$(PWD)/$$i; done
     278
     279sphinx: configure
     280        $(WAFCMD) sphinx $(WAFOPTS)
     281
     282doxygen: configure
     283        $(WAFCMD) doxygen $(WAFOPTS)
     284
     285manpages: configure
     286        $(WAFCMD) manpages $(WAFOPTS)
     287
     288html: doxygen sphinx
     289
     290docs: html manpages
     291
     292dist: distclean expandwaf
     293        $(WAFCMD) dist
  • README.md

    r5b46bc3 r633400d  
    1 aubio library
    2 =============
     1aubio
     2=====
     3
     4[![Travis build status](https://travis-ci.org/aubio/aubio.svg?branch=master)](https://travis-ci.org/aubio/aubio "Travis build status")
     5[![Appveyor build status](https://img.shields.io/appveyor/ci/piem/aubio/master.svg)](https://ci.appveyor.com/project/piem/aubio "Appveyor build status")
     6[![Landscape code health](https://landscape.io/github/aubio/aubio/master/landscape.svg?style=flat)](https://landscape.io/github/aubio/aubio/master "Landscape code health")
     7[![Commits since last release](https://img.shields.io/github/commits-since/aubio/aubio/latest.svg)](https://github.com/aubio/aubio "Commits since last release")
     8
     9[![Documentation](https://readthedocs.org/projects/aubio/badge/?version=latest)](http://aubio.readthedocs.io/en/latest/?badge=latest "Latest documentation")
     10[![DOI](https://zenodo.org/badge/396389.svg)](https://zenodo.org/badge/latestdoi/396389)
    311
    412aubio is a library to label music and sounds. It listens to audio signals and
     
    2129  - spectral filtering
    2230  - transient/steady-state separation
    23   - sound file and audio devices read and write access
     31  - sound file read and write access
    2432  - various mathematics utilities for music applications
    2533
     
    3038-------------
    3139
    32 A python module to access the library functions is also provided. Please see
    33 the file [`python/README.md`](python/README.md) for more information on how to
    34 use it.
     40A python module for aubio is provided. For more information on how to use it,
     41please see the file [`python/README.md`](python/README.md) and the
     42[manual](https://aubio.org/manual/latest/) .
    3543
    36 Examples tools
    37 --------------
     44Tools
     45-----
    3846
    39 A few simple command line tools are included along with the library:
     47The python module comes with the following command line tools:
     48
     49 - `aubio` extracts informations from sound files
     50 - `aubiocut` slices sound files at onset or beat timestamps
     51
     52Additional command line tools are included along with the library:
    4053
    4154 - `aubioonset` outputs the time stamp of detected note onsets
     
    4760 - `aubioquiet` extracts quiet and loud regions
    4861
    49 Additionally, the python module comes with the following script:
     62Documentation
     63-------------
    5064
    51  - `aubiocut` slices sound files at onset or beat timestamps
    52 
    53 Implementation and Design Basics
    54 --------------------------------
    55 
    56 The library is written in C and is optimised for speed and portability.
    57 
    58 The C API is designed in the following way:
    59 
    60     aubio_something_t * new_aubio_something (void * args);
    61     audio_something_do (aubio_something_t * t, void * args);
    62     smpl_t aubio_something_get_a_parameter (aubio_something_t *t);
    63     uint_t aubio_something_set_a_parameter (aubio_something_t *t, smpl_t a_parameter);
    64     void del_aubio_something (aubio_something_t * t);
    65 
    66 For performance and real-time operation, no memory allocation or freeing take
    67 place in the `_do` methods. Instead, memory allocation should always take place
    68 in the `new_` methods, whereas free operations are done in the `del_` methods.
     65  - [manual](https://aubio.org/manual/latest/), generated with sphinx
     66  - [developer documentation](https://aubio.org/doc/latest/), generated with Doxygen
    6967
    7068The latest version of the documentation can be found at:
     
    7573------------------
    7674
    77 A number of distributions already include aubio. Check your favorite package
    78 management system, or have a look at the [download
    79 page](https://aubio.org/download).
     75aubio compiles on Linux, Mac OS X, Windows, Cygwin, and iOS.
    8076
    81 aubio uses [waf](https://waf.io/) to configure, compile, and test the source:
     77To compile aubio, you should be able to simply run:
    8278
    83     ./waf configure
    84     ./waf build
     79    make
    8580
    86 If waf is not found in the directory, you can download and install it with:
     81To compile the python module:
    8782
    88     make getwaf
     83    ./setup.py build
    8984
    90 aubio compiles on Linux, Mac OS X, Cygwin, and iOS.
     85See the [manual](https://aubio.org/manual/latest/) for more information about
     86[installing aubio](https://aubio.org/manual/latest/installing.html).
    9187
    92 Installation
    93 ------------
     88Citation
     89--------
    9490
    95 To install aubio library and headers on your system, use:
     91Please use the DOI link above to cite this release in your publications. For
     92more information, see also the [about
     93page](https://aubio.org/manual/latest/about.html) in [aubio
     94manual](https://aubio.org/manual/latest/).
    9695
    97     sudo ./waf install
    98 
    99 To uninstall:
    100 
    101     sudo ./waf uninstall
    102 
    103 If you don't have root access to install libaubio on your system, you can use
    104 libaubio without installing libaubio either by setting `LD_LIBRARY_PATH`, or by
    105 copying it to `~/lib`.
    106 
    107 On Linux, you should be able to set `LD_LIBRARY_PATH` with:
    108 
    109     $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/build/src
    110 
    111 On Mac OS X, a copy or a symlink can be made in `~/lib`:
    112 
    113     $ mkdir -p ~/lib
    114     $ ln -sf $PWD/build/src/libaubio*.dylib ~/lib/
    115 
    116 Note on Mac OS X systems older than El Capitan (10.11), the `DYLD_LIBRARY_PATH`
    117 variable can be set as follows:
    118 
    119     $ export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$PWD/build/src
    120 
    121 Credits and Publications
    122 ------------------------
    123 
    124 This library gathers music signal processing algorithms designed at the Centre
    125 for Digital Music and elsewhere. This software project was developed along the
    126 research I did at the Centre for Digital Music, Queen Mary, University of
    127 London. Most of this C code was written by myself, starting from published
    128 papers and existing code. The header files of each algorithm contains brief
    129 descriptions and references to the corresponding papers.
    130 
    131 Special thanks go Juan Pablo Bello, Chris Duxbury, Samer Abdallah, Alain de
    132 Cheveigne for their help and publications. Also many thanks to Miguel Ramirez
    133 and Nicolas Wack for their bug fixing.
    134 
    135 Substantial informations about the algorithms and their evaluation are gathered
    136 in:
    137 
    138   - Paul Brossier, _[Automatic annotation of musical audio for interactive
    139     systems](https://aubio.org/phd)_, PhD thesis, Centre for Digital music,
    140 Queen Mary University of London, London, UK, 2006.
    141 
    142 Additional results obtained with this software were discussed in the following
    143 papers:
    144 
    145   - P. M. Brossier and J. P. Bello and M. D. Plumbley, [Real-time temporal
    146     segmentation of note objects in music signals](https://aubio.org/articles/brossier04fastnotes.pdf),
    147 in _Proceedings of the International Computer Music Conference_, 2004, Miami,
    148 Florida, ICMA
    149 
    150   -  P. M. Brossier and J. P. Bello and M. D. Plumbley, [Fast labelling of note
    151      objects in music signals] (https://aubio.org/articles/brossier04fastnotes.pdf),
    152 in _Proceedings of the International Symposium on Music Information Retrieval_,
    153 2004, Barcelona, Spain
    154 
    155 
    156 Contact Info and Mailing List
    157 -----------------------------
     96Homepage
     97--------
    15898
    15999The home page of this project can be found at: https://aubio.org/
    160100
    161 Questions, comments, suggestions, and contributions are welcome. Use the
    162 mailing list: <aubio-user@aubio.org>.
    163 
    164 To subscribe to the list, use the mailman form:
    165 http://lists.aubio.org/listinfo/aubio-user/
    166 
    167 Alternatively, feel free to contact directly the author.
    168 
    169 
    170 Copyright and License Information
    171 ---------------------------------
    172 
    173 Copyright (C) 2003-2013 Paul Brossier <piem@aubio.org>
     101License
     102-------
    174103
    175104aubio is free software: you can redistribute it and/or modify it under the
     
    177106Foundation, either version 3 of the License, or (at your option) any later
    178107version.
     108
     109Contributing
     110------------
     111
     112Patches are welcome: please fork the latest git repository and create a feature
     113branch. Submitted requests should pass all continuous integration tests.
  • VERSION

    r5b46bc3 r633400d  
    11AUBIO_MAJOR_VERSION=0
    22AUBIO_MINOR_VERSION=4
    3 AUBIO_PATCH_VERSION=4
     3AUBIO_PATCH_VERSION=9
    44AUBIO_VERSION_STATUS='~alpha'
    55LIBAUBIO_LT_CUR=5
    6 LIBAUBIO_LT_REV=0
    7 LIBAUBIO_LT_AGE=4
     6LIBAUBIO_LT_REV=4
     7LIBAUBIO_LT_AGE=8
  • aubio.pc.in

    r5b46bc3 r633400d  
    88Version: @VERSION@
    99Libs: -L${libdir} -laubio
    10 Cflags: -I${includedir} 
     10Cflags: -I${includedir}
  • doc/Makefile

    r5b46bc3 r633400d  
    4040
    4141clean:
     42        -rm -rf _static
    4243        -rm -rf $(BUILDDIR)/*
    4344
    4445html:
     46        mkdir -p _static
    4547        $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
    4648        @echo
  • doc/aubiocut.txt

    r5b46bc3 r633400d  
    3535
    3636  -t, --onset-threshold thres  Set the threshold value for the onset peak
    37   picking. Typical values are typically within 0.001 and 0.900. Defaults to
    38   0.1. Lower threshold values imply more onsets detected. Try 0.5 in case of
    39   over-detections. Defaults to 0.3.
     37  picking. Values are typically in the range [0.001, 0.900]. Lower threshold
     38  values imply more onsets detected. Increasing this threshold should reduce
     39  the number of incorrect detections. Defaults to 0.3.
    4040
    4141  -c, --cut  Cut input sound file at detected labels. A new sound files for
     
    5050  --cut-until-nslices n  How many extra slices should be added at the end of
    5151  each slice (default 0).
     52
     53  --create-first  Alway create first slice.
    5254
    5355  -h, --help  Print a short help message and exit.
  • doc/aubiomfcc.txt

    r5b46bc3 r633400d  
    1616  MFCCs are coefficients that make up for the mel-frequency spectrum, a
    1717  representation of the short-term power spectrum of a sound. By default, 13
    18   coefficents are computed using 40 filters.
     18  coefficients are computed using 40 filters.
    1919
    2020  When started with an input source (-i/--input), the coefficients are given on
     
    5252  url:
    5353
    54   http://cobweb.ecn.purdue.edu/~malcolm/interval/1998-010/ (see file mfcc.m)
     54  https://engineering.purdue.edu/~malcolm/interval/1998-010/ (see file mfcc.m)
    5555
    5656SEE ALSO
  • doc/aubionotes.txt

    r5b46bc3 r633400d  
    77  aubionotes [[-i] source]
    88             [-r rate] [-B win] [-H hop]
    9              [-O method] [-t thres]
     9             [-O method] [-t thres] [-d drop]
    1010             [-p method] [-u unit] [-l thres]
    1111             [-T time-format]
     
    5151  over-detections. Defaults to 0.3.
    5252
     53  -M, --minioi value  Set the minimum inter-onset interval, in seconds, the
     54  shortest interval between two consecutive notes. Defaults to 0.030
     55
    5356  -p, --pitch method  The pitch detection method to use. See PITCH METHODS
    5457  below. Defaults to 'default'.
     
    6568  will not be detected. A value of -20.0 would eliminate most onsets but the
    6669  loudest ones. A value of -90.0 would select all onsets. Defaults to -90.0.
     70
     71  -d, --release-drop  Set the release drop threshold, in dB. If the level drops
     72  more than this amount since the last note started, the note will be turned
     73  off. Defaults to 10.
    6774
    6875  -T, --timeformat format  Set time format (samples, ms, seconds). Defaults to
     
    8592PITCH METHODS
    8693
    87   Available methods: default, schmitt, fcomb, mcomb, specacf, yin, yinfft.
     94  Available methods: default, schmitt, fcomb, mcomb, specacf, yin, yinfft,
     95  yinfast.
    8896
    8997  See aubiopitch(1) for details about these methods.
  • doc/aubioonset.txt

    r5b46bc3 r633400d  
    1010             [-T time-format]
    1111             [-s sil] [-m] [-f]
    12              [-j] [-v] [-h]
     12             [-j] [-N miditap-note] [-V miditap-velo]
     13             [-v] [-h]
    1314
    1415DESCRIPTION
     
    4950
    5051  -t, --onset-threshold thres  Set the threshold value for the onset peak
    51   picking. Typical values are typically within 0.001 and 0.900. Defaults to
    52   0.1. Lower threshold values imply more onsets detected. Try 0.5 in case of
    53   over-detections. Defaults to 0.3.
     52  picking. Values are typically in the range [0.001, 0.900]. Lower threshold
     53  values imply more onsets detected. Increasing this threshold should reduce
     54  the number of incorrect detections. Defaults to 0.3.
    5455
    55   -s, --silence sil  Set the silence threshold, in dB, under which the pitch
     56  -M, --minioi value  Set the minimum inter-onset interval, in seconds, the
     57  shortest interval between two consecutive onsets. Defaults to 0.020
     58
     59  -s, --silence sil  Set the silence threshold, in dB, under which the onset
    5660  will not be detected. A value of -20.0 would eliminate most onsets but the
    5761  loudest ones. A value of -90.0 would select all onsets. Defaults to -90.0.
     
    6771  -j, --jack  Use Jack input/output. You will need a Jack connection
    6872  controller to feed aubio some signal and listen to its output.
     73
     74  -N, --miditap-note  Override note value for MIDI tap. Defaults to 69.
     75
     76  -V, --miditap-velop  Override velocity value for MIDI tap. Defaults to 65.
    6977
    7078  -h, --help  Print a short help message and exit.
  • doc/aubiopitch.txt

    r5b46bc3 r633400d  
    121121  University of London, London, UK, 2006.
    122122
     123  yinfast  YIN algorithm (accelerated)
     124
     125  An optimised implementation of the YIN algorithm, yielding results identical
     126  to the original YIN algorithm, while reducing its computational cost from
     127  O(n^2) to O(n log(n)).
     128
    123129SEE ALSO
    124130
  • doc/aubiotrack.txt

    r5b46bc3 r633400d  
    99             [-T time-format]
    1010             [-s sil] [-m]
    11              [-j] [-v] [-h]
     11             [-j] [-N miditap-note] [-V miditap-velo]
     12             [-v] [-h]
    1213
    1314DESCRIPTION
     
    5556  controller to feed aubio some signal and listen to its output.
    5657
     58  -N, --miditap-note  Override note value for MIDI tap. Defaults to 69.
     59
     60  -V, --miditap-velop  Override velocity value for MIDI tap. Defaults to 65.
     61
    5762  -T, --timeformat format  Set time format (samples, ms, seconds). Defaults to
    5863  seconds.
     
    7378  Matthew E. P. Davies, Paul Brossier, and Mark D. Plumbley. Beat tracking
    7479  towards automatic musical accompaniment. In Proceedings of the Audio
    75   Engeeniring Society 118th Convention, Barcelona, Spain, May 2005.
     80  Engineering Society 118th Convention, Barcelona, Spain, May 2005.
    7681
    7782SEE ALSO
  • doc/building.rst

    r5b46bc3 r633400d  
    2121The **latest stable release** can be downloaded from https://aubio.org/download::
    2222
    23         $ curl -O http://aubio.org/pub/aubio-0.4.3.tar.bz2
    24         $ tar xf aubio-0.4.3.tar.bz2
    25         $ cd aubio-0.4.3
     23        $ curl -O http://aubio.org/pub/aubio-<version>.tar.bz2
     24        $ tar xf aubio-<version>.tar.bz2
     25        $ cd aubio-<version>/
    2626
    2727Git repository
     
    3131
    3232        $ git clone git://git.aubio.org/git/aubio
    33         $ cd aubio
     33        $ cd aubio/
    3434
    3535The following command will fetch the correct `waf`_ version (not included in
     
    7474       $ waf configure build
    7575
     76
     77Running as a user
     78-----------------
     79
     80To use aubio without actually installing, for instance if you don't have root
     81access to install libaubio on your system,
     82
     83On Linux or macOS, sourcing the script ``scripts/setenv_local.sh`` should help::
     84
     85       $ source ./scripts/setenv_local.sh
     86
     87This script sets ``LD_LIBRARY_PATH``, for libaubio, and ``PYTHONPATH`` for the
     88python module.
     89
     90On Linux, you should be able to set ``LD_LIBRARY_PATH`` with::
     91
     92        $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/build/src
     93
     94On Mac OS X, a copy or a symlink can be made in ``~/lib``::
     95
     96        $ mkdir -p ~/lib
     97        $ ln -sf $PWD/build/src/libaubio*.dylib ~/lib/
     98
     99Note on Mac OS X systems older than El Capitan (10.11), the ``DYLD_LIBRARY_PATH``
     100variable can be set as follows::
     101
     102        $ export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$PWD/build/src
     103
    76104Cleaning
    77105--------
     
    95123.. _Git Bash: https://git-for-windows.github.io/
    96124
    97 .. toctree::
    98    :maxdepth: 2
     125.. _xcode-frameworks-label:
     126
     127.. include:: xcode_frameworks.rst
     128
     129.. include:: android.rst
  • doc/cli.rst

    r5b46bc3 r633400d  
    44==================
    55
    6 A few simple command line tools are included along with the library.
     6The python module comes with the following tools:
     7
     8 - ``aubio`` estimate and extract descriptors from sound files
     9 - ``aubiocut`` slices sound files at onset or beat timestamps
     10
     11More command line tools are included along with the library.
    712
    813 - ``aubioonset`` outputs the time stamp of detected note onsets
     
    1419 - ``aubioquiet`` extracts quiet and loud regions
    1520
    16 Additionally, the python module comes with the following script:
    1721
    18  - ``aubiocut`` slices sound files at onset or beat timestamps
     22``aubio``
     23---------
     24
     25.. literalinclude:: aubio.txt
     26   :language: text
     27
     28
     29``aubiocut``
     30--------------
     31
     32.. literalinclude:: aubiocut.txt
     33   :language: text
    1934
    2035
     
    2338
    2439.. literalinclude:: aubioonset.txt
     40   :language: text
    2541
    2642``aubiopitch``
     
    2844
    2945.. literalinclude:: aubiopitch.txt
     46   :language: text
    3047
    3148``aubiomfcc``
     
    3350
    3451.. literalinclude:: aubiomfcc.txt
     52   :language: text
    3553
    3654``aubiotrack``
     
    3856
    3957.. literalinclude:: aubiotrack.txt
     58   :language: text
    4059
    4160``aubionotes``
     
    4362
    4463.. literalinclude:: aubionotes.txt
     64   :language: text
    4565
    4666``aubioquiet``
     
    4868
    4969.. literalinclude:: aubioquiet.txt
     70   :language: text
    5071
    51 ``aubiocut``
    52 --------------
    5372
    54 .. literalinclude:: aubiocut.txt
     73.. include:: cli_features.rst
  • doc/conf.py

    r5b46bc3 r633400d  
    1313
    1414import sys, os
     15
     16# get version using this_version.py
     17sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..'))
     18from this_version import get_aubio_version
    1519
    1620# If extensions (or modules to document with autodoc) are in another directory,
    1721# add these directories to sys.path here. If the directory is relative to the
    1822# documentation root, use os.path.abspath to make it absolute, like shown here.
    19 sys.path.insert(0, os.path.abspath('../../python/build/lib.macosx-10.6-intel-2.7'))
     23#sys.path.insert(0, os.path.abspath('../../python/build/...'))
    2024
    2125# -- General configuration -----------------------------------------------------
     
    2630# Add any Sphinx extension module names here, as strings. They can be extensions
    2731# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
    28 extensions = ['sphinx.ext.viewcode', 'sphinx.ext.autodoc']
     32extensions = ['sphinx.ext.viewcode', 'sphinx.ext.autodoc',
     33        'sphinx.ext.napoleon', 'sphinx.ext.intersphinx']
     34
     35autodoc_member_order = 'groupwise'
     36
     37intersphinx_mapping = {
     38        'numpy': ('https://docs.scipy.org/doc/numpy/', None),
     39        }
    2940
    3041# Add any paths that contain templates here, relative to this directory.
     
    4253# General information about the project.
    4354project = u'aubio'
    44 copyright = u'2016, Paul Brossier'
     55copyright = u'2018, Paul Brossier'
    4556
    4657# The version info for the project you're documenting, acts as replacement for
     
    4960#
    5061# The short X.Y version.
    51 version = '0.4'
     62
     63version = get_aubio_version()[:3]
    5264# The full version, including alpha/beta/rc tags.
    53 release = 'latest'
     65release = get_aubio_version()
    5466
    5567# The language for content autogenerated by Sphinx. Refer to documentation
     
    6577# List of patterns, relative to source directory, that match files and
    6678# directories to ignore when looking for source files.
    67 exclude_patterns = ['_build']
     79exclude_patterns = ['_build',
     80        'statuslinks.rst',
     81        'download.rst',
     82        'binaries.rst',
     83        'debian_packages.rst',
     84        'building.rst',
     85        'android.rst',
     86        'xcode_frameworks.rst',
     87        'requirements.rst',
     88        'cli_features.rst',
     89        ]
    6890
    6991# The reST default role (used for this markup: `text`) to use for all documents.
     
    92114# The theme to use for HTML and HTML Help pages.  See the documentation for
    93115# a list of builtin themes.
    94 html_theme = 'default'
     116#html_theme = 'agogo'
     117#html_theme = 'default'
     118#html_theme = 'haiku'
     119html_theme = 'pyramid'
    95120
    96121# Theme options are theme-specific and customize the look and feel of a theme
     
    121146# relative to this directory. They are copied after the builtin static files,
    122147# so a file named "default.css" will overwrite the builtin "default.css".
    123 html_static_path = ['_static']
     148html_static_path = [] #['_static']
    124149
    125150# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
     
    151176
    152177# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
    153 #html_show_sphinx = True
     178html_show_sphinx = False
    154179
    155180# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
     
    241266# How to display URL addresses: 'footnote', 'no', or 'inline'.
    242267#texinfo_show_urls = 'footnote'
     268
     269def setup(app):
     270    if release.endswith('~alpha'): app.tags.add('devel')
  • doc/debian_packages.rst

    r5b46bc3 r633400d  
    1010``git-buildpackage`` to build from the git repository. For instance:
    1111
    12 .. code-block:: bash
     12.. code-block:: console
    1313
    1414    $ git clone git://anonscm.debian.org/collab-maint/aubio.git
  • doc/develop.rst

    r5b46bc3 r633400d  
    1 Developping with aubio
    2 ======================
     1.. _develop:
    32
    4 Read `Contribute`_ to report issues and request new features.
     3Developing with aubio
     4=====================
    55
    6 See `Doxygen documentation`_ for the complete documentation of the C library,
    7 built using `Doxygen <http://www.doxygen.org/>`_.
     6Here is a brief overview of the C library.
    87
    9 Below is a brief `Library overview`_.
     8For a more detailed list of available functions, see the `API documentation
     9<https://aubio.org/doc/latest/>`_.
    1010
    11 Library overview
    12 ----------------
     11To report issues, ask questions, and request new features, use `Github Issues
     12<https://github.com/aubio/aubio/issues>`_
    1313
    14 Here is a brief overview of the C library. See also the `Doxygen
    15 documentation`_ for a more detailed list of available functions.
     14Design Basics
     15-------------
    1616
    17 Vectors and matrix
    18 ``````````````````
     17The library is written in C and is optimised for speed and portability.
    1918
    20 ``fvec_t`` are used to hold vectors of float (``smpl_t``).
    21 
    22 .. literalinclude:: ../tests/src/test-fvec.c
    23    :language: C
    24    :lines: 7
    25 
     19All memory allocations take place in the `new_` methods. Each successful call
     20to `new_` should have a matching call to `del_` to deallocate the object.
    2621
    2722.. code-block:: C
    2823
    29         // set some elements
    30         vec->data[511] = 2.;
    31         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);
    3228
    33 Similarly, ``fmat_t`` are used to hold matrix of floats.
     29The main computations are done in the `_do` methods.
    3430
    35 .. literalinclude:: ../tests/src/test-fmat.c
    36    :language: C
    37    :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
     36Most 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
     45In 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
     52Basic 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
    3884
    3985Reading a sound file
    40 ````````````````````
    41 In this example, ``aubio_source`` is used to read a media file.
     86--------------------
    4287
    43 First, create the objects we need.
     88In this example, `aubio_source <https://aubio.org/doc/latest/source_8h.html>`_
     89is used to read a media file.
     90
     91First, define a few variables and allocate some memory.
    4492
    4593.. literalinclude:: ../tests/src/io/test-source.c
     
    57105   :lines: 40-44
    58106
    59 At the end of the processing loop, clean-up and de-allocate memory:
     107At the end of the processing loop, memory is deallocated:
    60108
    61109.. literalinclude:: ../tests/src/io/test-source.c
    62110   :language: C
    63    :lines: 50-56
     111   :lines: 55-56
    64112
    65113See the complete example: :download:`test-source.c
    66114<../tests/src/io/test-source.c>`.
    67115
    68 Computing the spectrum
    69 ``````````````````````
     116Computing a spectrum
     117--------------------
    70118
    71119Now let's create a phase vocoder:
     
    75123   :lines: 6-11
    76124
    77 The processing loop could know look like:
     125The processing loop could now look like:
    78126
    79127.. literalinclude:: ../tests/src/spectral/test-phasevoc.c
    80128   :language: C
    81    :lines: 21-35
     129   :lines: 20-37
     130
     131Time to clean up the previously allocated memory:
     132
     133.. literalinclude:: ../tests/src/spectral/test-phasevoc.c
     134   :language: C
     135   :lines: 39-44
    82136
    83137See the complete example: :download:`test-phasevoc.c
     
    89143---------------------
    90144
    91 The latest version of the doxygen documentation is available at:
     145The latest version of the API documentation is built using `Doxygen
     146<http://www.doxygen.org/>`_ and is available at:
    92147
    93     https://aubio.org/doc/latest
     148    https://aubio.org/doc/latest/
    94149
    95150Contribute
     
    98153Please report any issue and feature request at the `Github issue tracker
    99154<https://github.com/aubio/aubio/issues>`_. Patches and pull-requests welcome!
    100 
  • doc/download.rst

    r5b46bc3 r633400d  
    66A number of distributions already include aubio. Check your favorite package
    77management system, or have a look at the `aubio download page
    8 <http://aubio.org/download>`_ for more options.
    9 
    10 To use aubio in a macOS or iOS application, see :ref:`xcode-frameworks-label`.
     8<https://aubio.org/download>`_ for more options.
    119
    1210To use aubio in an android project, see :ref:`android`.
    1311
    14 .. toctree::
     12To compile aubio from source, read :ref:`building`.
    1513
    16   debian_packages
    17   xcode_frameworks
    18   android
     14.. include:: binaries.rst
    1915
    20 To compile aubio from source, read :ref:`building`.
     16.. include:: debian_packages.rst
  • doc/full.cfg

    r5b46bc3 r633400d  
    1 # Doxyfile 1.8.8
    2 
    3 # This file describes the settings to be used by the documentation system
    4 # doxygen (www.doxygen.org) for a project.
    5 #
    6 # All text after a double hash (##) is considered a comment and is placed in
    7 # front of the TAG it is preceding.
    8 #
    9 # All text after a single hash (#) is considered a comment and will be ignored.
    10 # The format is:
    11 # TAG = value [value, ...]
    12 # For lists, items can also be appended using:
    13 # TAG += value [value, ...]
    14 # Values that contain spaces should be placed between quotes (\" \").
    15 
    16 #---------------------------------------------------------------------------
    17 # Project related configuration options
    18 #---------------------------------------------------------------------------
    19 
    20 # This tag specifies the encoding used for all characters in the config file
    21 # that follow. The default is UTF-8 which is also the encoding used for all text
    22 # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
    23 # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
    24 # for the list of possible encodings.
    25 # The default value is: UTF-8.
    26 
    27 DOXYFILE_ENCODING      = UTF-8
    28 
    29 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
    30 # double-quotes, unless you are using Doxywizard) that should identify the
    31 # project for which the documentation is generated. This name is used in the
    32 # title of most generated pages and in a few other places.
    33 # The default value is: My Project.
    34 
    35 PROJECT_NAME           = aubio
    36 
    37 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This
    38 # could be handy for archiving the generated documentation or if some version
    39 # control system is used.
    40 
    41 PROJECT_NUMBER         = "0.4.2~alpha full"
    42 
    43 # Using the PROJECT_BRIEF tag one can provide an optional one line description
    44 # for a project that appears at the top of each page and should give viewer a
    45 # quick idea about the purpose of the project. Keep the description short.
    46 
    47 PROJECT_BRIEF          =
    48 
    49 # With the PROJECT_LOGO tag one can specify an logo or icon that is included in
    50 # the documentation. The maximum height of the logo should not exceed 55 pixels
    51 # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
    52 # to the output directory.
    53 
    54 PROJECT_LOGO           =
    55 
    56 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
    57 # into which the generated documentation will be written. If a relative path is
    58 # entered, it will be relative to the location where doxygen was started. If
    59 # left blank the current directory will be used.
     1@INCLUDE_PATH = ./doc
     2@INCLUDE = web.cfg
    603
    614OUTPUT_DIRECTORY       = full
    62 
    63 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
    64 # directories (in 2 levels) under the output directory of each output format and
    65 # will distribute the generated files over these directories. Enabling this
    66 # option can be useful when feeding doxygen a huge amount of source files, where
    67 # putting all generated files in the same directory would otherwise causes
    68 # performance problems for the file system.
    69 # The default value is: NO.
    70 
    71 CREATE_SUBDIRS         = NO
    72 
    73 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
    74 # characters to appear in the names of generated files. If set to NO, non-ASCII
    75 # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
    76 # U+3044.
    77 # The default value is: NO.
    78 
    79 ALLOW_UNICODE_NAMES    = NO
    80 
    81 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
    82 # documentation generated by doxygen is written. Doxygen will use this
    83 # information to generate all constant output in the proper language.
    84 # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
    85 # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
    86 # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
    87 # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
    88 # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
    89 # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
    90 # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
    91 # Ukrainian and Vietnamese.
    92 # The default value is: English.
    93 
    94 OUTPUT_LANGUAGE        = English
    95 
    96 # If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
    97 # descriptions after the members that are listed in the file and class
    98 # documentation (similar to Javadoc). Set to NO to disable this.
    99 # The default value is: YES.
    100 
    101 BRIEF_MEMBER_DESC      = YES
    102 
    103 # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
    104 # description of a member or function before the detailed description
    105 #
    106 # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
    107 # brief descriptions will be completely suppressed.
    108 # The default value is: YES.
    109 
    110 REPEAT_BRIEF           = YES
    111 
    112 # This tag implements a quasi-intelligent brief description abbreviator that is
    113 # used to form the text in various listings. Each string in this list, if found
    114 # as the leading text of the brief description, will be stripped from the text
    115 # and the result, after processing the whole list, is used as the annotated
    116 # text. Otherwise, the brief description is used as-is. If left blank, the
    117 # following values are used ($name is automatically replaced with the name of
    118 # the entity):The $name class, The $name widget, The $name file, is, provides,
    119 # specifies, contains, represents, a, an and the.
    120 
    121 ABBREVIATE_BRIEF       =
    122 
    123 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
    124 # doxygen will generate a detailed section even if there is only a brief
    125 # description.
    126 # The default value is: NO.
    127 
    128 ALWAYS_DETAILED_SEC    = NO
    129 
    130 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
    131 # inherited members of a class in the documentation of that class as if those
    132 # members were ordinary class members. Constructors, destructors and assignment
    133 # operators of the base classes will not be shown.
    134 # The default value is: NO.
    135 
    136 INLINE_INHERITED_MEMB  = NO
    137 
    138 # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
    139 # before files name in the file list and in the header files. If set to NO the
    140 # shortest path that makes the file name unique will be used
    141 # The default value is: YES.
    142 
    143 FULL_PATH_NAMES        = YES
    144 
    145 # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
    146 # Stripping is only done if one of the specified strings matches the left-hand
    147 # part of the path. The tag can be used to show relative paths in the file list.
    148 # If left blank the directory from which doxygen is run is used as the path to
    149 # strip.
    150 #
    151 # Note that you can specify absolute paths here, but also relative paths, which
    152 # will be relative from the directory where doxygen is started.
    153 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
    154 
    155 STRIP_FROM_PATH        = ../src
    156 
    157 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
    158 # path mentioned in the documentation of a class, which tells the reader which
    159 # header file to include in order to use a class. If left blank only the name of
    160 # the header file containing the class definition is used. Otherwise one should
    161 # specify the list of include paths that are normally passed to the compiler
    162 # using the -I flag.
    163 
    164 STRIP_FROM_INC_PATH    =
    165 
    166 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
    167 # less readable) file names. This can be useful is your file systems doesn't
    168 # support long names like on DOS, Mac, or CD-ROM.
    169 # The default value is: NO.
    170 
    171 SHORT_NAMES            = NO
    172 
    173 # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
    174 # first line (until the first dot) of a Javadoc-style comment as the brief
    175 # description. If set to NO, the Javadoc-style will behave just like regular Qt-
    176 # style comments (thus requiring an explicit @brief command for a brief
    177 # description.)
    178 # The default value is: NO.
    179 
    180 JAVADOC_AUTOBRIEF      = YES
    181 
    182 # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
    183 # line (until the first dot) of a Qt-style comment as the brief description. If
    184 # set to NO, the Qt-style will behave just like regular Qt-style comments (thus
    185 # requiring an explicit \brief command for a brief description.)
    186 # The default value is: NO.
    187 
    188 QT_AUTOBRIEF           = NO
    189 
    190 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
    191 # multi-line C++ special comment block (i.e. a block of //! or /// comments) as
    192 # a brief description. This used to be the default behavior. The new default is
    193 # to treat a multi-line C++ comment block as a detailed description. Set this
    194 # tag to YES if you prefer the old behavior instead.
    195 #
    196 # Note that setting this tag to YES also means that rational rose comments are
    197 # not recognized any more.
    198 # The default value is: NO.
    199 
    200 MULTILINE_CPP_IS_BRIEF = NO
    201 
    202 # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
    203 # documentation from any documented member that it re-implements.
    204 # The default value is: YES.
    205 
    206 INHERIT_DOCS           = YES
    207 
    208 # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
    209 # new page for each member. If set to NO, the documentation of a member will be
    210 # part of the file/class/namespace that contains it.
    211 # The default value is: NO.
    212 
    213 SEPARATE_MEMBER_PAGES  = NO
    214 
    215 # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
    216 # uses this value to replace tabs by spaces in code fragments.
    217 # Minimum value: 1, maximum value: 16, default value: 4.
    218 
    219 TAB_SIZE               = 4
    220 
    221 # This tag can be used to specify a number of aliases that act as commands in
    222 # the documentation. An alias has the form:
    223 # name=value
    224 # For example adding
    225 # "sideeffect=@par Side Effects:\n"
    226 # will allow you to put the command \sideeffect (or @sideeffect) in the
    227 # documentation, which will result in a user-defined paragraph with heading
    228 # "Side Effects:". You can put \n's in the value part of an alias to insert
    229 # newlines.
    230 
    231 ALIASES                =
    232 
    233 # This tag can be used to specify a number of word-keyword mappings (TCL only).
    234 # A mapping has the form "name=value". For example adding "class=itcl::class"
    235 # will allow you to use the command class in the itcl::class meaning.
    236 
    237 TCL_SUBST              =
    238 
    239 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
    240 # only. Doxygen will then generate output that is more tailored for C. For
    241 # instance, some of the names that are used will be different. The list of all
    242 # members will be omitted, etc.
    243 # The default value is: NO.
    244 
    245 OPTIMIZE_OUTPUT_FOR_C  = YES
    246 
    247 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
    248 # Python sources only. Doxygen will then generate output that is more tailored
    249 # for that language. For instance, namespaces will be presented as packages,
    250 # qualified scopes will look different, etc.
    251 # The default value is: NO.
    252 
    253 OPTIMIZE_OUTPUT_JAVA   = NO
    254 
    255 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
    256 # sources. Doxygen will then generate output that is tailored for Fortran.
    257 # The default value is: NO.
    258 
    259 OPTIMIZE_FOR_FORTRAN   = NO
    260 
    261 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
    262 # sources. Doxygen will then generate output that is tailored for VHDL.
    263 # The default value is: NO.
    264 
    265 OPTIMIZE_OUTPUT_VHDL   = NO
    266 
    267 # Doxygen selects the parser to use depending on the extension of the files it
    268 # parses. With this tag you can assign which parser to use for a given
    269 # extension. Doxygen has a built-in mapping, but you can override or extend it
    270 # using this tag. The format is ext=language, where ext is a file extension, and
    271 # language is one of the parsers supported by doxygen: IDL, Java, Javascript,
    272 # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
    273 # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
    274 # Fortran. In the later case the parser tries to guess whether the code is fixed
    275 # or free formatted code, this is the default for Fortran type files), VHDL. For
    276 # instance to make doxygen treat .inc files as Fortran files (default is PHP),
    277 # and .f files as C (default is Fortran), use: inc=Fortran f=C.
    278 #
    279 # Note For files without extension you can use no_extension as a placeholder.
    280 #
    281 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
    282 # the files are not read by doxygen.
    283 
    284 EXTENSION_MAPPING      =
    285 
    286 # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
    287 # according to the Markdown format, which allows for more readable
    288 # documentation. See http://daringfireball.net/projects/markdown/ for details.
    289 # The output of markdown processing is further processed by doxygen, so you can
    290 # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
    291 # case of backward compatibilities issues.
    292 # The default value is: YES.
    293 
    294 MARKDOWN_SUPPORT       = YES
    295 
    296 # When enabled doxygen tries to link words that correspond to documented
    297 # classes, or namespaces to their corresponding documentation. Such a link can
    298 # be prevented in individual cases by by putting a % sign in front of the word
    299 # or globally by setting AUTOLINK_SUPPORT to NO.
    300 # The default value is: YES.
    301 
    302 AUTOLINK_SUPPORT       = YES
    303 
    304 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
    305 # to include (a tag file for) the STL sources as input, then you should set this
    306 # tag to YES in order to let doxygen match functions declarations and
    307 # definitions whose arguments contain STL classes (e.g. func(std::string);
    308 # versus func(std::string) {}). This also make the inheritance and collaboration
    309 # diagrams that involve STL classes more complete and accurate.
    310 # The default value is: NO.
    311 
    312 BUILTIN_STL_SUPPORT    = NO
    313 
    314 # If you use Microsoft's C++/CLI language, you should set this option to YES to
    315 # enable parsing support.
    316 # The default value is: NO.
    317 
    318 CPP_CLI_SUPPORT        = NO
    319 
    320 # Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
    321 # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
    322 # will parse them like normal C++ but will assume all classes use public instead
    323 # of private inheritance when no explicit protection keyword is present.
    324 # The default value is: NO.
    325 
    326 SIP_SUPPORT            = NO
    327 
    328 # For Microsoft's IDL there are propget and propput attributes to indicate
    329 # getter and setter methods for a property. Setting this option to YES will make
    330 # doxygen to replace the get and set methods by a property in the documentation.
    331 # This will only work if the methods are indeed getting or setting a simple
    332 # type. If this is not the case, or you want to show the methods anyway, you
    333 # should set this option to NO.
    334 # The default value is: YES.
    335 
    336 IDL_PROPERTY_SUPPORT   = YES
    337 
    338 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
    339 # tag is set to YES, then doxygen will reuse the documentation of the first
    340 # member in the group (if any) for the other members of the group. By default
    341 # all members of a group must be documented explicitly.
    342 # The default value is: NO.
    343 
    344 DISTRIBUTE_GROUP_DOC   = NO
    345 
    346 # Set the SUBGROUPING tag to YES to allow class member groups of the same type
    347 # (for instance a group of public functions) to be put as a subgroup of that
    348 # type (e.g. under the Public Functions section). Set it to NO to prevent
    349 # subgrouping. Alternatively, this can be done per class using the
    350 # \nosubgrouping command.
    351 # The default value is: YES.
    352 
    353 SUBGROUPING            = YES
    354 
    355 # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
    356 # are shown inside the group in which they are included (e.g. using \ingroup)
    357 # instead of on a separate page (for HTML and Man pages) or section (for LaTeX
    358 # and RTF).
    359 #
    360 # Note that this feature does not work in combination with
    361 # SEPARATE_MEMBER_PAGES.
    362 # The default value is: NO.
    363 
    364 INLINE_GROUPED_CLASSES = NO
    365 
    366 # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
    367 # with only public data fields or simple typedef fields will be shown inline in
    368 # the documentation of the scope in which they are defined (i.e. file,
    369 # namespace, or group documentation), provided this scope is documented. If set
    370 # to NO, structs, classes, and unions are shown on a separate page (for HTML and
    371 # Man pages) or section (for LaTeX and RTF).
    372 # The default value is: NO.
    373 
    374 INLINE_SIMPLE_STRUCTS  = NO
    375 
    376 # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
    377 # enum is documented as struct, union, or enum with the name of the typedef. So
    378 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct
    379 # with name TypeT. When disabled the typedef will appear as a member of a file,
    380 # namespace, or class. And the struct will be named TypeS. This can typically be
    381 # useful for C code in case the coding convention dictates that all compound
    382 # types are typedef'ed and only the typedef is referenced, never the tag name.
    383 # The default value is: NO.
    384 
    385 TYPEDEF_HIDES_STRUCT   = NO
    386 
    387 # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
    388 # cache is used to resolve symbols given their name and scope. Since this can be
    389 # an expensive process and often the same symbol appears multiple times in the
    390 # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
    391 # doxygen will become slower. If the cache is too large, memory is wasted. The
    392 # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
    393 # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
    394 # symbols. At the end of a run doxygen will report the cache usage and suggest
    395 # the optimal cache size from a speed point of view.
    396 # Minimum value: 0, maximum value: 9, default value: 0.
    397 
    398 LOOKUP_CACHE_SIZE      = 0
    399 
    400 #---------------------------------------------------------------------------
    401 # Build related configuration options
    402 #---------------------------------------------------------------------------
    403 
    404 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
    405 # documentation are documented, even if no documentation was available. Private
    406 # class members and static file members will be hidden unless the
    407 # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
    408 # Note: This will also disable the warnings about undocumented members that are
    409 # normally produced when WARNINGS is set to YES.
    410 # The default value is: NO.
    411 
    4125EXTRACT_ALL            = YES
    413 
    414 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
    415 # be included in the documentation.
    416 # The default value is: NO.
    417 
    4186EXTRACT_PRIVATE        = YES
    419 
    420 # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
    421 # scope will be included in the documentation.
    422 # The default value is: NO.
    423 
    424 EXTRACT_PACKAGE        = NO
    425 
    426 # If the EXTRACT_STATIC tag is set to YES all static members of a file will be
    427 # included in the documentation.
    428 # The default value is: NO.
    429 
    4307EXTRACT_STATIC         = YES
    431 
    432 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
    433 # locally in source files will be included in the documentation. If set to NO
    434 # only classes defined in header files are included. Does not have any effect
    435 # for Java sources.
    436 # The default value is: YES.
    437 
    438 EXTRACT_LOCAL_CLASSES  = YES
    439 
    440 # This flag is only useful for Objective-C code. When set to YES local methods,
    441 # which are defined in the implementation section but not in the interface are
    442 # included in the documentation. If set to NO only methods in the interface are
    443 # included.
    444 # The default value is: NO.
    445 
    446 EXTRACT_LOCAL_METHODS  = NO
    447 
    448 # If this flag is set to YES, the members of anonymous namespaces will be
    449 # extracted and appear in the documentation as a namespace called
    450 # 'anonymous_namespace{file}', where file will be replaced with the base name of
    451 # the file that contains the anonymous namespace. By default anonymous namespace
    452 # are hidden.
    453 # The default value is: NO.
    454 
    455 EXTRACT_ANON_NSPACES   = NO
    456 
    457 # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
    458 # undocumented members inside documented classes or files. If set to NO these
    459 # members will be included in the various overviews, but no documentation
    460 # section is generated. This option has no effect if EXTRACT_ALL is enabled.
    461 # The default value is: NO.
    462 
    463 HIDE_UNDOC_MEMBERS     = NO
    464 
    465 # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
    466 # undocumented classes that are normally visible in the class hierarchy. If set
    467 # to NO these classes will be included in the various overviews. This option has
    468 # no effect if EXTRACT_ALL is enabled.
    469 # The default value is: NO.
    470 
    471 HIDE_UNDOC_CLASSES     = NO
    472 
    473 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
    474 # (class|struct|union) declarations. If set to NO these declarations will be
    475 # included in the documentation.
    476 # The default value is: NO.
    477 
    478 HIDE_FRIEND_COMPOUNDS  = NO
    479 
    480 # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
    481 # documentation blocks found inside the body of a function. If set to NO these
    482 # blocks will be appended to the function's detailed documentation block.
    483 # The default value is: NO.
    484 
    485 HIDE_IN_BODY_DOCS      = NO
    486 
    487 # The INTERNAL_DOCS tag determines if documentation that is typed after a
    488 # \internal command is included. If the tag is set to NO then the documentation
    489 # will be excluded. Set it to YES to include the internal documentation.
    490 # The default value is: NO.
    491 
    492 INTERNAL_DOCS          = NO
    493 
    494 # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
    495 # names in lower-case letters. If set to YES upper-case letters are also
    496 # allowed. This is useful if you have classes or files whose names only differ
    497 # in case and if your file system supports case sensitive file names. Windows
    498 # and Mac users are advised to set this option to NO.
    499 # The default value is: system dependent.
    500 
    501 CASE_SENSE_NAMES       = NO
    502 
    503 # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
    504 # their full class and namespace scopes in the documentation. If set to YES the
    505 # scope will be hidden.
    506 # The default value is: NO.
    507 
    508 HIDE_SCOPE_NAMES       = NO
    509 
    510 # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
    511 # the files that are included by a file in the documentation of that file.
    512 # The default value is: YES.
    513 
    514 SHOW_INCLUDE_FILES     = YES
    515 
    516 # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
    517 # grouped member an include statement to the documentation, telling the reader
    518 # which file to include in order to use the member.
    519 # The default value is: NO.
    520 
    521 SHOW_GROUPED_MEMB_INC  = NO
    522 
    523 # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
    524 # files with double quotes in the documentation rather than with sharp brackets.
    525 # The default value is: NO.
    526 
    527 FORCE_LOCAL_INCLUDES   = NO
    528 
    529 # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
    530 # documentation for inline members.
    531 # The default value is: YES.
    532 
    533 INLINE_INFO            = YES
    534 
    535 # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
    536 # (detailed) documentation of file and class members alphabetically by member
    537 # name. If set to NO the members will appear in declaration order.
    538 # The default value is: YES.
    539 
    540 SORT_MEMBER_DOCS       = YES
    541 
    542 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
    543 # descriptions of file, namespace and class members alphabetically by member
    544 # name. If set to NO the members will appear in declaration order. Note that
    545 # this will also influence the order of the classes in the class list.
    546 # The default value is: NO.
    547 
    548 SORT_BRIEF_DOCS        = NO
    549 
    550 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
    551 # (brief and detailed) documentation of class members so that constructors and
    552 # destructors are listed first. If set to NO the constructors will appear in the
    553 # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
    554 # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
    555 # member documentation.
    556 # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
    557 # detailed member documentation.
    558 # The default value is: NO.
    559 
    560 SORT_MEMBERS_CTORS_1ST = NO
    561 
    562 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
    563 # of group names into alphabetical order. If set to NO the group names will
    564 # appear in their defined order.
    565 # The default value is: NO.
    566 
    567 SORT_GROUP_NAMES       = NO
    568 
    569 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
    570 # fully-qualified names, including namespaces. If set to NO, the class list will
    571 # be sorted only by class name, not including the namespace part.
    572 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
    573 # Note: This option applies only to the class list, not to the alphabetical
    574 # list.
    575 # The default value is: NO.
    576 
    577 SORT_BY_SCOPE_NAME     = NO
    578 
    579 # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
    580 # type resolution of all parameters of a function it will reject a match between
    581 # the prototype and the implementation of a member function even if there is
    582 # only one candidate or it is obvious which candidate to choose by doing a
    583 # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
    584 # accept a match between prototype and implementation in such cases.
    585 # The default value is: NO.
    586 
    587 STRICT_PROTO_MATCHING  = NO
    588 
    589 # The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
    590 # todo list. This list is created by putting \todo commands in the
    591 # documentation.
    592 # The default value is: YES.
    593 
    594 GENERATE_TODOLIST      = YES
    595 
    596 # The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
    597 # test list. This list is created by putting \test commands in the
    598 # documentation.
    599 # The default value is: YES.
    600 
    601 GENERATE_TESTLIST      = YES
    602 
    603 # The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
    604 # list. This list is created by putting \bug commands in the documentation.
    605 # The default value is: YES.
    606 
    607 GENERATE_BUGLIST       = YES
    608 
    609 # The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
    610 # the deprecated list. This list is created by putting \deprecated commands in
    611 # the documentation.
    612 # The default value is: YES.
    613 
    614 GENERATE_DEPRECATEDLIST= YES
    615 
    616 # The ENABLED_SECTIONS tag can be used to enable conditional documentation
    617 # sections, marked by \if <section_label> ... \endif and \cond <section_label>
    618 # ... \endcond blocks.
    619 
    620 ENABLED_SECTIONS       =
    621 
    622 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
    623 # initial value of a variable or macro / define can have for it to appear in the
    624 # documentation. If the initializer consists of more lines than specified here
    625 # it will be hidden. Use a value of 0 to hide initializers completely. The
    626 # appearance of the value of individual variables and macros / defines can be
    627 # controlled using \showinitializer or \hideinitializer command in the
    628 # documentation regardless of this setting.
    629 # Minimum value: 0, maximum value: 10000, default value: 30.
    630 
    631 MAX_INITIALIZER_LINES  = 30
    632 
    633 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
    634 # the bottom of the documentation of classes and structs. If set to YES the list
    635 # will mention the files that were used to generate the documentation.
    636 # The default value is: YES.
    637 
    638 SHOW_USED_FILES        = YES
    639 
    640 # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
    641 # will remove the Files entry from the Quick Index and from the Folder Tree View
    642 # (if specified).
    643 # The default value is: YES.
    644 
    645 SHOW_FILES             = YES
    646 
    647 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
    648 # page. This will remove the Namespaces entry from the Quick Index and from the
    649 # Folder Tree View (if specified).
    650 # The default value is: YES.
    651 
    652 SHOW_NAMESPACES        = YES
    653 
    654 # The FILE_VERSION_FILTER tag can be used to specify a program or script that
    655 # doxygen should invoke to get the current version for each file (typically from
    656 # the version control system). Doxygen will invoke the program by executing (via
    657 # popen()) the command command input-file, where command is the value of the
    658 # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
    659 # by doxygen. Whatever the program writes to standard output is used as the file
    660 # version. For an example see the documentation.
    661 
    662 FILE_VERSION_FILTER    =
    663 
    664 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
    665 # by doxygen. The layout file controls the global structure of the generated
    666 # output files in an output format independent way. To create the layout file
    667 # that represents doxygen's defaults, run doxygen with the -l option. You can
    668 # optionally specify a file name after the option, if omitted DoxygenLayout.xml
    669 # will be used as the name of the layout file.
    670 #
    671 # Note that if you run doxygen from a directory containing a file called
    672 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
    673 # tag is left empty.
    674 
    675 LAYOUT_FILE            =
    676 
    677 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
    678 # the reference definitions. This must be a list of .bib files. The .bib
    679 # extension is automatically appended if omitted. This requires the bibtex tool
    680 # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
    681 # For LaTeX the style of the bibliography can be controlled using
    682 # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
    683 # search path. See also \cite for info how to create references.
    684 
    685 CITE_BIB_FILES         =
    686 
    687 #---------------------------------------------------------------------------
    688 # Configuration options related to warning and progress messages
    689 #---------------------------------------------------------------------------
    690 
    691 # The QUIET tag can be used to turn on/off the messages that are generated to
    692 # standard output by doxygen. If QUIET is set to YES this implies that the
    693 # messages are off.
    694 # The default value is: NO.
    695 
    696 QUIET                  = NO
    697 
    698 # The WARNINGS tag can be used to turn on/off the warning messages that are
    699 # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
    700 # this implies that the warnings are on.
    701 #
    702 # Tip: Turn warnings on while writing the documentation.
    703 # The default value is: YES.
    704 
    705 WARNINGS               = YES
    706 
    707 # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
    708 # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
    709 # will automatically be disabled.
    710 # The default value is: YES.
    711 
    712 WARN_IF_UNDOCUMENTED   = YES
    713 
    714 # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
    715 # potential errors in the documentation, such as not documenting some parameters
    716 # in a documented function, or documenting parameters that don't exist or using
    717 # markup commands wrongly.
    718 # The default value is: YES.
    719 
    720 WARN_IF_DOC_ERROR      = YES
    721 
    722 # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
    723 # are documented, but have no documentation for their parameters or return
    724 # value. If set to NO doxygen will only warn about wrong or incomplete parameter
    725 # documentation, but not about the absence of documentation.
    726 # The default value is: NO.
    727 
    728 WARN_NO_PARAMDOC       = NO
    729 
    730 # The WARN_FORMAT tag determines the format of the warning messages that doxygen
    731 # can produce. The string should contain the $file, $line, and $text tags, which
    732 # will be replaced by the file and line number from which the warning originated
    733 # and the warning text. Optionally the format may contain $version, which will
    734 # be replaced by the version of the file (if it could be obtained via
    735 # FILE_VERSION_FILTER)
    736 # The default value is: $file:$line: $text.
    737 
    738 WARN_FORMAT            = "$file:$line: $text"
    739 
    740 # The WARN_LOGFILE tag can be used to specify a file to which warning and error
    741 # messages should be written. If left blank the output is written to standard
    742 # error (stderr).
    743 
    744 WARN_LOGFILE           =
    745 
    746 #---------------------------------------------------------------------------
    747 # Configuration options related to the input files
    748 #---------------------------------------------------------------------------
    749 
    750 # The INPUT tag is used to specify the files and/or directories that contain
    751 # documented source files. You may enter file names like myfile.cpp or
    752 # directories like /usr/src/myproject. Separate the files or directories with
    753 # spaces.
    754 # Note: If this tag is empty the current directory is searched.
    755 
    756 INPUT                  = ../src
    757 
    758 # This tag can be used to specify the character encoding of the source files
    759 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
    760 # libiconv (or the iconv built into libc) for the transcoding. See the libiconv
    761 # documentation (see: http://www.gnu.org/software/libiconv) for the list of
    762 # possible encodings.
    763 # The default value is: UTF-8.
    764 
    765 INPUT_ENCODING         = UTF-8
    766 
    767 # If the value of the INPUT tag contains directories, you can use the
    768 # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
    769 # *.h) to filter out the source-files in the directories. If left blank the
    770 # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
    771 # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
    772 # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
    773 # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
    774 # *.qsf, *.as and *.js.
    775 
    776 FILE_PATTERNS          = *.h \
    777                          *.c
    778 
    779 # The RECURSIVE tag can be used to specify whether or not subdirectories should
    780 # be searched for input files as well.
    781 # The default value is: NO.
    782 
    783 RECURSIVE              = YES
    784 
    785 # The EXCLUDE tag can be used to specify files and/or directories that should be
    786 # excluded from the INPUT source files. This way you can easily exclude a
    787 # subdirectory from a directory tree whose root is specified with the INPUT tag.
    788 #
    789 # Note that relative paths are relative to the directory from which doxygen is
    790 # run.
    791 
     8FILE_PATTERNS          = *.h *.c
    7929EXCLUDE                =
    793 
    794 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
    795 # directories that are symbolic links (a Unix file system feature) are excluded
    796 # from the input.
    797 # The default value is: NO.
    798 
    799 EXCLUDE_SYMLINKS       = NO
    800 
    801 # If the value of the INPUT tag contains directories, you can use the
    802 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
    803 # certain files from those directories.
    804 #
    805 # Note that the wildcards are matched against the file with absolute path, so to
    806 # exclude all test directories for example use the pattern */test/*
    807 
    808 EXCLUDE_PATTERNS       =
    809 
    810 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
    811 # (namespaces, classes, functions, etc.) that should be excluded from the
    812 # output. The symbol name can be a fully qualified name, a word, or if the
    813 # wildcard * is used, a substring. Examples: ANamespace, AClass,
    814 # AClass::ANamespace, ANamespace::*Test
    815 #
    816 # Note that the wildcards are matched against the file with absolute path, so to
    817 # exclude all test directories use the pattern */test/*
    818 
    819 EXCLUDE_SYMBOLS        =
    820 
    821 # The EXAMPLE_PATH tag can be used to specify one or more files or directories
    822 # that contain example code fragments that are included (see the \include
    823 # command).
    824 
    825 EXAMPLE_PATH           = ../examples \
    826                          ../tests/src
    827 
    828 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
    829 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
    830 # *.h) to filter out the source-files in the directories. If left blank all
    831 # files are included.
    832 
    833 EXAMPLE_PATTERNS       =
    834 
    835 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
    836 # searched for input files to be used with the \include or \dontinclude commands
    837 # irrespective of the value of the RECURSIVE tag.
    838 # The default value is: NO.
    839 
    840 EXAMPLE_RECURSIVE      = NO
    841 
    842 # The IMAGE_PATH tag can be used to specify one or more files or directories
    843 # that contain images that are to be included in the documentation (see the
    844 # \image command).
    845 
    846 IMAGE_PATH             =
    847 
    848 # The INPUT_FILTER tag can be used to specify a program that doxygen should
    849 # invoke to filter for each input file. Doxygen will invoke the filter program
    850 # by executing (via popen()) the command:
    851 #
    852 # <filter> <input-file>
    853 #
    854 # where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
    855 # name of an input file. Doxygen will then use the output that the filter
    856 # program writes to standard output. If FILTER_PATTERNS is specified, this tag
    857 # will be ignored.
    858 #
    859 # Note that the filter must not add or remove lines; it is applied before the
    860 # code is scanned, but not when the output code is generated. If lines are added
    861 # or removed, the anchors will not be placed correctly.
    862 
    863 INPUT_FILTER           =
    864 
    865 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
    866 # basis. Doxygen will compare the file name with each pattern and apply the
    867 # filter if there is a match. The filters are a list of the form: pattern=filter
    868 # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
    869 # filters are used. If the FILTER_PATTERNS tag is empty or if none of the
    870 # patterns match the file name, INPUT_FILTER is applied.
    871 
    872 FILTER_PATTERNS        =
    873 
    874 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
    875 # INPUT_FILTER ) will also be used to filter the input files that are used for
    876 # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
    877 # The default value is: NO.
    878 
    879 FILTER_SOURCE_FILES    = NO
    880 
    881 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
    882 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
    883 # it is also possible to disable source filtering for a specific pattern using
    884 # *.ext= (so without naming a filter).
    885 # This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
    886 
    887 FILTER_SOURCE_PATTERNS =
    888 
    889 # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
    890 # is part of the input, its contents will be placed on the main page
    891 # (index.html). This can be useful if you have a project on for instance GitHub
    892 # and want to reuse the introduction page also for the doxygen output.
    893 
    894 USE_MDFILE_AS_MAINPAGE =
    895 
    896 #---------------------------------------------------------------------------
    897 # Configuration options related to source browsing
    898 #---------------------------------------------------------------------------
    899 
    900 # If the SOURCE_BROWSER tag is set to YES then a list of source files will be
    901 # generated. Documented entities will be cross-referenced with these sources.
    902 #
    903 # Note: To get rid of all source code in the generated output, make sure that
    904 # also VERBATIM_HEADERS is set to NO.
    905 # The default value is: NO.
    906 
    907 SOURCE_BROWSER         = YES
    908 
    909 # Setting the INLINE_SOURCES tag to YES will include the body of functions,
    910 # classes and enums directly into the documentation.
    911 # The default value is: NO.
    912 
    913 INLINE_SOURCES         = NO
    914 
    915 # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
    916 # special comment blocks from generated source code fragments. Normal C, C++ and
    917 # Fortran comments will always remain visible.
    918 # The default value is: YES.
    919 
    920 STRIP_CODE_COMMENTS    = NO
    921 
    922 # If the REFERENCED_BY_RELATION tag is set to YES then for each documented
    923 # function all documented functions referencing it will be listed.
    924 # The default value is: NO.
    925 
    926 REFERENCED_BY_RELATION = YES
    927 
    928 # If the REFERENCES_RELATION tag is set to YES then for each documented function
    929 # all documented entities called/used by that function will be listed.
    930 # The default value is: NO.
    931 
    932 REFERENCES_RELATION    = YES
    933 
    934 # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
    935 # to YES, then the hyperlinks from functions in REFERENCES_RELATION and
    936 # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
    937 # link to the documentation.
    938 # The default value is: YES.
    939 
    940 REFERENCES_LINK_SOURCE = YES
    941 
    942 # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
    943 # source code will show a tooltip with additional information such as prototype,
    944 # brief description and links to the definition and documentation. Since this
    945 # will make the HTML file larger and loading of large files a bit slower, you
    946 # can opt to disable this feature.
    947 # The default value is: YES.
    948 # This tag requires that the tag SOURCE_BROWSER is set to YES.
    949 
    950 SOURCE_TOOLTIPS        = YES
    951 
    952 # If the USE_HTAGS tag is set to YES then the references to source code will
    953 # point to the HTML generated by the htags(1) tool instead of doxygen built-in
    954 # source browser. The htags tool is part of GNU's global source tagging system
    955 # (see http://www.gnu.org/software/global/global.html). You will need version
    956 # 4.8.6 or higher.
    957 #
    958 # To use it do the following:
    959 # - Install the latest version of global
    960 # - Enable SOURCE_BROWSER and USE_HTAGS in the config file
    961 # - Make sure the INPUT points to the root of the source tree
    962 # - Run doxygen as normal
    963 #
    964 # Doxygen will invoke htags (and that will in turn invoke gtags), so these
    965 # tools must be available from the command line (i.e. in the search path).
    966 #
    967 # The result: instead of the source browser generated by doxygen, the links to
    968 # source code will now point to the output of htags.
    969 # The default value is: NO.
    970 # This tag requires that the tag SOURCE_BROWSER is set to YES.
    971 
    972 USE_HTAGS              = NO
    973 
    974 # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
    975 # verbatim copy of the header file for each class for which an include is
    976 # specified. Set to NO to disable this.
    977 # See also: Section \class.
    978 # The default value is: YES.
    979 
    980 VERBATIM_HEADERS       = YES
    981 
    982 # If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the
    983 # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
    984 # cost of reduced performance. This can be particularly helpful with template
    985 # rich C++ code for which doxygen's built-in parser lacks the necessary type
    986 # information.
    987 # Note: The availability of this option depends on whether or not doxygen was
    988 # compiled with the --with-libclang option.
    989 # The default value is: NO.
    990 
    991 CLANG_ASSISTED_PARSING = NO
    992 
    993 # If clang assisted parsing is enabled you can provide the compiler with command
    994 # line options that you would normally use when invoking the compiler. Note that
    995 # the include paths will already be set by doxygen for the files and directories
    996 # specified with INPUT and INCLUDE_PATH.
    997 # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
    998 
    999 CLANG_OPTIONS          =
    1000 
    1001 #---------------------------------------------------------------------------
    1002 # Configuration options related to the alphabetical class index
    1003 #---------------------------------------------------------------------------
    1004 
    1005 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
    1006 # compounds will be generated. Enable this if the project contains a lot of
    1007 # classes, structs, unions or interfaces.
    1008 # The default value is: YES.
    1009 
    1010 ALPHABETICAL_INDEX     = NO
    1011 
    1012 # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
    1013 # which the alphabetical index list will be split.
    1014 # Minimum value: 1, maximum value: 20, default value: 5.
    1015 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
    1016 
    1017 COLS_IN_ALPHA_INDEX    = 5
    1018 
    1019 # In case all classes in a project start with a common prefix, all classes will
    1020 # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
    1021 # can be used to specify a prefix (or a list of prefixes) that should be ignored
    1022 # while generating the index headers.
    1023 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
    1024 
    1025 IGNORE_PREFIX          =
    1026 
    1027 #---------------------------------------------------------------------------
    1028 # Configuration options related to the HTML output
    1029 #---------------------------------------------------------------------------
    1030 
    1031 # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
    1032 # The default value is: YES.
    1033 
    1034 GENERATE_HTML          = YES
    1035 
    1036 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
    1037 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
    1038 # it.
    1039 # The default directory is: html.
    1040 # This tag requires that the tag GENERATE_HTML is set to YES.
    1041 
    1042 HTML_OUTPUT            = html
    1043 
    1044 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
    1045 # generated HTML page (for example: .htm, .php, .asp).
    1046 # The default value is: .html.
    1047 # This tag requires that the tag GENERATE_HTML is set to YES.
    1048 
    1049 HTML_FILE_EXTENSION    = .html
    1050 
    1051 # The HTML_HEADER tag can be used to specify a user-defined HTML header file for
    1052 # each generated HTML page. If the tag is left blank doxygen will generate a
    1053 # standard header.
    1054 #
    1055 # To get valid HTML the header file that includes any scripts and style sheets
    1056 # that doxygen needs, which is dependent on the configuration options used (e.g.
    1057 # the setting GENERATE_TREEVIEW). It is highly recommended to start with a
    1058 # default header using
    1059 # doxygen -w html new_header.html new_footer.html new_stylesheet.css
    1060 # YourConfigFile
    1061 # and then modify the file new_header.html. See also section "Doxygen usage"
    1062 # for information on how to generate the default header that doxygen normally
    1063 # uses.
    1064 # Note: The header is subject to change so you typically have to regenerate the
    1065 # default header when upgrading to a newer version of doxygen. For a description
    1066 # of the possible markers and block names see the documentation.
    1067 # This tag requires that the tag GENERATE_HTML is set to YES.
    1068 
    1069 HTML_HEADER            =
    1070 
    1071 # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
    1072 # generated HTML page. If the tag is left blank doxygen will generate a standard
    1073 # footer. See HTML_HEADER for more information on how to generate a default
    1074 # footer and what special commands can be used inside the footer. See also
    1075 # section "Doxygen usage" for information on how to generate the default footer
    1076 # that doxygen normally uses.
    1077 # This tag requires that the tag GENERATE_HTML is set to YES.
    1078 
    1079 HTML_FOOTER            =
    1080 
    1081 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
    1082 # sheet that is used by each HTML page. It can be used to fine-tune the look of
    1083 # the HTML output. If left blank doxygen will generate a default style sheet.
    1084 # See also section "Doxygen usage" for information on how to generate the style
    1085 # sheet that doxygen normally uses.
    1086 # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
    1087 # it is more robust and this tag (HTML_STYLESHEET) will in the future become
    1088 # obsolete.
    1089 # This tag requires that the tag GENERATE_HTML is set to YES.
    1090 
    1091 HTML_STYLESHEET        =
    1092 
    1093 # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
    1094 # cascading style sheets that are included after the standard style sheets
    1095 # created by doxygen. Using this option one can overrule certain style aspects.
    1096 # This is preferred over using HTML_STYLESHEET since it does not replace the
    1097 # standard style sheet and is therefor more robust against future updates.
    1098 # Doxygen will copy the style sheet files to the output directory.
    1099 # Note: The order of the extra stylesheet files is of importance (e.g. the last
    1100 # stylesheet in the list overrules the setting of the previous ones in the
    1101 # list). For an example see the documentation.
    1102 # This tag requires that the tag GENERATE_HTML is set to YES.
    1103 
    1104 HTML_EXTRA_STYLESHEET  =
    1105 
    1106 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
    1107 # other source files which should be copied to the HTML output directory. Note
    1108 # that these files will be copied to the base HTML output directory. Use the
    1109 # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
    1110 # files. In the HTML_STYLESHEET file, use the file name only. Also note that the
    1111 # files will be copied as-is; there are no commands or markers available.
    1112 # This tag requires that the tag GENERATE_HTML is set to YES.
    1113 
    1114 HTML_EXTRA_FILES       =
    1115 
    1116 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
    1117 # will adjust the colors in the stylesheet and background images according to
    1118 # this color. Hue is specified as an angle on a colorwheel, see
    1119 # http://en.wikipedia.org/wiki/Hue for more information. For instance the value
    1120 # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
    1121 # purple, and 360 is red again.
    1122 # Minimum value: 0, maximum value: 359, default value: 220.
    1123 # This tag requires that the tag GENERATE_HTML is set to YES.
    1124 
    1125 HTML_COLORSTYLE_HUE    = 220
    1126 
    1127 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
    1128 # in the HTML output. For a value of 0 the output will use grayscales only. A
    1129 # value of 255 will produce the most vivid colors.
    1130 # Minimum value: 0, maximum value: 255, default value: 100.
    1131 # This tag requires that the tag GENERATE_HTML is set to YES.
    1132 
    1133 HTML_COLORSTYLE_SAT    = 100
    1134 
    1135 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
    1136 # luminance component of the colors in the HTML output. Values below 100
    1137 # gradually make the output lighter, whereas values above 100 make the output
    1138 # darker. The value divided by 100 is the actual gamma applied, so 80 represents
    1139 # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
    1140 # change the gamma.
    1141 # Minimum value: 40, maximum value: 240, default value: 80.
    1142 # This tag requires that the tag GENERATE_HTML is set to YES.
    1143 
    1144 HTML_COLORSTYLE_GAMMA  = 80
    1145 
    1146 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
    1147 # page will contain the date and time when the page was generated. Setting this
    1148 # to NO can help when comparing the output of multiple runs.
    1149 # The default value is: YES.
    1150 # This tag requires that the tag GENERATE_HTML is set to YES.
    1151 
    1152 HTML_TIMESTAMP         = NO
    1153 
    1154 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
    1155 # documentation will contain sections that can be hidden and shown after the
    1156 # page has loaded.
    1157 # The default value is: NO.
    1158 # This tag requires that the tag GENERATE_HTML is set to YES.
    1159 
    1160 HTML_DYNAMIC_SECTIONS  = NO
    1161 
    1162 # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
    1163 # shown in the various tree structured indices initially; the user can expand
    1164 # and collapse entries dynamically later on. Doxygen will expand the tree to
    1165 # such a level that at most the specified number of entries are visible (unless
    1166 # a fully collapsed tree already exceeds this amount). So setting the number of
    1167 # entries 1 will produce a full collapsed tree by default. 0 is a special value
    1168 # representing an infinite number of entries and will result in a full expanded
    1169 # tree by default.
    1170 # Minimum value: 0, maximum value: 9999, default value: 100.
    1171 # This tag requires that the tag GENERATE_HTML is set to YES.
    1172 
    1173 HTML_INDEX_NUM_ENTRIES = 100
    1174 
    1175 # If the GENERATE_DOCSET tag is set to YES, additional index files will be
    1176 # generated that can be used as input for Apple's Xcode 3 integrated development
    1177 # environment (see: http://developer.apple.com/tools/xcode/), introduced with
    1178 # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
    1179 # Makefile in the HTML output directory. Running make will produce the docset in
    1180 # that directory and running make install will install the docset in
    1181 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
    1182 # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
    1183 # for more information.
    1184 # The default value is: NO.
    1185 # This tag requires that the tag GENERATE_HTML is set to YES.
    1186 
    1187 GENERATE_DOCSET        = NO
    1188 
    1189 # This tag determines the name of the docset feed. A documentation feed provides
    1190 # an umbrella under which multiple documentation sets from a single provider
    1191 # (such as a company or product suite) can be grouped.
    1192 # The default value is: Doxygen generated docs.
    1193 # This tag requires that the tag GENERATE_DOCSET is set to YES.
    1194 
    1195 DOCSET_FEEDNAME        = "Doxygen generated docs"
    1196 
    1197 # This tag specifies a string that should uniquely identify the documentation
    1198 # set bundle. This should be a reverse domain-name style string, e.g.
    1199 # com.mycompany.MyDocSet. Doxygen will append .docset to the name.
    1200 # The default value is: org.doxygen.Project.
    1201 # This tag requires that the tag GENERATE_DOCSET is set to YES.
    1202 
    1203 DOCSET_BUNDLE_ID       = org.aubio.aubio
    1204 
    1205 # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
    1206 # the documentation publisher. This should be a reverse domain-name style
    1207 # string, e.g. com.mycompany.MyDocSet.documentation.
    1208 # The default value is: org.doxygen.Publisher.
    1209 # This tag requires that the tag GENERATE_DOCSET is set to YES.
    1210 
    1211 DOCSET_PUBLISHER_ID    = org.aubio.aubio.Maintainer
    1212 
    1213 # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
    1214 # The default value is: Publisher.
    1215 # This tag requires that the tag GENERATE_DOCSET is set to YES.
    1216 
    1217 DOCSET_PUBLISHER_NAME  = Publisher
    1218 
    1219 # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
    1220 # additional HTML index files: index.hhp, index.hhc, and index.hhk. The
    1221 # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
    1222 # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
    1223 # Windows.
    1224 #
    1225 # The HTML Help Workshop contains a compiler that can convert all HTML output
    1226 # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
    1227 # files are now used as the Windows 98 help format, and will replace the old
    1228 # Windows help format (.hlp) on all Windows platforms in the future. Compressed
    1229 # HTML files also contain an index, a table of contents, and you can search for
    1230 # words in the documentation. The HTML workshop also contains a viewer for
    1231 # compressed HTML files.
    1232 # The default value is: NO.
    1233 # This tag requires that the tag GENERATE_HTML is set to YES.
    1234 
    1235 GENERATE_HTMLHELP      = NO
    1236 
    1237 # The CHM_FILE tag can be used to specify the file name of the resulting .chm
    1238 # file. You can add a path in front of the file if the result should not be
    1239 # written to the html output directory.
    1240 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
    1241 
    1242 CHM_FILE               =
    1243 
    1244 # The HHC_LOCATION tag can be used to specify the location (absolute path
    1245 # including file name) of the HTML help compiler ( hhc.exe). If non-empty
    1246 # doxygen will try to run the HTML help compiler on the generated index.hhp.
    1247 # The file has to be specified with full path.
    1248 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
    1249 
    1250 HHC_LOCATION           =
    1251 
    1252 # The GENERATE_CHI flag controls if a separate .chi index file is generated (
    1253 # YES) or that it should be included in the master .chm file ( NO).
    1254 # The default value is: NO.
    1255 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
    1256 
    1257 GENERATE_CHI           = NO
    1258 
    1259 # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
    1260 # and project file content.
    1261 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
    1262 
    1263 CHM_INDEX_ENCODING     =
    1264 
    1265 # The BINARY_TOC flag controls whether a binary table of contents is generated (
    1266 # YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
    1267 # enables the Previous and Next buttons.
    1268 # The default value is: NO.
    1269 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
    1270 
    1271 BINARY_TOC             = NO
    1272 
    1273 # The TOC_EXPAND flag can be set to YES to add extra items for group members to
    1274 # the table of contents of the HTML help documentation and to the tree view.
    1275 # The default value is: NO.
    1276 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
    1277 
    1278 TOC_EXPAND             = NO
    1279 
    1280 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
    1281 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
    1282 # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
    1283 # (.qch) of the generated HTML documentation.
    1284 # The default value is: NO.
    1285 # This tag requires that the tag GENERATE_HTML is set to YES.
    1286 
    1287 GENERATE_QHP           = NO
    1288 
    1289 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
    1290 # the file name of the resulting .qch file. The path specified is relative to
    1291 # the HTML output folder.
    1292 # This tag requires that the tag GENERATE_QHP is set to YES.
    1293 
    1294 QCH_FILE               =
    1295 
    1296 # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
    1297 # Project output. For more information please see Qt Help Project / Namespace
    1298 # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
    1299 # The default value is: org.doxygen.Project.
    1300 # This tag requires that the tag GENERATE_QHP is set to YES.
    1301 
    1302 QHP_NAMESPACE          =
    1303 
    1304 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
    1305 # Help Project output. For more information please see Qt Help Project / Virtual
    1306 # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
    1307 # folders).
    1308 # The default value is: doc.
    1309 # This tag requires that the tag GENERATE_QHP is set to YES.
    1310 
    1311 QHP_VIRTUAL_FOLDER     = doc
    1312 
    1313 # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
    1314 # filter to add. For more information please see Qt Help Project / Custom
    1315 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
    1316 # filters).
    1317 # This tag requires that the tag GENERATE_QHP is set to YES.
    1318 
    1319 QHP_CUST_FILTER_NAME   =
    1320 
    1321 # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
    1322 # custom filter to add. For more information please see Qt Help Project / Custom
    1323 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
    1324 # filters).
    1325 # This tag requires that the tag GENERATE_QHP is set to YES.
    1326 
    1327 QHP_CUST_FILTER_ATTRS  =
    1328 
    1329 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
    1330 # project's filter section matches. Qt Help Project / Filter Attributes (see:
    1331 # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
    1332 # This tag requires that the tag GENERATE_QHP is set to YES.
    1333 
    1334 QHP_SECT_FILTER_ATTRS  =
    1335 
    1336 # The QHG_LOCATION tag can be used to specify the location of Qt's
    1337 # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
    1338 # generated .qhp file.
    1339 # This tag requires that the tag GENERATE_QHP is set to YES.
    1340 
    1341 QHG_LOCATION           =
    1342 
    1343 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
    1344 # generated, together with the HTML files, they form an Eclipse help plugin. To
    1345 # install this plugin and make it available under the help contents menu in
    1346 # Eclipse, the contents of the directory containing the HTML and XML files needs
    1347 # to be copied into the plugins directory of eclipse. The name of the directory
    1348 # within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
    1349 # After copying Eclipse needs to be restarted before the help appears.
    1350 # The default value is: NO.
    1351 # This tag requires that the tag GENERATE_HTML is set to YES.
    1352 
    1353 GENERATE_ECLIPSEHELP   = NO
    1354 
    1355 # A unique identifier for the Eclipse help plugin. When installing the plugin
    1356 # the directory name containing the HTML and XML files should also have this
    1357 # name. Each documentation set should have its own identifier.
    1358 # The default value is: org.doxygen.Project.
    1359 # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
    1360 
    1361 ECLIPSE_DOC_ID         = org.aubio.aubio
    1362 
    1363 # If you want full control over the layout of the generated HTML pages it might
    1364 # be necessary to disable the index and replace it with your own. The
    1365 # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
    1366 # of each HTML page. A value of NO enables the index and the value YES disables
    1367 # it. Since the tabs in the index contain the same information as the navigation
    1368 # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
    1369 # The default value is: NO.
    1370 # This tag requires that the tag GENERATE_HTML is set to YES.
    1371 
    1372 DISABLE_INDEX          = NO
    1373 
    1374 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
    1375 # structure should be generated to display hierarchical information. If the tag
    1376 # value is set to YES, a side panel will be generated containing a tree-like
    1377 # index structure (just like the one that is generated for HTML Help). For this
    1378 # to work a browser that supports JavaScript, DHTML, CSS and frames is required
    1379 # (i.e. any modern browser). Windows users are probably better off using the
    1380 # HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
    1381 # further fine-tune the look of the index. As an example, the default style
    1382 # sheet generated by doxygen has an example that shows how to put an image at
    1383 # the root of the tree instead of the PROJECT_NAME. Since the tree basically has
    1384 # the same information as the tab index, you could consider setting
    1385 # DISABLE_INDEX to YES when enabling this option.
    1386 # The default value is: NO.
    1387 # This tag requires that the tag GENERATE_HTML is set to YES.
    1388 
    1389 GENERATE_TREEVIEW      = NO
    1390 
    1391 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
    1392 # doxygen will group on one line in the generated HTML documentation.
    1393 #
    1394 # Note that a value of 0 will completely suppress the enum values from appearing
    1395 # in the overview section.
    1396 # Minimum value: 0, maximum value: 20, default value: 4.
    1397 # This tag requires that the tag GENERATE_HTML is set to YES.
    1398 
    1399 ENUM_VALUES_PER_LINE   = 4
    1400 
    1401 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
    1402 # to set the initial width (in pixels) of the frame in which the tree is shown.
    1403 # Minimum value: 0, maximum value: 1500, default value: 250.
    1404 # This tag requires that the tag GENERATE_HTML is set to YES.
    1405 
    1406 TREEVIEW_WIDTH         = 250
    1407 
    1408 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
    1409 # external symbols imported via tag files in a separate window.
    1410 # The default value is: NO.
    1411 # This tag requires that the tag GENERATE_HTML is set to YES.
    1412 
    1413 EXT_LINKS_IN_WINDOW    = NO
    1414 
    1415 # Use this tag to change the font size of LaTeX formulas included as images in
    1416 # the HTML documentation. When you change the font size after a successful
    1417 # doxygen run you need to manually remove any form_*.png images from the HTML
    1418 # output directory to force them to be regenerated.
    1419 # Minimum value: 8, maximum value: 50, default value: 10.
    1420 # This tag requires that the tag GENERATE_HTML is set to YES.
    1421 
    1422 FORMULA_FONTSIZE       = 10
    1423 
    1424 # Use the FORMULA_TRANPARENT tag to determine whether or not the images
    1425 # generated for formulas are transparent PNGs. Transparent PNGs are not
    1426 # supported properly for IE 6.0, but are supported on all modern browsers.
    1427 #
    1428 # Note that when changing this option you need to delete any form_*.png files in
    1429 # the HTML output directory before the changes have effect.
    1430 # The default value is: YES.
    1431 # This tag requires that the tag GENERATE_HTML is set to YES.
    1432 
    1433 FORMULA_TRANSPARENT    = YES
    1434 
    1435 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
    1436 # http://www.mathjax.org) which uses client side Javascript for the rendering
    1437 # instead of using prerendered bitmaps. Use this if you do not have LaTeX
    1438 # installed or if you want to formulas look prettier in the HTML output. When
    1439 # enabled you may also need to install MathJax separately and configure the path
    1440 # to it using the MATHJAX_RELPATH option.
    1441 # The default value is: NO.
    1442 # This tag requires that the tag GENERATE_HTML is set to YES.
    1443 
    1444 USE_MATHJAX            = YES
    1445 
    1446 # When MathJax is enabled you can set the default output format to be used for
    1447 # the MathJax output. See the MathJax site (see:
    1448 # http://docs.mathjax.org/en/latest/output.html) for more details.
    1449 # Possible values are: HTML-CSS (which is slower, but has the best
    1450 # compatibility), NativeMML (i.e. MathML) and SVG.
    1451 # The default value is: HTML-CSS.
    1452 # This tag requires that the tag USE_MATHJAX is set to YES.
    1453 
    1454 MATHJAX_FORMAT         = HTML-CSS
    1455 
    1456 # When MathJax is enabled you need to specify the location relative to the HTML
    1457 # output directory using the MATHJAX_RELPATH option. The destination directory
    1458 # should contain the MathJax.js script. For instance, if the mathjax directory
    1459 # is located at the same level as the HTML output directory, then
    1460 # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
    1461 # Content Delivery Network so you can quickly see the result without installing
    1462 # MathJax. However, it is strongly recommended to install a local copy of
    1463 # MathJax from http://www.mathjax.org before deployment.
    1464 # The default value is: http://cdn.mathjax.org/mathjax/latest.
    1465 # This tag requires that the tag USE_MATHJAX is set to YES.
    1466 
    1467 MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
    1468 
    1469 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
    1470 # extension names that should be enabled during MathJax rendering. For example
    1471 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
    1472 # This tag requires that the tag USE_MATHJAX is set to YES.
    1473 
    1474 MATHJAX_EXTENSIONS     =
    1475 
    1476 # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
    1477 # of code that will be used on startup of the MathJax code. See the MathJax site
    1478 # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
    1479 # example see the documentation.
    1480 # This tag requires that the tag USE_MATHJAX is set to YES.
    1481 
    1482 MATHJAX_CODEFILE       =
    1483 
    1484 # When the SEARCHENGINE tag is enabled doxygen will generate a search box for
    1485 # the HTML output. The underlying search engine uses javascript and DHTML and
    1486 # should work on any modern browser. Note that when using HTML help
    1487 # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
    1488 # there is already a search function so this one should typically be disabled.
    1489 # For large projects the javascript based search engine can be slow, then
    1490 # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
    1491 # search using the keyboard; to jump to the search box use <access key> + S
    1492 # (what the <access key> is depends on the OS and browser, but it is typically
    1493 # <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
    1494 # key> to jump into the search results window, the results can be navigated
    1495 # using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
    1496 # the search. The filter options can be selected when the cursor is inside the
    1497 # search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
    1498 # to select a filter and <Enter> or <escape> to activate or cancel the filter
    1499 # option.
    1500 # The default value is: YES.
    1501 # This tag requires that the tag GENERATE_HTML is set to YES.
    1502 
    1503 SEARCHENGINE           = YES
    1504 
    1505 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
    1506 # implemented using a web server instead of a web client using Javascript. There
    1507 # are two flavors of web server based searching depending on the EXTERNAL_SEARCH
    1508 # setting. When disabled, doxygen will generate a PHP script for searching and
    1509 # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
    1510 # and searching needs to be provided by external tools. See the section
    1511 # "External Indexing and Searching" for details.
    1512 # The default value is: NO.
    1513 # This tag requires that the tag SEARCHENGINE is set to YES.
    1514 
    1515 SERVER_BASED_SEARCH    = NO
    1516 
    1517 # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
    1518 # script for searching. Instead the search results are written to an XML file
    1519 # which needs to be processed by an external indexer. Doxygen will invoke an
    1520 # external search engine pointed to by the SEARCHENGINE_URL option to obtain the
    1521 # search results.
    1522 #
    1523 # Doxygen ships with an example indexer ( doxyindexer) and search engine
    1524 # (doxysearch.cgi) which are based on the open source search engine library
    1525 # Xapian (see: http://xapian.org/).
    1526 #
    1527 # See the section "External Indexing and Searching" for details.
    1528 # The default value is: NO.
    1529 # This tag requires that the tag SEARCHENGINE is set to YES.
    1530 
    1531 EXTERNAL_SEARCH        = NO
    1532 
    1533 # The SEARCHENGINE_URL should point to a search engine hosted by a web server
    1534 # which will return the search results when EXTERNAL_SEARCH is enabled.
    1535 #
    1536 # Doxygen ships with an example indexer ( doxyindexer) and search engine
    1537 # (doxysearch.cgi) which are based on the open source search engine library
    1538 # Xapian (see: http://xapian.org/). See the section "External Indexing and
    1539 # Searching" for details.
    1540 # This tag requires that the tag SEARCHENGINE is set to YES.
    1541 
    1542 SEARCHENGINE_URL       =
    1543 
    1544 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
    1545 # search data is written to a file for indexing by an external tool. With the
    1546 # SEARCHDATA_FILE tag the name of this file can be specified.
    1547 # The default file is: searchdata.xml.
    1548 # This tag requires that the tag SEARCHENGINE is set to YES.
    1549 
    1550 SEARCHDATA_FILE        = searchdata.xml
    1551 
    1552 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
    1553 # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
    1554 # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
    1555 # projects and redirect the results back to the right project.
    1556 # This tag requires that the tag SEARCHENGINE is set to YES.
    1557 
    1558 EXTERNAL_SEARCH_ID     =
    1559 
    1560 # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
    1561 # projects other than the one defined by this configuration file, but that are
    1562 # all added to the same external search index. Each project needs to have a
    1563 # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
    1564 # to a relative location where the documentation can be found. The format is:
    1565 # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
    1566 # This tag requires that the tag SEARCHENGINE is set to YES.
    1567 
    1568 EXTRA_SEARCH_MAPPINGS  =
    1569 
    1570 #---------------------------------------------------------------------------
    1571 # Configuration options related to the LaTeX output
    1572 #---------------------------------------------------------------------------
    1573 
    1574 # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
    1575 # The default value is: YES.
    1576 
    1577 GENERATE_LATEX         = NO
    1578 
    1579 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
    1580 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
    1581 # it.
    1582 # The default directory is: latex.
    1583 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1584 
    1585 LATEX_OUTPUT           = latex
    1586 
    1587 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
    1588 # invoked.
    1589 #
    1590 # Note that when enabling USE_PDFLATEX this option is only used for generating
    1591 # bitmaps for formulas in the HTML output, but not in the Makefile that is
    1592 # written to the output directory.
    1593 # The default file is: latex.
    1594 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1595 
    1596 LATEX_CMD_NAME         = latex
    1597 
    1598 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
    1599 # index for LaTeX.
    1600 # The default file is: makeindex.
    1601 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1602 
    1603 MAKEINDEX_CMD_NAME     = makeindex
    1604 
    1605 # If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
    1606 # documents. This may be useful for small projects and may help to save some
    1607 # trees in general.
    1608 # The default value is: NO.
    1609 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1610 
    1611 COMPACT_LATEX          = NO
    1612 
    1613 # The PAPER_TYPE tag can be used to set the paper type that is used by the
    1614 # printer.
    1615 # Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
    1616 # 14 inches) and executive (7.25 x 10.5 inches).
    1617 # The default value is: a4.
    1618 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1619 
    1620 PAPER_TYPE             = a4
    1621 
    1622 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
    1623 # that should be included in the LaTeX output. To get the times font for
    1624 # instance you can specify
    1625 # EXTRA_PACKAGES=times
    1626 # If left blank no extra packages will be included.
    1627 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1628 
    1629 EXTRA_PACKAGES         =
    1630 
    1631 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
    1632 # generated LaTeX document. The header should contain everything until the first
    1633 # chapter. If it is left blank doxygen will generate a standard header. See
    1634 # section "Doxygen usage" for information on how to let doxygen write the
    1635 # default header to a separate file.
    1636 #
    1637 # Note: Only use a user-defined header if you know what you are doing! The
    1638 # following commands have a special meaning inside the header: $title,
    1639 # $datetime, $date, $doxygenversion, $projectname, $projectnumber,
    1640 # $projectbrief, $projectlogo. Doxygen will replace $title with the empy string,
    1641 # for the replacement values of the other commands the user is refered to
    1642 # HTML_HEADER.
    1643 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1644 
    1645 LATEX_HEADER           =
    1646 
    1647 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
    1648 # generated LaTeX document. The footer should contain everything after the last
    1649 # chapter. If it is left blank doxygen will generate a standard footer. See
    1650 # LATEX_HEADER for more information on how to generate a default footer and what
    1651 # special commands can be used inside the footer.
    1652 #
    1653 # Note: Only use a user-defined footer if you know what you are doing!
    1654 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1655 
    1656 LATEX_FOOTER           =
    1657 
    1658 # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
    1659 # other source files which should be copied to the LATEX_OUTPUT output
    1660 # directory. Note that the files will be copied as-is; there are no commands or
    1661 # markers available.
    1662 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1663 
    1664 LATEX_EXTRA_FILES      =
    1665 
    1666 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
    1667 # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
    1668 # contain links (just like the HTML output) instead of page references. This
    1669 # makes the output suitable for online browsing using a PDF viewer.
    1670 # The default value is: YES.
    1671 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1672 
    1673 PDF_HYPERLINKS         = YES
    1674 
    1675 # If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
    1676 # the PDF file directly from the LaTeX files. Set this option to YES to get a
    1677 # higher quality PDF documentation.
    1678 # The default value is: YES.
    1679 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1680 
    1681 USE_PDFLATEX           = YES
    1682 
    1683 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
    1684 # command to the generated LaTeX files. This will instruct LaTeX to keep running
    1685 # if errors occur, instead of asking the user for help. This option is also used
    1686 # when generating formulas in HTML.
    1687 # The default value is: NO.
    1688 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1689 
    1690 LATEX_BATCHMODE        = NO
    1691 
    1692 # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
    1693 # index chapters (such as File Index, Compound Index, etc.) in the output.
    1694 # The default value is: NO.
    1695 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1696 
    1697 LATEX_HIDE_INDICES     = NO
    1698 
    1699 # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
    1700 # code with syntax highlighting in the LaTeX output.
    1701 #
    1702 # Note that which sources are shown also depends on other settings such as
    1703 # SOURCE_BROWSER.
    1704 # The default value is: NO.
    1705 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1706 
    1707 LATEX_SOURCE_CODE      = NO
    1708 
    1709 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the
    1710 # bibliography, e.g. plainnat, or ieeetr. See
    1711 # http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
    1712 # The default value is: plain.
    1713 # This tag requires that the tag GENERATE_LATEX is set to YES.
    1714 
    1715 LATEX_BIB_STYLE        = plain
    1716 
    1717 #---------------------------------------------------------------------------
    1718 # Configuration options related to the RTF output
    1719 #---------------------------------------------------------------------------
    1720 
    1721 # If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
    1722 # RTF output is optimized for Word 97 and may not look too pretty with other RTF
    1723 # readers/editors.
    1724 # The default value is: NO.
    1725 
    1726 GENERATE_RTF           = NO
    1727 
    1728 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
    1729 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
    1730 # it.
    1731 # The default directory is: rtf.
    1732 # This tag requires that the tag GENERATE_RTF is set to YES.
    1733 
    1734 RTF_OUTPUT             = rtf
    1735 
    1736 # If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
    1737 # documents. This may be useful for small projects and may help to save some
    1738 # trees in general.
    1739 # The default value is: NO.
    1740 # This tag requires that the tag GENERATE_RTF is set to YES.
    1741 
    1742 COMPACT_RTF            = NO
    1743 
    1744 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
    1745 # contain hyperlink fields. The RTF file will contain links (just like the HTML
    1746 # output) instead of page references. This makes the output suitable for online
    1747 # browsing using Word or some other Word compatible readers that support those
    1748 # fields.
    1749 #
    1750 # Note: WordPad (write) and others do not support links.
    1751 # The default value is: NO.
    1752 # This tag requires that the tag GENERATE_RTF is set to YES.
    1753 
    1754 RTF_HYPERLINKS         = NO
    1755 
    1756 # Load stylesheet definitions from file. Syntax is similar to doxygen's config
    1757 # file, i.e. a series of assignments. You only have to provide replacements,
    1758 # missing definitions are set to their default value.
    1759 #
    1760 # See also section "Doxygen usage" for information on how to generate the
    1761 # default style sheet that doxygen normally uses.
    1762 # This tag requires that the tag GENERATE_RTF is set to YES.
    1763 
    1764 RTF_STYLESHEET_FILE    =
    1765 
    1766 # Set optional variables used in the generation of an RTF document. Syntax is
    1767 # similar to doxygen's config file. A template extensions file can be generated
    1768 # using doxygen -e rtf extensionFile.
    1769 # This tag requires that the tag GENERATE_RTF is set to YES.
    1770 
    1771 RTF_EXTENSIONS_FILE    =
    1772 
    1773 #---------------------------------------------------------------------------
    1774 # Configuration options related to the man page output
    1775 #---------------------------------------------------------------------------
    1776 
    1777 # If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
    1778 # classes and files.
    1779 # The default value is: NO.
    1780 
    1781 GENERATE_MAN           = NO
    1782 
    1783 # The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
    1784 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
    1785 # it. A directory man3 will be created inside the directory specified by
    1786 # MAN_OUTPUT.
    1787 # The default directory is: man.
    1788 # This tag requires that the tag GENERATE_MAN is set to YES.
    1789 
    1790 MAN_OUTPUT             = man
    1791 
    1792 # The MAN_EXTENSION tag determines the extension that is added to the generated
    1793 # man pages. In case the manual section does not start with a number, the number
    1794 # 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
    1795 # optional.
    1796 # The default value is: .3.
    1797 # This tag requires that the tag GENERATE_MAN is set to YES.
    1798 
    1799 MAN_EXTENSION          = .3
    1800 
    1801 # The MAN_SUBDIR tag determines the name of the directory created within
    1802 # MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
    1803 # MAN_EXTENSION with the initial . removed.
    1804 # This tag requires that the tag GENERATE_MAN is set to YES.
    1805 
    1806 MAN_SUBDIR             =
    1807 
    1808 # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
    1809 # will generate one additional man file for each entity documented in the real
    1810 # man page(s). These additional files only source the real man page, but without
    1811 # them the man command would be unable to find the correct page.
    1812 # The default value is: NO.
    1813 # This tag requires that the tag GENERATE_MAN is set to YES.
    1814 
    1815 MAN_LINKS              = NO
    1816 
    1817 #---------------------------------------------------------------------------
    1818 # Configuration options related to the XML output
    1819 #---------------------------------------------------------------------------
    1820 
    1821 # If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
    1822 # captures the structure of the code including all documentation.
    1823 # The default value is: NO.
    1824 
    1825 GENERATE_XML           = NO
    1826 
    1827 # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
    1828 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
    1829 # it.
    1830 # The default directory is: xml.
    1831 # This tag requires that the tag GENERATE_XML is set to YES.
    1832 
    1833 XML_OUTPUT             = xml
    1834 
    1835 # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
    1836 # listings (including syntax highlighting and cross-referencing information) to
    1837 # the XML output. Note that enabling this will significantly increase the size
    1838 # of the XML output.
    1839 # The default value is: YES.
    1840 # This tag requires that the tag GENERATE_XML is set to YES.
    1841 
    1842 XML_PROGRAMLISTING     = YES
    1843 
    1844 #---------------------------------------------------------------------------
    1845 # Configuration options related to the DOCBOOK output
    1846 #---------------------------------------------------------------------------
    1847 
    1848 # If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
    1849 # that can be used to generate PDF.
    1850 # The default value is: NO.
    1851 
    1852 GENERATE_DOCBOOK       = NO
    1853 
    1854 # The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
    1855 # If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
    1856 # front of it.
    1857 # The default directory is: docbook.
    1858 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
    1859 
    1860 DOCBOOK_OUTPUT         = docbook
    1861 
    1862 # If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the
    1863 # program listings (including syntax highlighting and cross-referencing
    1864 # information) to the DOCBOOK output. Note that enabling this will significantly
    1865 # increase the size of the DOCBOOK output.
    1866 # The default value is: NO.
    1867 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
    1868 
    1869 DOCBOOK_PROGRAMLISTING = NO
    1870 
    1871 #---------------------------------------------------------------------------
    1872 # Configuration options for the AutoGen Definitions output
    1873 #---------------------------------------------------------------------------
    1874 
    1875 # If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
    1876 # Definitions (see http://autogen.sf.net) file that captures the structure of
    1877 # the code including all documentation. Note that this feature is still
    1878 # experimental and incomplete at the moment.
    1879 # The default value is: NO.
    1880 
    1881 GENERATE_AUTOGEN_DEF   = NO
    1882 
    1883 #---------------------------------------------------------------------------
    1884 # Configuration options related to the Perl module output
    1885 #---------------------------------------------------------------------------
    1886 
    1887 # If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
    1888 # file that captures the structure of the code including all documentation.
    1889 #
    1890 # Note that this feature is still experimental and incomplete at the moment.
    1891 # The default value is: NO.
    1892 
    1893 GENERATE_PERLMOD       = NO
    1894 
    1895 # If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
    1896 # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
    1897 # output from the Perl module output.
    1898 # The default value is: NO.
    1899 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
    1900 
    1901 PERLMOD_LATEX          = NO
    1902 
    1903 # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
    1904 # formatted so it can be parsed by a human reader. This is useful if you want to
    1905 # understand what is going on. On the other hand, if this tag is set to NO the
    1906 # size of the Perl module output will be much smaller and Perl will parse it
    1907 # just the same.
    1908 # The default value is: YES.
    1909 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
    1910 
    1911 PERLMOD_PRETTY         = YES
    1912 
    1913 # The names of the make variables in the generated doxyrules.make file are
    1914 # prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
    1915 # so different doxyrules.make files included by the same Makefile don't
    1916 # overwrite each other's variables.
    1917 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
    1918 
    1919 PERLMOD_MAKEVAR_PREFIX =
    1920 
    1921 #---------------------------------------------------------------------------
    1922 # Configuration options related to the preprocessor
    1923 #---------------------------------------------------------------------------
    1924 
    1925 # If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
    1926 # C-preprocessor directives found in the sources and include files.
    1927 # The default value is: YES.
    1928 
    1929 ENABLE_PREPROCESSING   = YES
    1930 
    1931 # If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
    1932 # in the source code. If set to NO only conditional compilation will be
    1933 # performed. Macro expansion can be done in a controlled way by setting
    1934 # EXPAND_ONLY_PREDEF to YES.
    1935 # The default value is: NO.
    1936 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
    1937 
    1938 MACRO_EXPANSION        = NO
    1939 
    1940 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
    1941 # the macro expansion is limited to the macros specified with the PREDEFINED and
    1942 # EXPAND_AS_DEFINED tags.
    1943 # The default value is: NO.
    1944 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
    1945 
    1946 EXPAND_ONLY_PREDEF     = NO
    1947 
    1948 # If the SEARCH_INCLUDES tag is set to YES the includes files in the
    1949 # INCLUDE_PATH will be searched if a #include is found.
    1950 # The default value is: YES.
    1951 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
    1952 
    1953 SEARCH_INCLUDES        = YES
    1954 
    1955 # The INCLUDE_PATH tag can be used to specify one or more directories that
    1956 # contain include files that are not input files but should be processed by the
    1957 # preprocessor.
    1958 # This tag requires that the tag SEARCH_INCLUDES is set to YES.
    1959 
    1960 INCLUDE_PATH           =
    1961 
    1962 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
    1963 # patterns (like *.h and *.hpp) to filter out the header-files in the
    1964 # directories. If left blank, the patterns specified with FILE_PATTERNS will be
    1965 # used.
    1966 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
    1967 
    196810INCLUDE_FILE_PATTERNS  =
    1969 
    1970 # The PREDEFINED tag can be used to specify one or more macro names that are
    1971 # defined before the preprocessor is started (similar to the -D option of e.g.
    1972 # gcc). The argument of the tag is a list of macros of the form: name or
    1973 # name=definition (no spaces). If the definition and the "=" are omitted, "=1"
    1974 # is assumed. To prevent a macro definition from being undefined via #undef or
    1975 # recursively expanded use the := operator instead of the = operator.
    1976 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
    1977 
    1978 PREDEFINED             =
    1979 
    1980 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
    1981 # tag can be used to specify a list of macro names that should be expanded. The
    1982 # macro definition that is found in the sources will be used. Use the PREDEFINED
    1983 # tag if you want to use a different macro definition that overrules the
    1984 # definition found in the source code.
    1985 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
    1986 
    1987 EXPAND_AS_DEFINED      =
    1988 
    1989 # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
    1990 # remove all references to function-like macros that are alone on a line, have
    1991 # an all uppercase name, and do not end with a semicolon. Such function macros
    1992 # are typically used for boiler-plate code, and will confuse the parser if not
    1993 # removed.
    1994 # The default value is: YES.
    1995 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
    1996 
    1997 SKIP_FUNCTION_MACROS   = YES
    1998 
    1999 #---------------------------------------------------------------------------
    2000 # Configuration options related to external references
    2001 #---------------------------------------------------------------------------
    2002 
    2003 # The TAGFILES tag can be used to specify one or more tag files. For each tag
    2004 # file the location of the external documentation should be added. The format of
    2005 # a tag file without this location is as follows:
    2006 # TAGFILES = file1 file2 ...
    2007 # Adding location for the tag files is done as follows:
    2008 # TAGFILES = file1=loc1 "file2 = loc2" ...
    2009 # where loc1 and loc2 can be relative or absolute paths or URLs. See the
    2010 # section "Linking to external documentation" for more information about the use
    2011 # of tag files.
    2012 # Note: Each tag file must have a unique name (where the name does NOT include
    2013 # the path). If a tag file is not located in the directory in which doxygen is
    2014 # run, you must also specify the path to the tagfile here.
    2015 
    2016 TAGFILES               =
    2017 
    2018 # When a file name is specified after GENERATE_TAGFILE, doxygen will create a
    2019 # tag file that is based on the input files it reads. See section "Linking to
    2020 # external documentation" for more information about the usage of tag files.
    2021 
    2022 GENERATE_TAGFILE       =
    2023 
    2024 # If the ALLEXTERNALS tag is set to YES all external class will be listed in the
    2025 # class index. If set to NO only the inherited external classes will be listed.
    2026 # The default value is: NO.
    2027 
    2028 ALLEXTERNALS           = NO
    2029 
    2030 # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
    2031 # the modules index. If set to NO, only the current project's groups will be
    2032 # listed.
    2033 # The default value is: YES.
    2034 
    2035 EXTERNAL_GROUPS        = YES
    2036 
    2037 # If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
    2038 # the related pages index. If set to NO, only the current project's pages will
    2039 # be listed.
    2040 # The default value is: YES.
    2041 
    2042 EXTERNAL_PAGES         = YES
    2043 
    2044 # The PERL_PATH should be the absolute path and name of the perl script
    2045 # interpreter (i.e. the result of 'which perl').
    2046 # The default file (with absolute path) is: /usr/bin/perl.
    2047 
    2048 PERL_PATH              = /usr/bin/perl
    2049 
    2050 #---------------------------------------------------------------------------
    2051 # Configuration options related to the dot tool
    2052 #---------------------------------------------------------------------------
    2053 
    2054 # If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
    2055 # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
    2056 # NO turns the diagrams off. Note that this option also works with HAVE_DOT
    2057 # disabled, but it is recommended to install and use dot, since it yields more
    2058 # powerful graphs.
    2059 # The default value is: YES.
    2060 
    2061 CLASS_DIAGRAMS         = YES
    2062 
    2063 # You can define message sequence charts within doxygen comments using the \msc
    2064 # command. Doxygen will then run the mscgen tool (see:
    2065 # http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
    2066 # documentation. The MSCGEN_PATH tag allows you to specify the directory where
    2067 # the mscgen tool resides. If left empty the tool is assumed to be found in the
    2068 # default search path.
    2069 
    2070 MSCGEN_PATH            =
    2071 
    2072 # You can include diagrams made with dia in doxygen documentation. Doxygen will
    2073 # then run dia to produce the diagram and insert it in the documentation. The
    2074 # DIA_PATH tag allows you to specify the directory where the dia binary resides.
    2075 # If left empty dia is assumed to be found in the default search path.
    2076 
    2077 DIA_PATH               =
    2078 
    2079 # If set to YES, the inheritance and collaboration graphs will hide inheritance
    2080 # and usage relations if the target is undocumented or is not a class.
    2081 # The default value is: YES.
    2082 
    208311HIDE_UNDOC_RELATIONS   = NO
    2084 
    2085 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
    2086 # available from the path. This tool is part of Graphviz (see:
    2087 # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
    2088 # Bell Labs. The other options in this section have no effect if this option is
    2089 # set to NO
    2090 # The default value is: YES.
    2091 
    2092 HAVE_DOT               = NO
    2093 
    2094 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
    2095 # to run in parallel. When set to 0 doxygen will base this on the number of
    2096 # processors available in the system. You can set it explicitly to a value
    2097 # larger than 0 to get control over the balance between CPU load and processing
    2098 # speed.
    2099 # Minimum value: 0, maximum value: 32, default value: 0.
    2100 # This tag requires that the tag HAVE_DOT is set to YES.
    2101 
    2102 DOT_NUM_THREADS        = 0
    2103 
    2104 # When you want a differently looking font in the dot files that doxygen
    2105 # generates you can specify the font name using DOT_FONTNAME. You need to make
    2106 # sure dot is able to find the font, which can be done by putting it in a
    2107 # standard location or by setting the DOTFONTPATH environment variable or by
    2108 # setting DOT_FONTPATH to the directory containing the font.
    2109 # The default value is: Helvetica.
    2110 # This tag requires that the tag HAVE_DOT is set to YES.
    2111 
    2112 DOT_FONTNAME           =
    2113 
    2114 # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
    2115 # dot graphs.
    2116 # Minimum value: 4, maximum value: 24, default value: 10.
    2117 # This tag requires that the tag HAVE_DOT is set to YES.
    2118 
    2119 DOT_FONTSIZE           = 10
    2120 
    2121 # By default doxygen will tell dot to use the default font as specified with
    2122 # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
    2123 # the path where dot can find it using this tag.
    2124 # This tag requires that the tag HAVE_DOT is set to YES.
    2125 
    2126 DOT_FONTPATH           =
    2127 
    2128 # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
    2129 # each documented class showing the direct and indirect inheritance relations.
    2130 # Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
    2131 # The default value is: YES.
    2132 # This tag requires that the tag HAVE_DOT is set to YES.
    2133 
    2134 CLASS_GRAPH            = YES
    2135 
    2136 # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
    2137 # graph for each documented class showing the direct and indirect implementation
    2138 # dependencies (inheritance, containment, and class references variables) of the
    2139 # class with other documented classes.
    2140 # The default value is: YES.
    2141 # This tag requires that the tag HAVE_DOT is set to YES.
    2142 
    2143 COLLABORATION_GRAPH    = YES
    2144 
    2145 # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
    2146 # groups, showing the direct groups dependencies.
    2147 # The default value is: YES.
    2148 # This tag requires that the tag HAVE_DOT is set to YES.
    2149 
    2150 GROUP_GRAPHS           = YES
    2151 
    2152 # If the UML_LOOK tag is set to YES doxygen will generate inheritance and
    2153 # collaboration diagrams in a style similar to the OMG's Unified Modeling
    2154 # Language.
    2155 # The default value is: NO.
    2156 # This tag requires that the tag HAVE_DOT is set to YES.
    2157 
    2158 UML_LOOK               = NO
    2159 
    2160 # If the UML_LOOK tag is enabled, the fields and methods are shown inside the
    2161 # class node. If there are many fields or methods and many nodes the graph may
    2162 # become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
    2163 # number of items for each type to make the size more manageable. Set this to 0
    2164 # for no limit. Note that the threshold may be exceeded by 50% before the limit
    2165 # is enforced. So when you set the threshold to 10, up to 15 fields may appear,
    2166 # but if the number exceeds 15, the total amount of fields shown is limited to
    2167 # 10.
    2168 # Minimum value: 0, maximum value: 100, default value: 10.
    2169 # This tag requires that the tag HAVE_DOT is set to YES.
    2170 
    2171 UML_LIMIT_NUM_FIELDS   = 10
    2172 
    2173 # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
    2174 # collaboration graphs will show the relations between templates and their
    2175 # instances.
    2176 # The default value is: NO.
    2177 # This tag requires that the tag HAVE_DOT is set to YES.
    2178 
    2179 TEMPLATE_RELATIONS     = NO
    2180 
    2181 # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
    2182 # YES then doxygen will generate a graph for each documented file showing the
    2183 # direct and indirect include dependencies of the file with other documented
    2184 # files.
    2185 # The default value is: YES.
    2186 # This tag requires that the tag HAVE_DOT is set to YES.
    2187 
    2188 INCLUDE_GRAPH          = YES
    2189 
    2190 # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
    2191 # set to YES then doxygen will generate a graph for each documented file showing
    2192 # the direct and indirect include dependencies of the file with other documented
    2193 # files.
    2194 # The default value is: YES.
    2195 # This tag requires that the tag HAVE_DOT is set to YES.
    2196 
    2197 INCLUDED_BY_GRAPH      = YES
    2198 
    2199 # If the CALL_GRAPH tag is set to YES then doxygen will generate a call
    2200 # dependency graph for every global function or class method.
    2201 #
    2202 # Note that enabling this option will significantly increase the time of a run.
    2203 # So in most cases it will be better to enable call graphs for selected
    2204 # functions only using the \callgraph command.
    2205 # The default value is: NO.
    2206 # This tag requires that the tag HAVE_DOT is set to YES.
    2207 
    2208 CALL_GRAPH             = NO
    2209 
    2210 # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
    2211 # dependency graph for every global function or class method.
    2212 #
    2213 # Note that enabling this option will significantly increase the time of a run.
    2214 # So in most cases it will be better to enable caller graphs for selected
    2215 # functions only using the \callergraph command.
    2216 # The default value is: NO.
    2217 # This tag requires that the tag HAVE_DOT is set to YES.
    2218 
    2219 CALLER_GRAPH           = NO
    2220 
    2221 # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
    2222 # hierarchy of all classes instead of a textual one.
    2223 # The default value is: YES.
    2224 # This tag requires that the tag HAVE_DOT is set to YES.
    2225 
    2226 GRAPHICAL_HIERARCHY    = YES
    2227 
    2228 # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
    2229 # dependencies a directory has on other directories in a graphical way. The
    2230 # dependency relations are determined by the #include relations between the
    2231 # files in the directories.
    2232 # The default value is: YES.
    2233 # This tag requires that the tag HAVE_DOT is set to YES.
    2234 
    2235 DIRECTORY_GRAPH        = YES
    2236 
    2237 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
    2238 # generated by dot.
    2239 # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
    2240 # to make the SVG files visible in IE 9+ (other browsers do not have this
    2241 # requirement).
    2242 # Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
    2243 # png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
    2244 # gif:cairo:gd, gif:gd, gif:gd:gd and svg.
    2245 # The default value is: png.
    2246 # This tag requires that the tag HAVE_DOT is set to YES.
    2247 
    2248 DOT_IMAGE_FORMAT       = png
    2249 
    2250 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
    2251 # enable generation of interactive SVG images that allow zooming and panning.
    2252 #
    2253 # Note that this requires a modern browser other than Internet Explorer. Tested
    2254 # and working are Firefox, Chrome, Safari, and Opera.
    2255 # Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
    2256 # the SVG files visible. Older versions of IE do not have SVG support.
    2257 # The default value is: NO.
    2258 # This tag requires that the tag HAVE_DOT is set to YES.
    2259 
    2260 INTERACTIVE_SVG        = NO
    2261 
    2262 # The DOT_PATH tag can be used to specify the path where the dot tool can be
    2263 # found. If left blank, it is assumed the dot tool can be found in the path.
    2264 # This tag requires that the tag HAVE_DOT is set to YES.
    2265 
    2266 DOT_PATH               =
    2267 
    2268 # The DOTFILE_DIRS tag can be used to specify one or more directories that
    2269 # contain dot files that are included in the documentation (see the \dotfile
    2270 # command).
    2271 # This tag requires that the tag HAVE_DOT is set to YES.
    2272 
    2273 DOTFILE_DIRS           =
    2274 
    2275 # The MSCFILE_DIRS tag can be used to specify one or more directories that
    2276 # contain msc files that are included in the documentation (see the \mscfile
    2277 # command).
    2278 
    2279 MSCFILE_DIRS           =
    2280 
    2281 # The DIAFILE_DIRS tag can be used to specify one or more directories that
    2282 # contain dia files that are included in the documentation (see the \diafile
    2283 # command).
    2284 
    2285 DIAFILE_DIRS           =
    2286 
    2287 # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
    2288 # path where java can find the plantuml.jar file. If left blank, it is assumed
    2289 # PlantUML is not used or called during a preprocessing step. Doxygen will
    2290 # generate a warning when it encounters a \startuml command in this case and
    2291 # will not generate output for the diagram.
    2292 # This tag requires that the tag HAVE_DOT is set to YES.
    2293 
    2294 PLANTUML_JAR_PATH      =
    2295 
    2296 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
    2297 # that will be shown in the graph. If the number of nodes in a graph becomes
    2298 # larger than this value, doxygen will truncate the graph, which is visualized
    2299 # by representing a node as a red box. Note that doxygen if the number of direct
    2300 # children of the root node in a graph is already larger than
    2301 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
    2302 # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
    2303 # Minimum value: 0, maximum value: 10000, default value: 50.
    2304 # This tag requires that the tag HAVE_DOT is set to YES.
    2305 
    2306 DOT_GRAPH_MAX_NODES    = 50
    2307 
    2308 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
    2309 # generated by dot. A depth value of 3 means that only nodes reachable from the
    2310 # root by following a path via at most 3 edges will be shown. Nodes that lay
    2311 # further from the root node will be omitted. Note that setting this option to 1
    2312 # or 2 may greatly reduce the computation time needed for large code bases. Also
    2313 # note that the size of a graph can be further restricted by
    2314 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
    2315 # Minimum value: 0, maximum value: 1000, default value: 0.
    2316 # This tag requires that the tag HAVE_DOT is set to YES.
    2317 
    2318 MAX_DOT_GRAPH_DEPTH    = 0
    2319 
    2320 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
    2321 # background. This is disabled by default, because dot on Windows does not seem
    2322 # to support this out of the box.
    2323 #
    2324 # Warning: Depending on the platform used, enabling this option may lead to
    2325 # badly anti-aliased labels on the edges of a graph (i.e. they become hard to
    2326 # read).
    2327 # The default value is: NO.
    2328 # This tag requires that the tag HAVE_DOT is set to YES.
    2329 
    2330 DOT_TRANSPARENT        = NO
    2331 
    2332 # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
    2333 # files in one run (i.e. multiple -o and -T options on the command line). This
    2334 # makes dot run faster, but since only newer versions of dot (>1.8.10) support
    2335 # this, this feature is disabled by default.
    2336 # The default value is: NO.
    2337 # This tag requires that the tag HAVE_DOT is set to YES.
    2338 
    2339 DOT_MULTI_TARGETS      = NO
    2340 
    2341 # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
    2342 # explaining the meaning of the various boxes and arrows in the dot generated
    2343 # graphs.
    2344 # The default value is: YES.
    2345 # This tag requires that the tag HAVE_DOT is set to YES.
    2346 
    2347 GENERATE_LEGEND        = YES
    2348 
    2349 # If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
    2350 # files that are used to generate the various graphs.
    2351 # The default value is: YES.
    2352 # This tag requires that the tag HAVE_DOT is set to YES.
    2353 
    2354 DOT_CLEANUP            = YES
  • doc/index.rst

    r5b46bc3 r633400d  
    1010performing pitch detection, tapping the beat and producing midi streams from
    1111live audio.
     12
     13Quick links
     14===========
     15
     16* :ref:`python`
     17* :ref:`manpages`
     18* :ref:`develop`
     19* :ref:`building`
     20
     21.. only:: devel
     22
     23    .. include:: statuslinks.rst
     24
     25Project pages
     26=============
     27
     28* `Project homepage`_: https://aubio.org
     29* `aubio on github`_: https://github.com/aubio/aubio
     30* `aubio on pypi`_: https://pypi.python.org/pypi/aubio
     31* `Doxygen documentation`_: https://aubio.org/doc/latest/
     32* `Mailing lists`_: https://lists.aubio.org
     33
     34.. _Project homepage: https://aubio.org
     35.. _aubio on github: https://github.com/aubio/aubio
     36.. _aubio on pypi: https://pypi.python.org/pypi/aubio
     37.. _Doxygen documentation: https://aubio.org/doc/latest/
     38.. _Mailing lists: https://lists.aubio.org/
     39
     40* `Travis Continuous integration page <https://travis-ci.org/aubio/aubio>`_
     41* `Appveyor Continuous integration page <https://ci.appveyor.com/project/piem/aubio>`_
     42* `Landscape python code validation <https://landscape.io/github/aubio/aubio/master>`_
     43* `ReadTheDocs documentation <https://aubio.readthedocs.io/en/latest/>`_
    1244
    1345Features
     
    3870
    3971   installing
     72   python_module
     73   python
    4074   cli
    41    python_module
    4275   develop
    43 
    44 Project pages
    45 =============
    46 
    47 * `Project homepage`_: https://aubio.org
    48 * `aubio on github`_: https://github.com/aubio/aubio
    49 * `aubio on pypi`_: https://pypi.python.org/pypi/aubio
    50 * `Doxygen documentation`_: https://aubio.org/doc/latest/
    51 * `Mailing lists`_: https://lists.aubio.org
    52 
    53 .. _Project homepage: https://aubio.org
    54 .. _aubio on github: https://github.com/aubio/aubio
    55 .. _aubio on pypi: https://pypi.python.org/pypi/aubio
    56 .. _Doxygen documentation: https://aubio.org/doc/latest/
    57 .. _Mailing lists: https://lists.aubio.org/
    58 
    59 Current status
    60 ==============
    61 
    62 .. image:: https://travis-ci.org/aubio/aubio.svg?branch=master
    63    :target: https://travis-ci.org/aubio/aubio
    64    :alt: Travis build status
    65 
    66 .. image:: https://ci.appveyor.com/api/projects/status/f3lhy3a57rkgn5yi?svg=true
    67    :target: https://ci.appveyor.com/project/piem/aubio/
    68    :alt: Appveyor build status
    69 
    70 .. image:: https://landscape.io/github/aubio/aubio/master/landscape.svg?style=flat
    71    :target: https://landscape.io/github/aubio/aubio/master
    72    :alt: Landscape code health
    73 
    74 .. image:: https://readthedocs.org/projects/aubio/badge/?version=latest
    75    :target: http://aubio.readthedocs.io/en/latest/?badge=latest
    76    :alt: Documentation status
    77 
    78 .. image:: https://img.shields.io/github/commits-since/aubio/aubio/0.4.3.svg?maxAge=2592000
    79    :target: https://github.com/aubio/aubio
    80    :alt: Commits since last release
    81 
    82 * `Travis Continuous integration page <https://travis-ci.org/aubio/aubio>`_
    83 * `Appveyor Continuous integration page <https://ci.appveyor.com/project/piem/aubio>`_
    84 * `Landscape python code validation <https://landscape.io/github/aubio/aubio/master>`_
    85 * `ReadTheDocs documentation <http://aubio.readthedocs.io/en/latest/>`_
    86 
    87 Copyright and License
    88 =====================
    89 
    90 Copyright © 2003-2016 Paul Brossier <piem@aubio.org>
    91 
    92 aubio is a `free <http://www.debian.org/intro/free>`_ and `open source
    93 <http://www.opensource.org/docs/definition.php>`_ software; **you** can
    94 redistribute it and/or modify it under the terms of the `GNU
    95 <http://www.gnu.org/>`_ `General Public License
    96 <https://www.gnu.org/licenses/gpl.html>`_ as published by the `Free Software
    97 Foundation <https://fsf.org>`_, either version 3 of the License, or (at your
    98 option) any later version.
    99 
    100 .. Note:: aubio is not MIT or BSD licensed. Contact the author if you need it
    101   in your commercial product.
     76   about
  • doc/installing.rst

    r5b46bc3 r633400d  
    55operating systems.
    66
    7 To download a pre-compiled version of the library, head to :ref:`download`.
     7Aubio is available as a C library and as a python module.
    88
    9 To install the python extension, head to :ref:`python`.
     9Cheat sheet
     10-----------
    1011
    11 To compile aubio form source, first check the :ref:`requirements`, then read
    12 :ref:`building`.
     12- :ref:`get aubio latest source code <building>`::
    1313
    14 .. toctree::
    15    :maxdepth: 2
     14    # official repo
     15    git clone https://git.aubio.org/aubio/aubio
     16    # mirror
     17    git clone https://github.com/aubio/aubio
     18    # latest release
     19    wget https://aubio.org/pub/aubio-<version>.tar.gz
    1620
    17    download
    18    requirements
    19    building
     21
     22- :ref:`build aubio from source <building>`::
     23
     24    # 1. simple
     25    cd aubio
     26    make
     27
     28    # 2. step by step
     29    ./scripts/get_waf.sh
     30    ./waf configure
     31    ./waf build
     32    sudo ./waf install
     33
     34- :ref:`install python-aubio from source <python-install>`::
     35
     36    # from git
     37    pip install git+https://git.aubio.org/aubio/aubio/
     38    # mirror
     39    pip install git+https://github.com/aubio/aubio/
     40    # from latest release
     41    pip install https://aubio.org/pub/aubio-latest.tar.bz2
     42    # from pypi
     43    pip install aubio
     44    # from source directory
     45    cd aubio
     46    pip install -v .
     47
     48- :ref:`install python-aubio from a pre-compiled binary <python-install>`::
     49
     50      # conda [osx, linux, win]
     51      conda install -c conda-forge aubio
     52      # .deb (debian, ubuntu) [linux]
     53      sudo apt-get install python3-aubio python-aubio aubio-tools
     54      # brew [osx]
     55      brew install aubio --with-python
     56
     57- :ref:`get a pre-compiled version of libaubio <download>`::
     58
     59    # .deb (linux) WARNING: old version
     60    sudo apt-get install aubio-tools
     61
     62    # python module
     63    ./setup.py install
     64    # using pip
     65    pip install .
     66
     67- :ref:`check the list of optional dependencies <requirements>`::
     68
     69    # debian / ubuntu
     70    dpkg -l libavcodec-dev libavutil-dev libavformat-dev \
     71            libswresample-dev libavresample-dev \
     72            libsamplerate-dev libsndfile-dev \
     73            txt2man doxygen
     74
     75.. include:: download.rst
     76
     77.. include:: building.rst
     78
     79.. include:: requirements.rst
  • doc/python_module.rst

    r5b46bc3 r633400d  
    1 .. _python:
     1.. _python-install:
    22
    3 Python module
    4 =============
     3Installing aubio for Python
     4===========================
    55
    6 The aubio extension for Python is available for Python 2.7 and Python 3.
     6aubio is available as a package for Python 2.7 and Python 3. The aubio
     7extension is written C using the `Python/C`_ and the `Numpy/C`_ APIs.
     8
     9.. _Python/C: https://docs.python.org/c-api/index.html
     10.. _Numpy/C: https://docs.scipy.org/doc/numpy/reference/c-api.html
     11
     12For general documentation on how to install Python packages, see `Installing
     13Packages`_.
    714
    815Installing aubio with pip
    916-------------------------
    1017
    11 aubio can now be installed using ``pip``:
     18aubio can be installed from `PyPI`_ using ``pip``:
    1219
    13 .. code-block:: bash
     20.. code-block:: console
    1421
    1522    $ pip install aubio
    1623
    17 Building the module
    18 -------------------
     24See also `Installing from PyPI`_ for general documentation.
    1925
    20 From ``aubio`` source directory, run the following:
     26.. note::
    2127
    22 .. code-block:: bash
     28  aubio is currently a `source only`_ package, so you will need a compiler to
     29  install it from `PyPI`_. See also `Installing aubio with conda`_ for
     30  pre-compiled binaries.
     31
     32.. _PyPI: https://pypi.python.org/pypi/aubio
     33.. _Installing Packages: https://packaging.python.org/tutorials/installing-packages/
     34.. _Installing from PyPI: https://packaging.python.org/tutorials/installing-packages/#installing-from-pypi
     35.. _source only: https://packaging.python.org/tutorials/installing-packages/#source-distributions-vs-wheels
     36
     37Installing aubio with conda
     38---------------------------
     39
     40`Conda packages`_ are available through the `conda-forge`_ channel for Linux,
     41macOS, and Windows:
     42
     43.. code-block:: console
     44
     45    $ conda config --add channels conda-forge
     46    $ conda install -c conda-forge aubio
     47
     48.. _Conda packages: https://anaconda.org/conda-forge/aubio
     49.. _conda-forge: https://conda-forge.org/
     50
     51.. _py-doubleprecision:
     52
     53Double precision
     54----------------
     55
     56This module can be compiled in double-precision mode, in which case the
     57default type for floating-point samples will be 64-bit. The default is
     58single precision mode (32-bit, recommended).
     59
     60To build the aubio module with double precision, use the option
     61`--enable-double` of the `build_ext` subcommand:
     62
     63.. code:: bash
    2364
    2465    $ ./setup.py clean
    25     $ ./setup.py build
    26     $ sudo ./setup.py install
     66    $ ./setup.py build_ext --enable-double
     67    $ pip install -v .
    2768
    28 Using aubio in python
    29 ---------------------
     69**Note**: If linking against `libaubio`, make sure the library was also
     70compiled in :ref:`doubleprecision` mode.
    3071
    31 Once you have python-aubio installed, you should be able to run ``python -c
    32 "import aubio"``.
    3372
    34 A simple example
    35 ................
     73Checking your installation
     74--------------------------
    3675
    37 Here is a :download:`simple script <../python/demos/demo_source_simple.py>`
    38 that reads all the samples from a media file:
     76Once the python module is installed, its version can be checked with:
    3977
    40 .. literalinclude:: ../python/demos/demo_source_simple.py
    41    :language: python
     78.. code-block:: console
    4279
    43 Filtering an input sound file
    44 .............................
     80    $ python -c "import aubio; print(aubio.version, aubio.float_type)"
    4581
    46 Here is a more complete example, :download:`demo_filter.py
    47 <../python/demos/demo_filter.py>`. This files executes the following:
     82The command line `aubio` is also installed:
    4883
    49 * read an input media file (``aubio.source``)
     84.. code-block:: console
    5085
    51 * filter it using an `A-weighting <https://en.wikipedia.org/wiki/A-weighting>`_
    52   filter (``aubio.digital_filter``)
     86    $ aubio -h
    5387
    54 * write result to a new file (``aubio.sink``)
    55 
    56 .. literalinclude:: ../python/demos/demo_filter.py
    57    :language: python
    58 
    59 More demos
    60 ..........
    61 
    62 Check out the `python demos folder`_ for more examples.
    6388
    6489Python tests
    6590------------
    6691
    67 A number of `python tests`_ are provided. To run them, use
    68 ``python/tests/run_all_tests``.
     92A number of Python tests are provided in the `python tests`_. To run them,
     93install `nose2`_ and run the script ``python/tests/run_all_tests``:
    6994
    70 .. _python demos folder: https://github.com/aubio/aubio/blob/master/python/demos
     95.. code-block:: console
     96
     97    $ pip install nose2
     98    $ ./python/tests/run_all_tests
     99
    71100.. _demo_filter.py: https://github.com/aubio/aubio/blob/master/python/demos/demo_filter.py
    72101.. _python tests: https://github.com/aubio/aubio/blob/master/python/tests
    73 
     102.. _nose2: https://github.com/nose-devs/nose2
  • doc/requirements.rst

    r5b46bc3 r633400d  
    11.. _requirements:
    22
    3 Requirements
    4 ============
    5 
    6 While aubio can be built without any external dependencies, we **recommend** to
    7 use at least some of the following libraries.
    8 
    9 Platform notes
    10 --------------
    11 
    12 On 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 
    18 Linux
    19 .....
    20 
    21 The following `External libraries`_ will be used if found: `libav`_,
    22 `libsamplerate`_, `libsndfile`_, `libfftw3`_.
    23 
    24 macOS
    25 .....
    26 
    27 The 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 
    41 The following `External libraries`_ will also be checked: `libav`_,
    42 `libsamplerate`_, `libsndfile`_, `libfftw3`_.
    43 
    44 Windows
    45 .......
    46 
    47 To use a specific version of the compiler, ``--msvc_version``. To build for a
    48 specific architecture, use ``--msvc_target``. For instance, to build aubio
    49 for ``x86`` using ``msvc 12.0``, use:
    50 
    51 .. code:: bash
    52 
    53     waf configure --msvc_version='msvc 12.0' --msvc_target='x86'
    54 
    55 
    56 The following `External libraries`_ will be used if found: `libav`_,
    57 `libsamplerate`_, `libsndfile`_, `libfftw3`_.
    58 
    59 iOS
    60 ...
    61 
    62 The 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 
    71 To build aubio for iOS, configure with ``--with-target-platform=ios``. For the
    72 iOS Simulator, use ``--with-target-platform=iosimulator`` instead.
    73 
    74 By 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 
    80 and on iOS Simulator:
    81 
    82 .. code::
    83 
    84     CFLAGS="-arch i386 -arch x86_64 -mios-simulator-version-min=6.1"
    85 
    86 Set ``CFLAGS`` and ``LINKFLAGS`` to change these default values, or edit
    87 ``wscript`` directly.
    88 
    893Build options
    90 -------------
    91 
    92 Some additional options can be passed to the configure step. For the complete
    93 list of options, run:
    94 
    95 .. code:: bash
    96 
    97     $ ./waf configure --help
    98 
    99 Double precision
    100 ................
    101 
    102 To compile aubio in double precision mode, configure with ``--enable-double``.
    103 
    104 To compile aubio in single precision mode, use ``--disable-double`` (default).
    105 
    106 Fat binary
    107 ..........
    108 
    109 To build a fat binary on Mac OS platforms, configure with ``--enable-fat``.
     4=============
     5
     6If built without any external dependencies aubio can be somewhat useful, for
     7instance to read, process, and write simple wav files.
     8
     9To support more media input formats and add more features to aubio, you can use
     10one or all of the following `external libraries`_.
     11
     12You may also want to know more about the `other options`_ and the `platform
     13notes`_
     14
     15The configure script will automatically for these extra libraries. To make sure
     16the library or feature is used, pass the `--enable-flag` to waf. To disable
     17this feature, use `--disable-feature`.
     18
     19To find out more about the build commands, use the `--verbose` option.
    11020
    11121External libraries
     
    12131    If ``pkg-config`` is not found in ``PATH``, the configure step will
    12232    succeed, but none of the external libraries will be used.
     33
     34Media libraries
     35---------------
    12336
    12437libav
     
    16982configure with ``--disable-samplerate``
    17083
     84Optimisation libraries
     85----------------------
     86
    17187libfftw3
    17288........
     
    18399configure with ``--disable-fftw3``
    184100
    185 External tools
     101blas
     102....
     103
     104On macOs/iOS, `blas
     105<https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms>`_ are made
     106available through the Accelerate framework.
     107
     108On Linux, they can be enabled with ``--enable-blas``.  On Debian (etch),
     109`atlas`_, `openblas`_, and `libblas`_ have been successfully tested.
     110
     111When enabled, ``waf`` will check for the current blas configuration by running
     112``pkg-config --libs blas``. Depending of the library path returned by
     113``pkg-config``, different headers will be searched for.
     114
     115.. note::
     116
     117    On Debian systems, `multiple versions of BLAS and LAPACK
     118    <https://wiki.debian.org/DebianScience/LinearAlgebraLibraries>`_ can be
     119    installed. To configure which libblas is being used:
     120
     121    .. code-block:: console
     122
     123      $ sudo update-alternatives --config libblas.so
     124
     125..
     126  Expected pkg-config output for each alternative:
     127    /usr/lib/atlas-base/atlas/libblas.so
     128    -L/usr/lib/atlas-base/atlas -lblas
     129    /usr/lib/openblas-base/libblas.so
     130    -L/usr/lib/openblas-base -lblas
     131    /usr/lib/libblas/libblas.so
     132    -lblas
     133
     134atlas
     135.....
     136
     137`ATLAS BLAS APIs <http://math-atlas.sourceforge.net/>`_ will be used the path
     138returned by ``pkg-config --libs blas`` contains ``atlas``.
     139
     140..
     141  ``<atlas/cblas.h>`` will be included.
     142
     143Example:
     144
     145.. code-block:: console
     146
     147  $ pkg-config --libs blas
     148  -L/usr/lib/atlas-base/atlas -lblas
     149  $ ./waf configure --enable-atlas
     150  [...]
     151  Checking for 'blas'                      : yes
     152  Checking for header atlas/cblas.h        : yes
     153
     154openblas
     155........
     156
     157`OpenBlas libraries <https://www.openblas.net/>`_ will be used when the output
     158of ``pkg-config --libs blas`` contains 'openblas',
     159
     160..
     161  ``<openblas/cblas.h>`` will be included.
     162
     163Example:
     164
     165.. code-block:: console
     166
     167  $ pkg-config --libs blas
     168  -L/usr/lib/openblas-base -lblas
     169  $ ./waf configure --enable-atlas
     170  [...]
     171  Checking for 'blas'                      : yes
     172  Checking for header openblas/cblas.h     : yes
     173
     174libblas
     175.......
     176
     177`Netlib's libblas (LAPACK) <https://www.netlib.org/lapack/>`_ will be used if
     178no specific library path is specified by ``pkg-config``
     179
     180..
     181  ``<cblas.h>`` will be included.
     182
     183Example:
     184
     185.. code-block:: console
     186
     187  $ pkg-config --libs blas
     188  -lblas
     189  $ ./waf configure --enable-atlas
     190  [...]
     191  Checking for 'blas'                      : yes
     192  Checking for header cblas.h              : yes
     193
     194
     195Platform notes
    186196--------------
    187197
    188 If the following tools are found, additional documentations are built:
     198On all platforms, you will need to have installed:
     199
     200 - a compiler (gcc, clang, msvc, ...)
     201 - python (any version >= 2.7, including 3.x)
     202 - a terminal to run command lines in
     203
     204Linux
     205.....
     206
     207The following `External libraries`_ will be used if found: `libav`_,
     208`libsamplerate`_, `libsndfile`_, `libfftw3`_.
     209
     210macOS
     211.....
     212
     213The following system frameworks will be used on Mac OS X systems:
     214
     215  - `Accelerate <https://developer.apple.com/reference/accelerate>`_ to compute
     216    FFTs and other vectorized operations optimally.
     217
     218  - `CoreAudio <https://developer.apple.com/reference/coreaudio>`_ and
     219    `AudioToolbox <https://developer.apple.com/reference/audiotoolbox>`_ to
     220    decode audio from files and network streams.
     221
     222.. note::
     223
     224  To build a fat binary for both ``i386`` and ``x86_64``, use ``./waf configure
     225  --enable-fat``.
     226
     227The following `External libraries`_ will also be checked: `libav`_,
     228`libsamplerate`_, `libsndfile`_, `libfftw3`_.
     229
     230To build a fat binary on a darwin like system (macOS, tvOS, appleOS, ...)
     231platforms, configure with ``--enable-fat``.
     232
     233Windows
     234.......
     235
     236To use a specific version of the compiler, ``--msvc_version``. To build for a
     237specific architecture, use ``--msvc_target``. For instance, to build aubio
     238for ``x86`` using ``msvc 12.0``, use:
     239
     240.. code:: bash
     241
     242    waf configure --msvc_version='msvc 12.0' --msvc_target='x86'
     243
     244
     245The following `External libraries`_ will be used if found: `libav`_,
     246`libsamplerate`_, `libsndfile`_, `libfftw3`_.
     247
     248iOS
     249...
     250
     251The following system frameworks will be used on iOS and iOS Simulator.
     252
     253  - `Accelerate <https://developer.apple.com/reference/accelerate>`_ to compute
     254    FFTs and other vectorized operations optimally.
     255
     256  - `CoreAudio <https://developer.apple.com/reference/coreaudio>`_ and
     257    `AudioToolbox <https://developer.apple.com/reference/audiotoolbox>`_ to
     258    decode audio from files and network streams.
     259
     260To build aubio for iOS, configure with ``--with-target-platform=ios``. For the
     261iOS Simulator, use ``--with-target-platform=iosimulator`` instead.
     262
     263By default, aubio is built with the following flags on iOS:
     264
     265.. code:: bash
     266
     267    CFLAGS="-fembed-bitcode -arch arm64 -arch armv7 -arch armv7s -miphoneos-version-min=6.1"
     268
     269and on iOS Simulator:
     270
     271.. code::
     272
     273    CFLAGS="-arch i386 -arch x86_64 -mios-simulator-version-min=6.1"
     274
     275Set ``CFLAGS`` and ``LINKFLAGS`` to change these default values, or edit
     276``wscript`` directly.
     277
     278Other options
     279-------------
     280
     281Some additional options can be passed to the configure step. For the complete
     282list of options, run:
     283
     284.. code:: bash
     285
     286    $ ./waf --help
     287
     288Here is an example of a custom command:
     289
     290.. code:: bash
     291
     292    $ ./waf --verbose configure build install \
     293                --enable-avcodec --enable-wavread --disable-wavwrite \
     294                --enable-sndfile --enable-samplerate --enable-docs \
     295                --destdir $PWD/build/destdir --testcmd="echo %s" \
     296                --prefix=/opt --libdir=/opt/lib/multiarch \
     297                --manpagesdir=/opt/share/man  \
     298                uninstall clean distclean dist distcheck
     299
     300.. _doubleprecision:
     301
     302Double precision
     303................
     304
     305The datatype used to store real numbers in aubio is named `smpl_t`. By default,
     306`smpl_t` is defined as `float`, a `single-precision format
     307<https://en.wikipedia.org/wiki/Single-precision_floating-point_format>`_
     308(32-bit).  Some algorithms require a floating point representation with a
     309higher precision, for instance to prevent arithmetic underflow in recursive
     310filters.  In aubio, these special samples are named `lsmp_t` and defined as
     311`double` by default (64-bit).
     312
     313Sometimes it may be useful to compile aubio in `double-precision`, for instance
     314to reproduce numerical results obtained with 64-bit routines. In this case,
     315`smpl_t` will be defined as `double`.
     316
     317The following table shows how `smpl_t` and `lsmp_t` are defined in single- and
     318double-precision modes:
     319
     320.. list-table:: Single and double-precision modes
     321   :align: center
     322
     323   * -
     324     - single
     325     - double
     326   * - `smpl_t`
     327     - ``float``
     328     - ``double``
     329   * - `lsmp_t`
     330     - ``double``
     331     - ``long double``
     332
     333To compile aubio in double precision mode, configure with ``--enable-double``.
     334
     335To compile in single-precision mode (default), use ``--disable-double`` (or
     336simply none of these two options).
     337
     338Disabling the tests
     339...................
     340
     341In some case, for instance when cross-compiling, unit tests should not be run.
     342Option ``--notests`` can be used for this purpose. The tests will not be
     343executed, but the binaries will be compiled, ensuring that linking against
     344libaubio works as expected.
     345
     346.. note::
     347
     348  The ``--notests`` option should be passed to both ``build`` and ``install``
     349  targets, otherwise waf will try to run them.
     350
     351Edit wscript
     352............
     353
     354Many of the options are gathered in the file `wscript`. a good starting point
     355when looking for additional options.
     356
     357.. _build_docs:
     358
     359Building the docs
     360-----------------
     361
     362If the following command line tools are found, the documentation will be built
     363built:
    189364
    190365 - `doxygen <http://doxygen.org>`_ to build the :ref:`doxygen-documentation`.
    191366 - `txt2man <https://github.com/mvertes/txt2man>`_ to build the :ref:`manpages`
     367 - `sphinx <http://sphinx-doc.org>`_ to build this document
    192368
    193369These tools are searched for in the current ``PATH`` environment variable.
     
    196372To disable the documentation, configure with ``--disable-docs``. To build with
    197373the documentation, configure with ``--enable-docs``.
    198 
  • doc/web.cfg

    r5b46bc3 r633400d  
    1 # Doxyfile 1.8.8
     1# Doxyfile 1.8.13
    22
    33# This file describes the settings to be used by the documentation system
     
    3939# control system is used.
    4040
    41 PROJECT_NUMBER         = "0.4.2~alpha"
     41PROJECT_NUMBER         = "latest"
    4242
    4343# Using the PROJECT_BRIEF tag one can provide an optional one line description
     
    4747PROJECT_BRIEF          =
    4848
    49 # With the PROJECT_LOGO tag one can specify an logo or icon that is included in
    50 # the documentation. The maximum height of the logo should not exceed 55 pixels
    51 # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
    52 # to the output directory.
     49# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
     50# in the documentation. The maximum height of the logo should not exceed 55
     51# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
     52# the logo to the output directory.
    5353
    5454PROJECT_LOGO           =
     
    6161OUTPUT_DIRECTORY       = web
    6262
    63 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
     63# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
    6464# directories (in 2 levels) under the output directory of each output format and
    6565# will distribute the generated files over these directories. Enabling this
     
    9494OUTPUT_LANGUAGE        = English
    9595
    96 # If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
     96# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
    9797# descriptions after the members that are listed in the file and class
    9898# documentation (similar to Javadoc). Set to NO to disable this.
     
    101101BRIEF_MEMBER_DESC      = YES
    102102
    103 # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
     103# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
    104104# description of a member or function before the detailed description
    105105#
     
    136136INLINE_INHERITED_MEMB  = NO
    137137
    138 # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
     138# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
    139139# before files name in the file list and in the header files. If set to NO the
    140140# shortest path that makes the file name unique will be used
     
    206206INHERIT_DOCS           = YES
    207207
    208 # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
    209 # new page for each member. If set to NO, the documentation of a member will be
    210 # part of the file/class/namespace that contains it.
     208# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
     209# page for each member. If set to NO, the documentation of a member will be part
     210# of the file/class/namespace that contains it.
    211211# The default value is: NO.
    212212
     
    277277# and .f files as C (default is Fortran), use: inc=Fortran f=C.
    278278#
    279 # Note For files without extension you can use no_extension as a placeholder.
     279# Note: For files without extension you can use no_extension as a placeholder.
    280280#
    281281# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
     
    294294MARKDOWN_SUPPORT       = YES
    295295
     296# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
     297# to that level are automatically included in the table of contents, even if
     298# they do not have an id attribute.
     299# Note: This feature currently applies only to Markdown headings.
     300# Minimum value: 0, maximum value: 99, default value: 0.
     301# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
     302
     303TOC_INCLUDE_HEADINGS   = 0
     304
    296305# When enabled doxygen tries to link words that correspond to documented
    297306# classes, or namespaces to their corresponding documentation. Such a link can
    298 # be prevented in individual cases by by putting a % sign in front of the word
    299 # or globally by setting AUTOLINK_SUPPORT to NO.
     307# be prevented in individual cases by putting a % sign in front of the word or
     308# globally by setting AUTOLINK_SUPPORT to NO.
    300309# The default value is: YES.
    301310
     
    337346
    338347# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
    339 # tag is set to YES, then doxygen will reuse the documentation of the first
     348# tag is set to YES then doxygen will reuse the documentation of the first
    340349# member in the group (if any) for the other members of the group. By default
    341350# all members of a group must be documented explicitly.
     
    343352
    344353DISTRIBUTE_GROUP_DOC   = NO
     354
     355# If one adds a struct or class to a group and this option is enabled, then also
     356# any nested class or struct is added to the same group. By default this option
     357# is disabled and one has to add nested compounds explicitly via \ingroup.
     358# The default value is: NO.
     359
     360GROUP_NESTED_COMPOUNDS = NO
    345361
    346362# Set the SUBGROUPING tag to YES to allow class member groups of the same type
     
    402418#---------------------------------------------------------------------------
    403419
    404 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
     420# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
    405421# documentation are documented, even if no documentation was available. Private
    406422# class members and static file members will be hidden unless the
     
    412428EXTRACT_ALL            = NO
    413429
    414 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
     430# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
    415431# be included in the documentation.
    416432# The default value is: NO.
     
    418434EXTRACT_PRIVATE        = NO
    419435
    420 # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
     436# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
    421437# scope will be included in the documentation.
    422438# The default value is: NO.
     
    424440EXTRACT_PACKAGE        = NO
    425441
    426 # If the EXTRACT_STATIC tag is set to YES all static members of a file will be
     442# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
    427443# included in the documentation.
    428444# The default value is: NO.
     
    430446EXTRACT_STATIC         = NO
    431447
    432 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
    433 # locally in source files will be included in the documentation. If set to NO
     448# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
     449# locally in source files will be included in the documentation. If set to NO,
    434450# only classes defined in header files are included. Does not have any effect
    435451# for Java sources.
     
    438454EXTRACT_LOCAL_CLASSES  = YES
    439455
    440 # This flag is only useful for Objective-C code. When set to YES local methods,
     456# This flag is only useful for Objective-C code. If set to YES, local methods,
    441457# which are defined in the implementation section but not in the interface are
    442 # included in the documentation. If set to NO only methods in the interface are
     458# included in the documentation. If set to NO, only methods in the interface are
    443459# included.
    444460# The default value is: NO.
     
    465481# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
    466482# undocumented classes that are normally visible in the class hierarchy. If set
    467 # to NO these classes will be included in the various overviews. This option has
    468 # no effect if EXTRACT_ALL is enabled.
     483# to NO, these classes will be included in the various overviews. This option
     484# has no effect if EXTRACT_ALL is enabled.
    469485# The default value is: NO.
    470486
     
    472488
    473489# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
    474 # (class|struct|union) declarations. If set to NO these declarations will be
     490# (class|struct|union) declarations. If set to NO, these declarations will be
    475491# included in the documentation.
    476492# The default value is: NO.
     
    479495
    480496# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
    481 # documentation blocks found inside the body of a function. If set to NO these
     497# documentation blocks found inside the body of a function. If set to NO, these
    482498# blocks will be appended to the function's detailed documentation block.
    483499# The default value is: NO.
     
    493509
    494510# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
    495 # names in lower-case letters. If set to YES upper-case letters are also
     511# names in lower-case letters. If set to YES, upper-case letters are also
    496512# allowed. This is useful if you have classes or files whose names only differ
    497513# in case and if your file system supports case sensitive file names. Windows
     
    502518
    503519# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
    504 # their full class and namespace scopes in the documentation. If set to YES the
     520# their full class and namespace scopes in the documentation. If set to YES, the
    505521# scope will be hidden.
    506522# The default value is: NO.
    507523
    508524HIDE_SCOPE_NAMES       = NO
     525
     526# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
     527# append additional text to a page's title, such as Class Reference. If set to
     528# YES the compound reference will be hidden.
     529# The default value is: NO.
     530
     531HIDE_COMPOUND_REFERENCE= NO
    509532
    510533# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
     
    535558# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
    536559# (detailed) documentation of file and class members alphabetically by member
    537 # name. If set to NO the members will appear in declaration order.
     560# name. If set to NO, the members will appear in declaration order.
    538561# The default value is: YES.
    539562
     
    542565# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
    543566# descriptions of file, namespace and class members alphabetically by member
    544 # name. If set to NO the members will appear in declaration order. Note that
     567# name. If set to NO, the members will appear in declaration order. Note that
    545568# this will also influence the order of the classes in the class list.
    546569# The default value is: NO.
     
    587610STRICT_PROTO_MATCHING  = NO
    588611
    589 # The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
    590 # todo list. This list is created by putting \todo commands in the
    591 # documentation.
     612# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
     613# list. This list is created by putting \todo commands in the documentation.
    592614# The default value is: YES.
    593615
    594616GENERATE_TODOLIST      = YES
    595617
    596 # The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
    597 # test list. This list is created by putting \test commands in the
    598 # documentation.
     618# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
     619# list. This list is created by putting \test commands in the documentation.
    599620# The default value is: YES.
    600621
    601622GENERATE_TESTLIST      = YES
    602623
    603 # The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
     624# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
    604625# list. This list is created by putting \bug commands in the documentation.
    605626# The default value is: YES.
     
    607628GENERATE_BUGLIST       = YES
    608629
    609 # The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
     630# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
    610631# the deprecated list. This list is created by putting \deprecated commands in
    611632# the documentation.
     
    632653
    633654# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
    634 # the bottom of the documentation of classes and structs. If set to YES the list
    635 # will mention the files that were used to generate the documentation.
     655# the bottom of the documentation of classes and structs. If set to YES, the
     656# list will mention the files that were used to generate the documentation.
    636657# The default value is: YES.
    637658
     
    697718
    698719# The WARNINGS tag can be used to turn on/off the warning messages that are
    699 # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
     720# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
    700721# this implies that the warnings are on.
    701722#
     
    705726WARNINGS               = YES
    706727
    707 # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
     728# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
    708729# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
    709730# will automatically be disabled.
     
    722743# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
    723744# are documented, but have no documentation for their parameters or return
    724 # value. If set to NO doxygen will only warn about wrong or incomplete parameter
    725 # documentation, but not about the absence of documentation.
     745# value. If set to NO, doxygen will only warn about wrong or incomplete
     746# parameter documentation, but not about the absence of documentation.
    726747# The default value is: NO.
    727748
    728749WARN_NO_PARAMDOC       = NO
     750
     751# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
     752# a warning is encountered.
     753# The default value is: NO.
     754
     755WARN_AS_ERROR          = NO
    729756
    730757# The WARN_FORMAT tag determines the format of the warning messages that doxygen
     
    751778# documented source files. You may enter file names like myfile.cpp or
    752779# directories like /usr/src/myproject. Separate the files or directories with
    753 # spaces.
     780# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
    754781# Note: If this tag is empty the current directory is searched.
    755782
     
    767794# If the value of the INPUT tag contains directories, you can use the
    768795# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
    769 # *.h) to filter out the source-files in the directories. If left blank the
    770 # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
    771 # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
    772 # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
    773 # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
    774 # *.qsf, *.as and *.js.
     796# *.h) to filter out the source-files in the directories.
     797#
     798# Note that for custom extensions or not directly supported extensions you also
     799# need to set EXTENSION_MAPPING for the extension otherwise the files are not
     800# read by doxygen.
     801#
     802# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
     803# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
     804# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
     805# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
     806# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
    775807
    776808FILE_PATTERNS          = *.h
     
    791823EXCLUDE                = ../src/aubio_priv.h \
    792824                         ../src/mathutils.h \
     825                         ../src/io/ioutils.h \
    793826                         ../src/io/audio_unit.h \
    794827                         ../src/io/source_sndfile.h \
     
    803836                         ../src/pitch/pitchyin.h \
    804837                         ../src/pitch/pitchyinfft.h \
     838                         ../src/pitch/pitchyinfast.h \
    805839                         ../src/pitch/pitchschmitt.h \
    806840                         ../src/pitch/pitchfcomb.h \
     
    879913# code is scanned, but not when the output code is generated. If lines are added
    880914# or removed, the anchors will not be placed correctly.
     915#
     916# Note that for custom extensions or not directly supported extensions you also
     917# need to set EXTENSION_MAPPING for the extension otherwise the files are not
     918# properly processed by doxygen.
    881919
    882920INPUT_FILTER           =
     
    888926# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
    889927# patterns match the file name, INPUT_FILTER is applied.
     928#
     929# Note that for custom extensions or not directly supported extensions you also
     930# need to set EXTENSION_MAPPING for the extension otherwise the files are not
     931# properly processed by doxygen.
    890932
    891933FILTER_PATTERNS        =
    892934
    893935# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
    894 # INPUT_FILTER ) will also be used to filter the input files that are used for
     936# INPUT_FILTER) will also be used to filter the input files that are used for
    895937# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
    896938# The default value is: NO.
     
    952994
    953995# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
    954 # to YES, then the hyperlinks from functions in REFERENCES_RELATION and
     996# to YES then the hyperlinks from functions in REFERENCES_RELATION and
    955997# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
    956998# link to the documentation.
     
    9991041VERBATIM_HEADERS       = YES
    10001042
    1001 # If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the
     1043# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
    10021044# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
    10031045# cost of reduced performance. This can be particularly helpful with template
     
    10051047# information.
    10061048# Note: The availability of this option depends on whether or not doxygen was
    1007 # compiled with the --with-libclang option.
     1049# generated with the -Duse-libclang=ON option for CMake.
    10081050# The default value is: NO.
    10091051
     
    10481090#---------------------------------------------------------------------------
    10491091
    1050 # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
     1092# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
    10511093# The default value is: YES.
    10521094
     
    11141156# created by doxygen. Using this option one can overrule certain style aspects.
    11151157# This is preferred over using HTML_STYLESHEET since it does not replace the
    1116 # standard style sheet and is therefor more robust against future updates.
     1158# standard style sheet and is therefore more robust against future updates.
    11171159# Doxygen will copy the style sheet files to the output directory.
    1118 # Note: The order of the extra stylesheet files is of importance (e.g. the last
    1119 # stylesheet in the list overrules the setting of the previous ones in the
     1160# Note: The order of the extra style sheet files is of importance (e.g. the last
     1161# style sheet in the list overrules the setting of the previous ones in the
    11201162# list). For an example see the documentation.
    11211163# This tag requires that the tag GENERATE_HTML is set to YES.
     
    11341176
    11351177# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
    1136 # will adjust the colors in the stylesheet and background images according to
     1178# will adjust the colors in the style sheet and background images according to
    11371179# this color. Hue is specified as an angle on a colorwheel, see
    11381180# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
     
    11651207# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
    11661208# page will contain the date and time when the page was generated. Setting this
    1167 # to NO can help when comparing the output of multiple runs.
    1168 # The default value is: YES.
     1209# to YES can help to show when doxygen was last run and thus if the
     1210# documentation is up to date.
     1211# The default value is: NO.
    11691212# This tag requires that the tag GENERATE_HTML is set to YES.
    11701213
     
    12621305
    12631306# The HHC_LOCATION tag can be used to specify the location (absolute path
    1264 # including file name) of the HTML help compiler ( hhc.exe). If non-empty
     1307# including file name) of the HTML help compiler (hhc.exe). If non-empty,
    12651308# doxygen will try to run the HTML help compiler on the generated index.hhp.
    12661309# The file has to be specified with full path.
     
    12691312HHC_LOCATION           =
    12701313
    1271 # The GENERATE_CHI flag controls if a separate .chi index file is generated (
    1272 # YES) or that it should be included in the master .chm file ( NO).
     1314# The GENERATE_CHI flag controls if a separate .chi index file is generated
     1315# (YES) or that it should be included in the master .chm file (NO).
    12731316# The default value is: NO.
    12741317# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
     
    12761319GENERATE_CHI           = NO
    12771320
    1278 # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
     1321# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
    12791322# and project file content.
    12801323# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
     
    12821325CHM_INDEX_ENCODING     =
    12831326
    1284 # The BINARY_TOC flag controls whether a binary table of contents is generated (
    1285 # YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
     1327# The BINARY_TOC flag controls whether a binary table of contents is generated
     1328# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
    12861329# enables the Previous and Next buttons.
    12871330# The default value is: NO.
     
    13971440# to work a browser that supports JavaScript, DHTML, CSS and frames is required
    13981441# (i.e. any modern browser). Windows users are probably better off using the
    1399 # HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
     1442# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
    14001443# further fine-tune the look of the index. As an example, the default style
    14011444# sheet generated by doxygen has an example that shows how to put an image at
     
    14251468TREEVIEW_WIDTH         = 250
    14261469
    1427 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
     1470# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
    14281471# external symbols imported via tag files in a separate window.
    14291472# The default value is: NO.
     
    14541497# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
    14551498# http://www.mathjax.org) which uses client side Javascript for the rendering
    1456 # instead of using prerendered bitmaps. Use this if you do not have LaTeX
     1499# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
    14571500# installed or if you want to formulas look prettier in the HTML output. When
    14581501# enabled you may also need to install MathJax separately and configure the path
     
    14841527# This tag requires that the tag USE_MATHJAX is set to YES.
    14851528
    1486 MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
     1529MATHJAX_RELPATH        = https://cdn.mathjax.org/mathjax/latest
    14871530
    14881531# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
     
    15401583# search results.
    15411584#
    1542 # Doxygen ships with an example indexer ( doxyindexer) and search engine
     1585# Doxygen ships with an example indexer (doxyindexer) and search engine
    15431586# (doxysearch.cgi) which are based on the open source search engine library
    15441587# Xapian (see: http://xapian.org/).
     
    15531596# which will return the search results when EXTERNAL_SEARCH is enabled.
    15541597#
    1555 # Doxygen ships with an example indexer ( doxyindexer) and search engine
     1598# Doxygen ships with an example indexer (doxyindexer) and search engine
    15561599# (doxysearch.cgi) which are based on the open source search engine library
    15571600# Xapian (see: http://xapian.org/). See the section "External Indexing and
     
    15911634#---------------------------------------------------------------------------
    15921635
    1593 # If the GENERATE_LATEX tag is set to YES doxygen will generate