Changeset b201912
- Timestamp:
- Apr 11, 2017, 1:49:44 AM (8 years ago)
- Branches:
- sampler
- Children:
- 04d0c89
- Parents:
- fbafd2c (diff), b762f8d (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. - Files:
-
- 4 added
- 28 edited
Legend:
- Unmodified
- Added
- Removed
-
ChangeLog
rfbafd2c rb201912 1 2017-04-10 Paul Brossier <piem@aubio.org> 2 3 [Overview] 4 5 * VERSION: bump to 0.4.5 6 * src/io/source_avcodec.c: add support for libswresample 7 * aubio: new python command line tool to extract information 8 * src/onset/onset.c: add spectral whitening and compression, improve default 9 parameters 10 * this_version.py: use centralized script to get current version, adding git 11 sha when building from git repo (thanks to MartinHN) 12 13 [Interface] 14 15 * src/spectral/awhithening.h: add adaptive whitening 16 * src/{cvec,mathutils,musicutils}.h: add cvec_logmag, fvec_logmag, and fvec_push 17 * src/onset/onset.h: add aubio_onset_set_default_parameters to load optimal 18 parameters of each novelty function, _{set,get}_compression and 19 _{set,get}_awhitening to turn on/off compression and adaptive whitening 20 * src/spectral/specdesc.h: add weighted phase 21 22 [Library] 23 24 * src/onset/onset.c: improve default onset parameters (thanks to @superbock 25 for access to his evaluation database), see commit dccfad2 for more details 26 * src/pitch/pitch.c: avoid segfault when using invalid parameters 27 * src/temporal/biquad.c: fix biquad parameters initialization (thanks to 28 @jurlhardt) 29 30 [Tools] 31 32 * examples/aubio{onset,track}.c: add options --miditap-note and 33 --miditap-velo to set which midi note is triggered at onset/beat (thanks to 34 @tseaver) 35 * examples/aubioonset.c: show actual parameters in verbose mode 36 * examples/utils.c: improve memory usage to emit midi notes 37 38 [Python] 39 40 * python/ext/py-source.c: add with (PEP 343) and iter (PEP 234) interface 41 * python/ext/py-sink.c: add with interface (PEP 343) 42 * python/lib/aubio/cmd.py: new `aubio` command line tool 43 * python/lib/aubio/cut.py: moved from python/scripts/aubiocut 44 45 [Documentation] 46 47 * doc/*.rst: reorganize and improve sphinx manual 48 * doc/*.txt: update manpages, add simple manpage for aubio command line 49 * doc/full.cfg: derive from doc/web.cfg 50 * README.md: simplify and add contribute information 51 52 [Build system] 53 54 * wscript: prefer libswresample over libavsamplerate when available, use 55 current version in manpages, doxygen, and sphinx, update to newest waf 56 * setup.py: use entry_points console_scripts to generate scripts, use 57 centralized version from this_version.py, clean up 58 * python/lib/moresetuptools.py: detect if libswresample is available 59 1 60 2017-01-08 Paul Brossier <piem@aubio.org> 2 61 -
README.md
rfbafd2c rb201912 3 3 4 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:// ci.appveyor.com/api/projects/status/f3lhy3a57rkgn5yi?svg=true)](https://ci.appveyor.com/project/piem/aubio "Appveyor 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 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 [![Documentation Status](https://readthedocs.org/projects/aubio/badge/?version=latest)](http://aubio.readthedocs.io/en/latest/?badge=latest "Documentation status") 8 [![Commits since last release](https://img.shields.io/github/commits-since/aubio/aubio/0.4.4.svg?maxAge=2592000)](https://github.com/aubio/aubio "Commits since last release") 7 [![Commits since last release](https://img.shields.io/github/commits-since/aubio/aubio/0.4.5.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) 9 11 10 12 aubio is a library to label music and sounds. It listens to audio signals and … … 27 29 - spectral filtering 28 30 - transient/steady-state separation 29 - sound file and audio devicesread and write access31 - sound file read and write access 30 32 - various mathematics utilities for music applications 31 33 … … 36 38 ------------- 37 39 38 A python module to access the library functions is also provided. Please see39 the file [`python/README.md`](python/README.md) for more information on how to 40 use it.40 A python module for aubio is provided. For more information on how to use it, 41 please see the file [`python/README.md`](python/README.md) and the 42 [manual](https://aubio.org/manual/latest/) . 41 43 42 Examples tools43 ----- ---------44 Tools 45 ----- 44 46 45 A few simple command line tools are included along with the library: 47 The 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 52 Additional command line tools are included along with the library: 46 53 47 54 - `aubioonset` outputs the time stamp of detected note onsets … … 53 60 - `aubioquiet` extracts quiet and loud regions 54 61 55 Additionally, the python module comes with the following script: 62 Documentation 63 ------------- 56 64 57 - `aubiocut` slices sound files at onset or beat timestamps 65 - [manual](https://aubio.org/manual/latest/), generated with sphinx 66 - [developer documentation](https://aubio.org/doc/latest/), generated with Doxygen 58 67 59 68 The latest version of the documentation can be found at: … … 74 83 ./setup.py build 75 84 76 See also the [manual](https://aubio.org/manual/latest/) for more information 77 about [compiling](https://aubio.org/manual/latest/building.html) and 78 [installing](https://aubio.org/manual/latest/installing.html). 85 See the [manual](https://aubio.org/manual/latest/) for more information about 86 [installing aubio](https://aubio.org/manual/latest/installing.html). 79 87 80 C redits and Publications81 -------- ----------------88 Citation 89 -------- 82 90 83 This library gathers music signal processing algorithms designed at the Centre 84 for Digital Music and elsewhere. This software project was developed along the 85 research I did at the Centre for Digital Music, Queen Mary, University of 86 London. Most of this C code was written by myself, starting from published 87 papers and existing code. The header files of each algorithm contains brief 88 descriptions and references to the corresponding papers. 91 Please use the DOI link above to cite this release in your publications. For 92 more information, see also the [about 93 page](https://aubio.org/manual/latest/about.html) in [aubio 94 manual](https://aubio.org/manual/latest/). 89 95 90 Special thanks go Juan Pablo Bello, Chris Duxbury, Samer Abdallah, Alain de 91 Cheveigne for their help and publications. Also many thanks to Miguel Ramirez 92 and Nicolas Wack for their bug fixing. 93 94 Substantial informations about the algorithms and their evaluation are gathered 95 in: 96 97 - Paul Brossier, _[Automatic annotation of musical audio for interactive 98 systems](https://aubio.org/phd)_, PhD thesis, Centre for Digital music, 99 Queen Mary University of London, London, UK, 2006. 100 101 Additional results obtained with this software were discussed in the following 102 papers: 103 104 - P. M. Brossier and J. P. Bello and M. D. Plumbley, [Real-time temporal 105 segmentation of note objects in music signals](https://aubio.org/articles/brossier04fastnotes.pdf), 106 in _Proceedings of the International Computer Music Conference_, 2004, Miami, 107 Florida, ICMA 108 109 - P. M. Brossier and J. P. Bello and M. D. Plumbley, [Fast labelling of note 110 objects in music signals] (https://aubio.org/articles/brossier04fastnotes.pdf), 111 in _Proceedings of the International Symposium on Music Information Retrieval_, 112 2004, Barcelona, Spain 113 114 115 Contact Info and Mailing List 116 ----------------------------- 96 Homepage 97 -------- 117 98 118 99 The home page of this project can be found at: https://aubio.org/ 119 100 120 Questions, comments, suggestions, and contributions are welcome. Use the 121 mailing list: <aubio-user@aubio.org>. 122 123 To subscribe to the list, use the mailman form: 124 https://lists.aubio.org/listinfo/aubio-user/ 125 126 Alternatively, feel free to contact directly the author. 127 128 129 Copyright and License Information 130 --------------------------------- 131 132 Copyright (C) 2003-2016 Paul Brossier <piem@aubio.org> 101 License 102 ------- 133 103 134 104 aubio is free software: you can redistribute it and/or modify it under the … … 136 106 Foundation, either version 3 of the License, or (at your option) any later 137 107 version. 108 109 Contributing 110 ------------ 111 112 Patches are welcome: please fork the latest git repository and create a feature 113 branch. Submitted requests should pass all continuous integration tests. -
VERSION
rfbafd2c rb201912 1 1 AUBIO_MAJOR_VERSION=0 2 2 AUBIO_MINOR_VERSION=4 3 AUBIO_PATCH_VERSION= 53 AUBIO_PATCH_VERSION=6 4 4 AUBIO_VERSION_STATUS='~alpha' 5 5 LIBAUBIO_LT_CUR=5 6 LIBAUBIO_LT_REV= 17 LIBAUBIO_LT_AGE= 56 LIBAUBIO_LT_REV=2 7 LIBAUBIO_LT_AGE=6 -
doc/full.cfg
rfbafd2c rb201912 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.5~alpha" 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 60 3 61 4 OUTPUT_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 and65 # will distribute the generated files over these directories. Enabling this66 # option can be useful when feeding doxygen a huge amount of source files, where67 # putting all generated files in the same directory would otherwise causes68 # performance problems for the file system.69 # The default value is: NO.70 71 CREATE_SUBDIRS = NO72 73 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII74 # characters to appear in the names of generated files. If set to NO, non-ASCII75 # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode76 # U+3044.77 # The default value is: NO.78 79 ALLOW_UNICODE_NAMES = NO80 81 # The OUTPUT_LANGUAGE tag is used to specify the language in which all82 # documentation generated by doxygen is written. Doxygen will use this83 # 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 = English95 96 # If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member97 # descriptions after the members that are listed in the file and class98 # documentation (similar to Javadoc). Set to NO to disable this.99 # The default value is: YES.100 101 BRIEF_MEMBER_DESC = YES102 103 # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief104 # description of a member or function before the detailed description105 #106 # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the107 # brief descriptions will be completely suppressed.108 # The default value is: YES.109 110 REPEAT_BRIEF = YES111 112 # This tag implements a quasi-intelligent brief description abbreviator that is113 # used to form the text in various listings. Each string in this list, if found114 # as the leading text of the brief description, will be stripped from the text115 # and the result, after processing the whole list, is used as the annotated116 # text. Otherwise, the brief description is used as-is. If left blank, the117 # following values are used ($name is automatically replaced with the name of118 # 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 then124 # doxygen will generate a detailed section even if there is only a brief125 # description.126 # The default value is: NO.127 128 ALWAYS_DETAILED_SEC = NO129 130 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all131 # inherited members of a class in the documentation of that class as if those132 # members were ordinary class members. Constructors, destructors and assignment133 # operators of the base classes will not be shown.134 # The default value is: NO.135 136 INLINE_INHERITED_MEMB = NO137 138 # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path139 # before files name in the file list and in the header files. If set to NO the140 # shortest path that makes the file name unique will be used141 # The default value is: YES.142 143 FULL_PATH_NAMES = YES144 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-hand147 # 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 to149 # strip.150 #151 # Note that you can specify absolute paths here, but also relative paths, which152 # 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 = ../src156 157 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the158 # path mentioned in the documentation of a class, which tells the reader which159 # header file to include in order to use a class. If left blank only the name of160 # the header file containing the class definition is used. Otherwise one should161 # specify the list of include paths that are normally passed to the compiler162 # 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 (but167 # less readable) file names. This can be useful is your file systems doesn't168 # support long names like on DOS, Mac, or CD-ROM.169 # The default value is: NO.170 171 SHORT_NAMES = NO172 173 # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the174 # first line (until the first dot) of a Javadoc-style comment as the brief175 # 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 brief177 # description.)178 # The default value is: NO.179 180 JAVADOC_AUTOBRIEF = YES181 182 # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first183 # line (until the first dot) of a Qt-style comment as the brief description. If184 # set to NO, the Qt-style will behave just like regular Qt-style comments (thus185 # requiring an explicit \brief command for a brief description.)186 # The default value is: NO.187 188 QT_AUTOBRIEF = NO189 190 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a191 # multi-line C++ special comment block (i.e. a block of //! or /// comments) as192 # a brief description. This used to be the default behavior. The new default is193 # to treat a multi-line C++ comment block as a detailed description. Set this194 # 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 are197 # not recognized any more.198 # The default value is: NO.199 200 MULTILINE_CPP_IS_BRIEF = NO201 202 # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the203 # documentation from any documented member that it re-implements.204 # The default value is: YES.205 206 INHERIT_DOCS = YES207 208 # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a209 # new page for each member. If set to NO, the documentation of a member will be210 # part of the file/class/namespace that contains it.211 # The default value is: NO.212 213 SEPARATE_MEMBER_PAGES = NO214 215 # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen216 # 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 = 4220 221 # This tag can be used to specify a number of aliases that act as commands in222 # the documentation. An alias has the form:223 # name=value224 # For example adding225 # "sideeffect=@par Side Effects:\n"226 # will allow you to put the command \sideeffect (or @sideeffect) in the227 # documentation, which will result in a user-defined paragraph with heading228 # "Side Effects:". You can put \n's in the value part of an alias to insert229 # 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 sources240 # only. Doxygen will then generate output that is more tailored for C. For241 # instance, some of the names that are used will be different. The list of all242 # members will be omitted, etc.243 # The default value is: NO.244 245 OPTIMIZE_OUTPUT_FOR_C = YES246 247 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or248 # Python sources only. Doxygen will then generate output that is more tailored249 # 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 = NO254 255 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran256 # sources. Doxygen will then generate output that is tailored for Fortran.257 # The default value is: NO.258 259 OPTIMIZE_FOR_FORTRAN = NO260 261 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL262 # sources. Doxygen will then generate output that is tailored for VHDL.263 # The default value is: NO.264 265 OPTIMIZE_OUTPUT_VHDL = NO266 267 # Doxygen selects the parser to use depending on the extension of the files it268 # parses. With this tag you can assign which parser to use for a given269 # extension. Doxygen has a built-in mapping, but you can override or extend it270 # using this tag. The format is ext=language, where ext is a file extension, and271 # 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 fixed275 # or free formatted code, this is the default for Fortran type files), VHDL. For276 # 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 otherwise282 # 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 comments287 # according to the Markdown format, which allows for more readable288 # documentation. See http://daringfireball.net/projects/markdown/ for details.289 # The output of markdown processing is further processed by doxygen, so you can290 # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in291 # case of backward compatibilities issues.292 # The default value is: YES.293 294 MARKDOWN_SUPPORT = YES295 296 # When enabled doxygen tries to link words that correspond to documented297 # classes, or namespaces to their corresponding documentation. Such a link can298 # be prevented in individual cases by by putting a % sign in front of the word299 # or globally by setting AUTOLINK_SUPPORT to NO.300 # The default value is: YES.301 302 AUTOLINK_SUPPORT = YES303 304 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want305 # to include (a tag file for) the STL sources as input, then you should set this306 # tag to YES in order to let doxygen match functions declarations and307 # definitions whose arguments contain STL classes (e.g. func(std::string);308 # versus func(std::string) {}). This also make the inheritance and collaboration309 # diagrams that involve STL classes more complete and accurate.310 # The default value is: NO.311 312 BUILTIN_STL_SUPPORT = NO313 314 # If you use Microsoft's C++/CLI language, you should set this option to YES to315 # enable parsing support.316 # The default value is: NO.317 318 CPP_CLI_SUPPORT = NO319 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. Doxygen322 # will parse them like normal C++ but will assume all classes use public instead323 # of private inheritance when no explicit protection keyword is present.324 # The default value is: NO.325 326 SIP_SUPPORT = NO327 328 # For Microsoft's IDL there are propget and propput attributes to indicate329 # getter and setter methods for a property. Setting this option to YES will make330 # 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 simple332 # type. If this is not the case, or you want to show the methods anyway, you333 # should set this option to NO.334 # The default value is: YES.335 336 IDL_PROPERTY_SUPPORT = YES337 338 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC339 # tag is set to YES, then doxygen will reuse the documentation of the first340 # member in the group (if any) for the other members of the group. By default341 # all members of a group must be documented explicitly.342 # The default value is: NO.343 344 DISTRIBUTE_GROUP_DOC = NO345 346 # Set the SUBGROUPING tag to YES to allow class member groups of the same type347 # (for instance a group of public functions) to be put as a subgroup of that348 # type (e.g. under the Public Functions section). Set it to NO to prevent349 # subgrouping. Alternatively, this can be done per class using the350 # \nosubgrouping command.351 # The default value is: YES.352 353 SUBGROUPING = YES354 355 # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions356 # 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 LaTeX358 # and RTF).359 #360 # Note that this feature does not work in combination with361 # SEPARATE_MEMBER_PAGES.362 # The default value is: NO.363 364 INLINE_GROUPED_CLASSES = NO365 366 # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions367 # with only public data fields or simple typedef fields will be shown inline in368 # the documentation of the scope in which they are defined (i.e. file,369 # namespace, or group documentation), provided this scope is documented. If set370 # to NO, structs, classes, and unions are shown on a separate page (for HTML and371 # Man pages) or section (for LaTeX and RTF).372 # The default value is: NO.373 374 INLINE_SIMPLE_STRUCTS = NO375 376 # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or377 # enum is documented as struct, union, or enum with the name of the typedef. So378 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct379 # 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 be381 # useful for C code in case the coding convention dictates that all compound382 # 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 = NO386 387 # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This388 # cache is used to resolve symbols given their name and scope. Since this can be389 # an expensive process and often the same symbol appears multiple times in the390 # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small391 # doxygen will become slower. If the cache is too large, memory is wasted. The392 # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range393 # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536394 # symbols. At the end of a run doxygen will report the cache usage and suggest395 # 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 = 0399 400 #---------------------------------------------------------------------------401 # Build related configuration options402 #---------------------------------------------------------------------------403 404 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in405 # documentation are documented, even if no documentation was available. Private406 # class members and static file members will be hidden unless the407 # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.408 # Note: This will also disable the warnings about undocumented members that are409 # normally produced when WARNINGS is set to YES.410 # The default value is: NO.411 412 5 EXTRACT_ALL = YES 413 414 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will415 # be included in the documentation.416 # The default value is: NO.417 418 6 EXTRACT_PRIVATE = YES 419 420 # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal421 # scope will be included in the documentation.422 # The default value is: NO.423 424 EXTRACT_PACKAGE = NO425 426 # If the EXTRACT_STATIC tag is set to YES all static members of a file will be427 # included in the documentation.428 # The default value is: NO.429 430 7 EXTRACT_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 8 FILE_PATTERNS = *.h *.c 792 9 EXCLUDE = 793 794 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or795 # directories that are symbolic links (a Unix file system feature) are excluded796 # from the input.797 # The default value is: NO.798 799 EXCLUDE_SYMLINKS = NO800 801 # If the value of the INPUT tag contains directories, you can use the802 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude803 # certain files from those directories.804 #805 # Note that the wildcards are matched against the file with absolute path, so to806 # 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 names811 # (namespaces, classes, functions, etc.) that should be excluded from the812 # output. The symbol name can be a fully qualified name, a word, or if the813 # wildcard * is used, a substring. Examples: ANamespace, AClass,814 # AClass::ANamespace, ANamespace::*Test815 #816 # Note that the wildcards are matched against the file with absolute path, so to817 # 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 directories822 # that contain example code fragments that are included (see the \include823 # command).824 825 EXAMPLE_PATH = ../examples \826 ../tests/src827 828 # If the value of the EXAMPLE_PATH tag contains directories, you can use the829 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and830 # *.h) to filter out the source-files in the directories. If left blank all831 # files are included.832 833 EXAMPLE_PATTERNS =834 835 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be836 # searched for input files to be used with the \include or \dontinclude commands837 # irrespective of the value of the RECURSIVE tag.838 # The default value is: NO.839 840 EXAMPLE_RECURSIVE = NO841 842 # The IMAGE_PATH tag can be used to specify one or more files or directories843 # that contain images that are to be included in the documentation (see the844 # \image command).845 846 IMAGE_PATH =847 848 # The INPUT_FILTER tag can be used to specify a program that doxygen should849 # invoke to filter for each input file. Doxygen will invoke the filter program850 # 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 the855 # name of an input file. Doxygen will then use the output that the filter856 # program writes to standard output. If FILTER_PATTERNS is specified, this tag857 # will be ignored.858 #859 # Note that the filter must not add or remove lines; it is applied before the860 # code is scanned, but not when the output code is generated. If lines are added861 # 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 pattern866 # basis. Doxygen will compare the file name with each pattern and apply the867 # filter if there is a match. The filters are a list of the form: pattern=filter868 # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how869 # filters are used. If the FILTER_PATTERNS tag is empty or if none of the870 # 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 using875 # INPUT_FILTER ) will also be used to filter the input files that are used for876 # 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 = NO880 881 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file882 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and883 # it is also possible to disable source filtering for a specific pattern using884 # *.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 that890 # is part of the input, its contents will be placed on the main page891 # (index.html). This can be useful if you have a project on for instance GitHub892 # 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 browsing898 #---------------------------------------------------------------------------899 900 # If the SOURCE_BROWSER tag is set to YES then a list of source files will be901 # 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 that904 # also VERBATIM_HEADERS is set to NO.905 # The default value is: NO.906 907 SOURCE_BROWSER = YES908 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 = NO914 915 # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any916 # special comment blocks from generated source code fragments. Normal C, C++ and917 # Fortran comments will always remain visible.918 # The default value is: YES.919 920 STRIP_CODE_COMMENTS = NO921 922 # If the REFERENCED_BY_RELATION tag is set to YES then for each documented923 # function all documented functions referencing it will be listed.924 # The default value is: NO.925 926 REFERENCED_BY_RELATION = YES927 928 # If the REFERENCES_RELATION tag is set to YES then for each documented function929 # all documented entities called/used by that function will be listed.930 # The default value is: NO.931 932 REFERENCES_RELATION = YES933 934 # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set935 # to YES, then the hyperlinks from functions in REFERENCES_RELATION and936 # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will937 # link to the documentation.938 # The default value is: YES.939 940 REFERENCES_LINK_SOURCE = YES941 942 # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the943 # source code will show a tooltip with additional information such as prototype,944 # brief description and links to the definition and documentation. Since this945 # will make the HTML file larger and loading of large files a bit slower, you946 # 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 = YES951 952 # If the USE_HTAGS tag is set to YES then the references to source code will953 # point to the HTML generated by the htags(1) tool instead of doxygen built-in954 # source browser. The htags tool is part of GNU's global source tagging system955 # (see http://www.gnu.org/software/global/global.html). You will need version956 # 4.8.6 or higher.957 #958 # To use it do the following:959 # - Install the latest version of global960 # - Enable SOURCE_BROWSER and USE_HTAGS in the config file961 # - Make sure the INPUT points to the root of the source tree962 # - Run doxygen as normal963 #964 # Doxygen will invoke htags (and that will in turn invoke gtags), so these965 # 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 to968 # 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 = NO973 974 # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a975 # verbatim copy of the header file for each class for which an include is976 # specified. Set to NO to disable this.977 # See also: Section \class.978 # The default value is: YES.979 980 VERBATIM_HEADERS = YES981 982 # If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the983 # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the984 # cost of reduced performance. This can be particularly helpful with template985 # rich C++ code for which doxygen's built-in parser lacks the necessary type986 # information.987 # Note: The availability of this option depends on whether or not doxygen was988 # compiled with the --with-libclang option.989 # The default value is: NO.990 991 CLANG_ASSISTED_PARSING = NO992 993 # If clang assisted parsing is enabled you can provide the compiler with command994 # line options that you would normally use when invoking the compiler. Note that995 # the include paths will already be set by doxygen for the files and directories996 # 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 index1003 #---------------------------------------------------------------------------1004 1005 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all1006 # compounds will be generated. Enable this if the project contains a lot of1007 # classes, structs, unions or interfaces.1008 # The default value is: YES.1009 1010 ALPHABETICAL_INDEX = NO1011 1012 # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in1013 # 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 = 51018 1019 # In case all classes in a project start with a common prefix, all classes will1020 # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag1021 # can be used to specify a prefix (or a list of prefixes) that should be ignored1022 # 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 output1029 #---------------------------------------------------------------------------1030 1031 # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output1032 # The default value is: YES.1033 1034 GENERATE_HTML = YES1035 1036 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a1037 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of1038 # it.1039 # The default directory is: html.1040 # This tag requires that the tag GENERATE_HTML is set to YES.1041 1042 HTML_OUTPUT = html1043 1044 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each1045 # 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 = .html1050 1051 # The HTML_HEADER tag can be used to specify a user-defined HTML header file for1052 # each generated HTML page. If the tag is left blank doxygen will generate a1053 # standard header.1054 #1055 # To get valid HTML the header file that includes any scripts and style sheets1056 # 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 a1058 # default header using1059 # doxygen -w html new_header.html new_footer.html new_stylesheet.css1060 # YourConfigFile1061 # 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 normally1063 # uses.1064 # Note: The header is subject to change so you typically have to regenerate the1065 # default header when upgrading to a newer version of doxygen. For a description1066 # 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 each1072 # generated HTML page. If the tag is left blank doxygen will generate a standard1073 # footer. See HTML_HEADER for more information on how to generate a default1074 # footer and what special commands can be used inside the footer. See also1075 # section "Doxygen usage" for information on how to generate the default footer1076 # 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 style1082 # sheet that is used by each HTML page. It can be used to fine-tune the look of1083 # 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 style1085 # sheet that doxygen normally uses.1086 # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as1087 # it is more robust and this tag (HTML_STYLESHEET) will in the future become1088 # 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-defined1094 # cascading style sheets that are included after the standard style sheets1095 # 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 the1097 # 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 last1100 # stylesheet in the list overrules the setting of the previous ones in the1101 # 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 or1107 # other source files which should be copied to the HTML output directory. Note1108 # that these files will be copied to the base HTML output directory. Use the1109 # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these1110 # files. In the HTML_STYLESHEET file, use the file name only. Also note that the1111 # 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. Doxygen1117 # will adjust the colors in the stylesheet and background images according to1118 # this color. Hue is specified as an angle on a colorwheel, see1119 # http://en.wikipedia.org/wiki/Hue for more information. For instance the value1120 # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 3001121 # 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 = 2201126 1127 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors1128 # in the HTML output. For a value of 0 the output will use grayscales only. A1129 # 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 = 1001134 1135 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the1136 # luminance component of the colors in the HTML output. Values below 1001137 # gradually make the output lighter, whereas values above 100 make the output1138 # darker. The value divided by 100 is the actual gamma applied, so 80 represents1139 # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not1140 # 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 = 801145 1146 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML1147 # page will contain the date and time when the page was generated. Setting this1148 # 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 = NO1153 1154 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML1155 # documentation will contain sections that can be hidden and shown after the1156 # 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 = NO1161 1162 # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries1163 # shown in the various tree structured indices initially; the user can expand1164 # and collapse entries dynamically later on. Doxygen will expand the tree to1165 # such a level that at most the specified number of entries are visible (unless1166 # a fully collapsed tree already exceeds this amount). So setting the number of1167 # entries 1 will produce a full collapsed tree by default. 0 is a special value1168 # representing an infinite number of entries and will result in a full expanded1169 # 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 = 1001174 1175 # If the GENERATE_DOCSET tag is set to YES, additional index files will be1176 # generated that can be used as input for Apple's Xcode 3 integrated development1177 # environment (see: http://developer.apple.com/tools/xcode/), introduced with1178 # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a1179 # Makefile in the HTML output directory. Running make will produce the docset in1180 # that directory and running make install will install the docset in1181 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at1182 # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html1183 # 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 = NO1188 1189 # This tag determines the name of the docset feed. A documentation feed provides1190 # an umbrella under which multiple documentation sets from a single provider1191 # (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 documentation1198 # 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.aubio1204 1205 # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify1206 # the documentation publisher. This should be a reverse domain-name style1207 # 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.Maintainer1212 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 = Publisher1218 1219 # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three1220 # additional HTML index files: index.hhp, index.hhc, and index.hhk. The1221 # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop1222 # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on1223 # Windows.1224 #1225 # The HTML Help Workshop contains a compiler that can convert all HTML output1226 # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML1227 # files are now used as the Windows 98 help format, and will replace the old1228 # Windows help format (.hlp) on all Windows platforms in the future. Compressed1229 # HTML files also contain an index, a table of contents, and you can search for1230 # words in the documentation. The HTML workshop also contains a viewer for1231 # 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 = NO1236 1237 # The CHM_FILE tag can be used to specify the file name of the resulting .chm1238 # file. You can add a path in front of the file if the result should not be1239 # 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 path1245 # including file name) of the HTML help compiler ( hhc.exe). If non-empty1246 # 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 = NO1258 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 it1267 # 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 = NO1272 1273 # The TOC_EXPAND flag can be set to YES to add extra items for group members to1274 # 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 = NO1279 1280 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and1281 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that1282 # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help1283 # (.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 = NO1288 1289 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify1290 # the file name of the resulting .qch file. The path specified is relative to1291 # 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 Help1297 # Project output. For more information please see Qt Help Project / Namespace1298 # (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 Qt1305 # Help Project output. For more information please see Qt Help Project / Virtual1306 # 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 = doc1312 1313 # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom1314 # filter to add. For more information please see Qt Help Project / Custom1315 # 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 the1322 # custom filter to add. For more information please see Qt Help Project / Custom1323 # 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 this1330 # 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's1337 # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the1338 # 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 be1344 # generated, together with the HTML files, they form an Eclipse help plugin. To1345 # install this plugin and make it available under the help contents menu in1346 # Eclipse, the contents of the directory containing the HTML and XML files needs1347 # to be copied into the plugins directory of eclipse. The name of the directory1348 # 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 = NO1354 1355 # A unique identifier for the Eclipse help plugin. When installing the plugin1356 # the directory name containing the HTML and XML files should also have this1357 # 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.aubio1362 1363 # If you want full control over the layout of the generated HTML pages it might1364 # be necessary to disable the index and replace it with your own. The1365 # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top1366 # of each HTML page. A value of NO enables the index and the value YES disables1367 # it. Since the tabs in the index contain the same information as the navigation1368 # 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 = NO1373 1374 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index1375 # structure should be generated to display hierarchical information. If the tag1376 # value is set to YES, a side panel will be generated containing a tree-like1377 # index structure (just like the one that is generated for HTML Help). For this1378 # to work a browser that supports JavaScript, DHTML, CSS and frames is required1379 # (i.e. any modern browser). Windows users are probably better off using the1380 # HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can1381 # further fine-tune the look of the index. As an example, the default style1382 # sheet generated by doxygen has an example that shows how to put an image at1383 # the root of the tree instead of the PROJECT_NAME. Since the tree basically has1384 # the same information as the tab index, you could consider setting1385 # 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 = NO1390 1391 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that1392 # 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 appearing1395 # 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 = 41400 1401 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used1402 # 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 = 2501407 1408 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to1409 # 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 = NO1414 1415 # Use this tag to change the font size of LaTeX formulas included as images in1416 # the HTML documentation. When you change the font size after a successful1417 # doxygen run you need to manually remove any form_*.png images from the HTML1418 # 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 = 101423 1424 # Use the FORMULA_TRANPARENT tag to determine whether or not the images1425 # generated for formulas are transparent PNGs. Transparent PNGs are not1426 # 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 in1429 # 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 = YES1434 1435 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see1436 # http://www.mathjax.org) which uses client side Javascript for the rendering1437 # instead of using prerendered bitmaps. Use this if you do not have LaTeX1438 # installed or if you want to formulas look prettier in the HTML output. When1439 # enabled you may also need to install MathJax separately and configure the path1440 # 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 = YES1445 1446 # When MathJax is enabled you can set the default output format to be used for1447 # 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 best1450 # 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-CSS1455 1456 # When MathJax is enabled you need to specify the location relative to the HTML1457 # output directory using the MATHJAX_RELPATH option. The destination directory1458 # should contain the MathJax.js script. For instance, if the mathjax directory1459 # is located at the same level as the HTML output directory, then1460 # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax1461 # Content Delivery Network so you can quickly see the result without installing1462 # MathJax. However, it is strongly recommended to install a local copy of1463 # 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 = https://cdn.mathjax.org/mathjax/latest1468 1469 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax1470 # extension names that should be enabled during MathJax rendering. For example1471 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols1472 # 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 pieces1477 # of code that will be used on startup of the MathJax code. See the MathJax site1478 # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an1479 # 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 for1485 # the HTML output. The underlying search engine uses javascript and DHTML and1486 # should work on any modern browser. Note that when using HTML help1487 # (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, then1490 # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to1491 # search using the keyboard; to jump to the search box use <access key> + S1492 # (what the <access key> is depends on the OS and browser, but it is typically1493 # <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down1494 # key> to jump into the search results window, the results can be navigated1495 # using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel1496 # the search. The filter options can be selected when the cursor is inside the1497 # 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 filter1499 # option.1500 # The default value is: YES.1501 # This tag requires that the tag GENERATE_HTML is set to YES.1502 1503 SEARCHENGINE = YES1504 1505 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be1506 # implemented using a web server instead of a web client using Javascript. There1507 # are two flavors of web server based searching depending on the EXTERNAL_SEARCH1508 # setting. When disabled, doxygen will generate a PHP script for searching and1509 # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing1510 # and searching needs to be provided by external tools. See the section1511 # "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 = NO1516 1517 # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP1518 # script for searching. Instead the search results are written to an XML file1519 # which needs to be processed by an external indexer. Doxygen will invoke an1520 # external search engine pointed to by the SEARCHENGINE_URL option to obtain the1521 # search results.1522 #1523 # Doxygen ships with an example indexer ( doxyindexer) and search engine1524 # (doxysearch.cgi) which are based on the open source search engine library1525 # 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 = NO1532 1533 # The SEARCHENGINE_URL should point to a search engine hosted by a web server1534 # which will return the search results when EXTERNAL_SEARCH is enabled.1535 #1536 # Doxygen ships with an example indexer ( doxyindexer) and search engine1537 # (doxysearch.cgi) which are based on the open source search engine library1538 # Xapian (see: http://xapian.org/). See the section "External Indexing and1539 # 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 unindexed1545 # search data is written to a file for indexing by an external tool. With the1546 # 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.xml1551 1552 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the1553 # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is1554 # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple1555 # 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 doxygen1561 # projects other than the one defined by this configuration file, but that are1562 # all added to the same external search index. Each project needs to have a1563 # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of1564 # 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 output1572 #---------------------------------------------------------------------------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 = NO1578 1579 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a1580 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of1581 # it.1582 # The default directory is: latex.1583 # This tag requires that the tag GENERATE_LATEX is set to YES.1584 1585 LATEX_OUTPUT = latex1586 1587 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be1588 # invoked.1589 #1590 # Note that when enabling USE_PDFLATEX this option is only used for generating1591 # bitmaps for formulas in the HTML output, but not in the Makefile that is1592 # 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 = latex1597 1598 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate1599 # 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 = makeindex1604 1605 # If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX1606 # documents. This may be useful for small projects and may help to save some1607 # 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 = NO1612 1613 # The PAPER_TYPE tag can be used to set the paper type that is used by the1614 # printer.1615 # Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x1616 # 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 = a41621 1622 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names1623 # that should be included in the LaTeX output. To get the times font for1624 # instance you can specify1625 # EXTRA_PACKAGES=times1626 # 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 the1632 # generated LaTeX document. The header should contain everything until the first1633 # chapter. If it is left blank doxygen will generate a standard header. See1634 # section "Doxygen usage" for information on how to let doxygen write the1635 # default header to a separate file.1636 #1637 # Note: Only use a user-defined header if you know what you are doing! The1638 # 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 to1642 # 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 the1648 # generated LaTeX document. The footer should contain everything after the last1649 # chapter. If it is left blank doxygen will generate a standard footer. See1650 # LATEX_HEADER for more information on how to generate a default footer and what1651 # 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 or1659 # other source files which should be copied to the LATEX_OUTPUT output1660 # directory. Note that the files will be copied as-is; there are no commands or1661 # 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 is1667 # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will1668 # contain links (just like the HTML output) instead of page references. This1669 # 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 = YES1674 1675 # If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate1676 # the PDF file directly from the LaTeX files. Set this option to YES to get a1677 # 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 = YES1682 1683 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode1684 # command to the generated LaTeX files. This will instruct LaTeX to keep running1685 # if errors occur, instead of asking the user for help. This option is also used1686 # 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 = NO1691 1692 # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the1693 # 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 = NO1698 1699 # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source1700 # code with syntax highlighting in the LaTeX output.1701 #1702 # Note that which sources are shown also depends on other settings such as1703 # 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 = NO1708 1709 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the1710 # bibliography, e.g. plainnat, or ieeetr. See1711 # 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 = plain1716 1717 #---------------------------------------------------------------------------1718 # Configuration options related to the RTF output1719 #---------------------------------------------------------------------------1720 1721 # If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The1722 # RTF output is optimized for Word 97 and may not look too pretty with other RTF1723 # readers/editors.1724 # The default value is: NO.1725 1726 GENERATE_RTF = NO1727 1728 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a1729 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of1730 # it.1731 # The default directory is: rtf.1732 # This tag requires that the tag GENERATE_RTF is set to YES.1733 1734 RTF_OUTPUT = rtf1735 1736 # If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF1737 # documents. This may be useful for small projects and may help to save some1738 # 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 = NO1743 1744 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will1745 # contain hyperlink fields. The RTF file will contain links (just like the HTML1746 # output) instead of page references. This makes the output suitable for online1747 # browsing using Word or some other Word compatible readers that support those1748 # 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 = NO1755 1756 # Load stylesheet definitions from file. Syntax is similar to doxygen's config1757 # 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 the1761 # 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 is1767 # similar to doxygen's config file. A template extensions file can be generated1768 # 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 output1775 #---------------------------------------------------------------------------1776 1777 # If the GENERATE_MAN tag is set to YES doxygen will generate man pages for1778 # classes and files.1779 # The default value is: NO.1780 1781 GENERATE_MAN = NO1782 1783 # The MAN_OUTPUT tag is used to specify where the man pages will be put. If a1784 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of1785 # it. A directory man3 will be created inside the directory specified by1786 # 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 = man1791 1792 # The MAN_EXTENSION tag determines the extension that is added to the generated1793 # man pages. In case the manual section does not start with a number, the number1794 # 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is1795 # optional.1796 # The default value is: .3.1797 # This tag requires that the tag GENERATE_MAN is set to YES.1798 1799 MAN_EXTENSION = .31800 1801 # The MAN_SUBDIR tag determines the name of the directory created within1802 # MAN_OUTPUT in which the man pages are placed. If defaults to man followed by1803 # 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 it1809 # will generate one additional man file for each entity documented in the real1810 # man page(s). These additional files only source the real man page, but without1811 # 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 = NO1816 1817 #---------------------------------------------------------------------------1818 # Configuration options related to the XML output1819 #---------------------------------------------------------------------------1820 1821 # If the GENERATE_XML tag is set to YES doxygen will generate an XML file that1822 # captures the structure of the code including all documentation.1823 # The default value is: NO.1824 1825 GENERATE_XML = NO1826 1827 # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a1828 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of1829 # it.1830 # The default directory is: xml.1831 # This tag requires that the tag GENERATE_XML is set to YES.1832 1833 XML_OUTPUT = xml1834 1835 # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program1836 # listings (including syntax highlighting and cross-referencing information) to1837 # the XML output. Note that enabling this will significantly increase the size1838 # 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 = YES1843 1844 #---------------------------------------------------------------------------1845 # Configuration options related to the DOCBOOK output1846 #---------------------------------------------------------------------------1847 1848 # If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files1849 # that can be used to generate PDF.1850 # The default value is: NO.1851 1852 GENERATE_DOCBOOK = NO1853 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 in1856 # 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 = docbook1861 1862 # If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the1863 # program listings (including syntax highlighting and cross-referencing1864 # information) to the DOCBOOK output. Note that enabling this will significantly1865 # 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 = NO1870 1871 #---------------------------------------------------------------------------1872 # Configuration options for the AutoGen Definitions output1873 #---------------------------------------------------------------------------1874 1875 # If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen1876 # Definitions (see http://autogen.sf.net) file that captures the structure of1877 # the code including all documentation. Note that this feature is still1878 # experimental and incomplete at the moment.1879 # The default value is: NO.1880 1881 GENERATE_AUTOGEN_DEF = NO1882 1883 #---------------------------------------------------------------------------1884 # Configuration options related to the Perl module output1885 #---------------------------------------------------------------------------1886 1887 # If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module1888 # 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 = NO1894 1895 # If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary1896 # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI1897 # 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 = NO1902 1903 # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely1904 # formatted so it can be parsed by a human reader. This is useful if you want to1905 # understand what is going on. On the other hand, if this tag is set to NO the1906 # size of the Perl module output will be much smaller and Perl will parse it1907 # 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 = YES1912 1913 # The names of the make variables in the generated doxyrules.make file are1914 # prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful1915 # so different doxyrules.make files included by the same Makefile don't1916 # 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 preprocessor1923 #---------------------------------------------------------------------------1924 1925 # If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all1926 # C-preprocessor directives found in the sources and include files.1927 # The default value is: YES.1928 1929 ENABLE_PREPROCESSING = YES1930 1931 # If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names1932 # in the source code. If set to NO only conditional compilation will be1933 # performed. Macro expansion can be done in a controlled way by setting1934 # 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 = NO1939 1940 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then1941 # the macro expansion is limited to the macros specified with the PREDEFINED and1942 # 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 = NO1947 1948 # If the SEARCH_INCLUDES tag is set to YES the includes files in the1949 # 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 = YES1954 1955 # The INCLUDE_PATH tag can be used to specify one or more directories that1956 # contain include files that are not input files but should be processed by the1957 # 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 wildcard1963 # patterns (like *.h and *.hpp) to filter out the header-files in the1964 # directories. If left blank, the patterns specified with FILE_PATTERNS will be1965 # used.1966 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.1967 1968 10 INCLUDE_FILE_PATTERNS = 1969 1970 # The PREDEFINED tag can be used to specify one or more macro names that are1971 # 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 or1973 # 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 or1975 # 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 this1981 # tag can be used to specify a list of macro names that should be expanded. The1982 # macro definition that is found in the sources will be used. Use the PREDEFINED1983 # tag if you want to use a different macro definition that overrules the1984 # 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 will1990 # remove all references to function-like macros that are alone on a line, have1991 # an all uppercase name, and do not end with a semicolon. Such function macros1992 # are typically used for boiler-plate code, and will confuse the parser if not1993 # 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 = YES1998 1999 #---------------------------------------------------------------------------2000 # Configuration options related to external references2001 #---------------------------------------------------------------------------2002 2003 # The TAGFILES tag can be used to specify one or more tag files. For each tag2004 # file the location of the external documentation should be added. The format of2005 # 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 the2010 # section "Linking to external documentation" for more information about the use2011 # of tag files.2012 # Note: Each tag file must have a unique name (where the name does NOT include2013 # the path). If a tag file is not located in the directory in which doxygen is2014 # 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 a2019 # tag file that is based on the input files it reads. See section "Linking to2020 # 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 the2025 # class index. If set to NO only the inherited external classes will be listed.2026 # The default value is: NO.2027 2028 ALLEXTERNALS = NO2029 2030 # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in2031 # the modules index. If set to NO, only the current project's groups will be2032 # listed.2033 # The default value is: YES.2034 2035 EXTERNAL_GROUPS = YES2036 2037 # If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in2038 # the related pages index. If set to NO, only the current project's pages will2039 # be listed.2040 # The default value is: YES.2041 2042 EXTERNAL_PAGES = YES2043 2044 # The PERL_PATH should be the absolute path and name of the perl script2045 # 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/perl2049 2050 #---------------------------------------------------------------------------2051 # Configuration options related to the dot tool2052 #---------------------------------------------------------------------------2053 2054 # If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram2055 # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to2056 # NO turns the diagrams off. Note that this option also works with HAVE_DOT2057 # disabled, but it is recommended to install and use dot, since it yields more2058 # powerful graphs.2059 # The default value is: YES.2060 2061 CLASS_DIAGRAMS = YES2062 2063 # You can define message sequence charts within doxygen comments using the \msc2064 # command. Doxygen will then run the mscgen tool (see:2065 # http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the2066 # documentation. The MSCGEN_PATH tag allows you to specify the directory where2067 # the mscgen tool resides. If left empty the tool is assumed to be found in the2068 # default search path.2069 2070 MSCGEN_PATH =2071 2072 # You can include diagrams made with dia in doxygen documentation. Doxygen will2073 # then run dia to produce the diagram and insert it in the documentation. The2074 # 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 inheritance2080 # and usage relations if the target is undocumented or is not a class.2081 # The default value is: YES.2082 2083 11 HIDE_UNDOC_RELATIONS = NO 2084 2085 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is2086 # available from the path. This tool is part of Graphviz (see:2087 # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent2088 # Bell Labs. The other options in this section have no effect if this option is2089 # set to NO2090 # The default value is: YES.2091 2092 HAVE_DOT = NO2093 2094 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed2095 # to run in parallel. When set to 0 doxygen will base this on the number of2096 # processors available in the system. You can set it explicitly to a value2097 # larger than 0 to get control over the balance between CPU load and processing2098 # 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 = 02103 2104 # When you want a differently looking font in the dot files that doxygen2105 # generates you can specify the font name using DOT_FONTNAME. You need to make2106 # sure dot is able to find the font, which can be done by putting it in a2107 # standard location or by setting the DOTFONTPATH environment variable or by2108 # 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 of2115 # 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 = 102120 2121 # By default doxygen will tell dot to use the default font as specified with2122 # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set2123 # 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 for2129 # 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 = YES2135 2136 # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a2137 # graph for each documented class showing the direct and indirect implementation2138 # dependencies (inheritance, containment, and class references variables) of the2139 # 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 = YES2144 2145 # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for2146 # 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 = YES2151 2152 # If the UML_LOOK tag is set to YES doxygen will generate inheritance and2153 # collaboration diagrams in a style similar to the OMG's Unified Modeling2154 # Language.2155 # The default value is: NO.2156 # This tag requires that the tag HAVE_DOT is set to YES.2157 2158 UML_LOOK = NO2159 2160 # If the UML_LOOK tag is enabled, the fields and methods are shown inside the2161 # class node. If there are many fields or methods and many nodes the graph may2162 # become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the2163 # number of items for each type to make the size more manageable. Set this to 02164 # for no limit. Note that the threshold may be exceeded by 50% before the limit2165 # 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 to2167 # 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 = 102172 2173 # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and2174 # collaboration graphs will show the relations between templates and their2175 # instances.2176 # The default value is: NO.2177 # This tag requires that the tag HAVE_DOT is set to YES.2178 2179 TEMPLATE_RELATIONS = NO2180 2181 # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to2182 # YES then doxygen will generate a graph for each documented file showing the2183 # direct and indirect include dependencies of the file with other documented2184 # files.2185 # The default value is: YES.2186 # This tag requires that the tag HAVE_DOT is set to YES.2187 2188 INCLUDE_GRAPH = YES2189 2190 # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are2191 # set to YES then doxygen will generate a graph for each documented file showing2192 # the direct and indirect include dependencies of the file with other documented2193 # 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 = YES2198 2199 # If the CALL_GRAPH tag is set to YES then doxygen will generate a call2200 # 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 selected2204 # 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 = NO2209 2210 # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller2211 # 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 selected2215 # 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 = NO2220 2221 # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical2222 # 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 = YES2227 2228 # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the2229 # dependencies a directory has on other directories in a graphical way. The2230 # dependency relations are determined by the #include relations between the2231 # 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 = YES2236 2237 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images2238 # generated by dot.2239 # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order2240 # to make the SVG files visible in IE 9+ (other browsers do not have this2241 # 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 = png2249 2250 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to2251 # enable generation of interactive SVG images that allow zooming and panning.2252 #2253 # Note that this requires a modern browser other than Internet Explorer. Tested2254 # 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 make2256 # 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 = NO2261 2262 # The DOT_PATH tag can be used to specify the path where the dot tool can be2263 # 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 that2269 # contain dot files that are included in the documentation (see the \dotfile2270 # 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 that2276 # contain msc files that are included in the documentation (see the \mscfile2277 # command).2278 2279 MSCFILE_DIRS =2280 2281 # The DIAFILE_DIRS tag can be used to specify one or more directories that2282 # contain dia files that are included in the documentation (see the \diafile2283 # command).2284 2285 DIAFILE_DIRS =2286 2287 # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the2288 # path where java can find the plantuml.jar file. If left blank, it is assumed2289 # PlantUML is not used or called during a preprocessing step. Doxygen will2290 # generate a warning when it encounters a \startuml command in this case and2291 # 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 nodes2297 # that will be shown in the graph. If the number of nodes in a graph becomes2298 # larger than this value, doxygen will truncate the graph, which is visualized2299 # by representing a node as a red box. Note that doxygen if the number of direct2300 # children of the root node in a graph is already larger than2301 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that2302 # 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 = 502307 2308 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs2309 # generated by dot. A depth value of 3 means that only nodes reachable from the2310 # root by following a path via at most 3 edges will be shown. Nodes that lay2311 # further from the root node will be omitted. Note that setting this option to 12312 # or 2 may greatly reduce the computation time needed for large code bases. Also2313 # note that the size of a graph can be further restricted by2314 # 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 = 02319 2320 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent2321 # background. This is disabled by default, because dot on Windows does not seem2322 # to support this out of the box.2323 #2324 # Warning: Depending on the platform used, enabling this option may lead to2325 # badly anti-aliased labels on the edges of a graph (i.e. they become hard to2326 # read).2327 # The default value is: NO.2328 # This tag requires that the tag HAVE_DOT is set to YES.2329 2330 DOT_TRANSPARENT = NO2331 2332 # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output2333 # files in one run (i.e. multiple -o and -T options on the command line). This2334 # makes dot run faster, but since only newer versions of dot (>1.8.10) support2335 # 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 = NO2340 2341 # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page2342 # explaining the meaning of the various boxes and arrows in the dot generated2343 # graphs.2344 # The default value is: YES.2345 # This tag requires that the tag HAVE_DOT is set to YES.2346 2347 GENERATE_LEGEND = YES2348 2349 # If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot2350 # 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
rfbafd2c rb201912 63 63 found in the results. 64 64 65 Copyright66 =========67 68 Copyright © 2003-2016 Paul Brossier <piem@aubio.org>69 70 License71 =======72 73 aubio is a `free <http://www.debian.org/intro/free>`_ and `open source74 <http://www.opensource.org/docs/definition.php>`_ software; **you** can75 redistribute it and/or modify it under the terms of the `GNU76 <https://www.gnu.org/>`_ `General Public License77 <https://www.gnu.org/licenses/gpl.html>`_ as published by the `Free Software78 Foundation <https://fsf.org>`_, either version 3 of the License, or (at your79 option) any later version.80 81 .. note::82 83 aubio is not MIT or BSD licensed. Contact the author if you need it in your84 commercial product.85 86 65 Content 87 66 ======= … … 94 73 cli 95 74 develop 75 about -
doc/statuslinks.rst
rfbafd2c rb201912 18 18 :alt: Documentation status 19 19 20 .. image:: https://img.shields.io/github/commits-since/aubio/aubio/0.4. 4.svg?maxAge=259200020 .. image:: https://img.shields.io/github/commits-since/aubio/aubio/0.4.5.svg?maxAge=2592000 21 21 :target: https://github.com/aubio/aubio 22 22 :alt: Commits since last release -
doc/web.cfg
rfbafd2c rb201912 39 39 # control system is used. 40 40 41 PROJECT_NUMBER = " 0.4.5~alpha"41 PROJECT_NUMBER = "latest" 42 42 43 43 # Using the PROJECT_BRIEF tag one can provide an optional one line description -
examples/aubioonset.c
rfbafd2c rb201912 44 44 aubio_wavetable_stop ( wavetable ); 45 45 } 46 if (mix_input) 46 if (mix_input) { 47 47 aubio_wavetable_do (wavetable, ibuf, obuf); 48 else48 } else { 49 49 aubio_wavetable_do (wavetable, obuf, obuf); 50 } 50 51 } 51 52 … … 62 63 examples_common_init(argc,argv); 63 64 64 verbmsg ("using source: %s at %dHz\n", source_uri, samplerate);65 verbmsg ("onset method: %s, ", onset_method);66 verbmsg ("buffer_size: %d, ", buffer_size);67 verbmsg ("hop_size: %d, ", hop_size);68 verbmsg ("silence: %f, ", silence_threshold);69 verbmsg ("threshold: %f\n", onset_threshold);70 71 65 o = new_aubio_onset (onset_method, buffer_size, hop_size, samplerate); 72 66 if (o == NULL) { ret = 1; goto beach; } … … 77 71 if (onset_minioi != 0.) 78 72 aubio_onset_set_minioi_s (o, onset_minioi); 73 74 verbmsg ("using source: %s at %dHz\n", source_uri, samplerate); 75 verbmsg ("onset method: %s, ", onset_method); 76 verbmsg ("buffer_size: %d, ", buffer_size); 77 verbmsg ("hop_size: %d, ", hop_size); 78 verbmsg ("silence: %f, ", aubio_onset_get_silence(o)); 79 verbmsg ("threshold: %f, ", aubio_onset_get_threshold(o)); 80 verbmsg ("awhitening: %f, ", aubio_onset_get_awhitening(o)); 81 verbmsg ("compression: %f\n", aubio_onset_get_compression(o)); 79 82 80 83 onset = new_fvec (1); -
examples/aubiotrack.c
rfbafd2c rb201912 47 47 aubio_wavetable_stop ( wavetable ); 48 48 } 49 if (mix_input) 49 if (mix_input) { 50 50 aubio_wavetable_do (wavetable, ibuf, obuf); 51 else51 } else { 52 52 aubio_wavetable_do (wavetable, obuf, obuf); 53 } 53 54 } 54 55 -
python/lib/gen_external.py
rfbafd2c rb201912 38 38 'source_avcodec', 39 39 'source_wavread', 40 #'sampler',41 40 'audio_unit', 41 'spectral_whitening', 42 42 'timestretch', # TODO fix parsing of uint_t *read in _do 43 43 'sampler', # TODO fix parsing of uint_t *read in _do -
python/lib/moresetuptools.py
rfbafd2c rb201912 120 120 ext.define_macros += [('HAVE_WAVWRITE', 1)] 121 121 ext.define_macros += [('HAVE_WAVREAD', 1)] 122 # TODO: 123 # add cblas122 123 # TODO: add cblas 124 124 if 0: 125 125 ext.libraries += ['cblas'] … … 134 134 else: 135 135 print("Info: using system aubio " + aubio_version + " found in " + ' '.join(ext.library_dirs)) 136 137 def add_libav_on_win(ext): 138 """ no pkg-config on windows, simply assume these libs are available """ 139 ext.libraries += ['avformat', 'avutil', 'avcodec', 'swresample'] 140 for define_macro in ['HAVE_LIBAV', 'HAVE_SWRESAMPLE']: 141 ext.define_macros += [(define_macro, 1)] 136 142 137 143 class CleanGenerated(distutils.command.clean.clean): … … 178 184 # check for external dependencies 179 185 add_external_deps(extension, usedouble=enable_double) 186 # force adding libav on windows 187 if os.name == 'nt' and ('WITH_LIBAV' in os.environ \ 188 or 'CONDA_PREFIX' in os.environ): 189 add_libav_on_win(extension) 180 190 # add libaubio sources and look for optional deps with pkg-config 181 191 add_local_aubio_sources(extension) -
python/tests/test_onset.py
rfbafd2c rb201912 20 20 21 21 def test_get_delay(self): 22 assert_equal (self.o.get_delay(), int(4.3 * self.o.hop_size))22 self.assertGreater(self.o.get_delay(), 0) 23 23 24 24 def test_get_delay_s(self): 25 assert_almost_equal (self.o.get_delay_s(), self.o.get_delay() / float(self.samplerate))25 self.assertGreater(self.o.get_delay_s(), 0.) 26 26 27 27 def test_get_delay_ms(self): 28 assert_almost_equal (self.o.get_delay_ms(), self.o.get_delay() * 1000. / self.samplerate, 5)28 self.assertGreater(self.o.get_delay_ms(), 0.) 29 29 30 30 def test_get_minioi(self): 31 assert_almost_equal (self.o.get_minioi(), 0.02 * self.samplerate)31 self.assertGreater(self.o.get_minioi(), 0) 32 32 33 33 def test_get_minioi_s(self): 34 assert_almost_equal (self.o.get_minioi_s(), 0.02)34 self.assertGreater(self.o.get_minioi_s(), 0.) 35 35 36 36 def test_get_minioi_ms(self): 37 assert_equal (self.o.get_minioi_ms(), 20.)37 self.assertGreater(self.o.get_minioi_ms(), 0.) 38 38 39 39 def test_get_threshold(self): 40 assert_almost_equal (self.o.get_threshold(), 0.3)40 self.assertGreater(self.o.get_threshold(), 0.) 41 41 42 42 def test_set_delay(self): -
scripts/build_mingw
rfbafd2c rb201912 11 11 set -x 12 12 13 source VERSION 14 VERSION="$AUBIO_MAJOR_VERSION.$AUBIO_MINOR_VERSION.$AUBIO_PATCH_VERSION" 15 VERSION+="$AUBIO_VERSION_STATUS" 13 python this_version.py -v 14 VERSION=`python $PWD/this_version.py -v` 16 15 17 16 FFMPEG_BUILDS_URL="https://ffmpeg.zeranoe.com/builds" 18 FFMPEG_DEFAULT="20170 315-6c4665d"17 FFMPEG_DEFAULT="20170404-1229007" 19 18 20 19 # define some default CFLAGS … … 80 79 CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \ 81 80 ./waf distclean configure build install $WAFOPTS_TGT --testcmd='echo %s' 81 # fix dll location (see https://github.com/waf-project/waf/issues/1860) 82 mv $DESTDIR/lib/libaubio-5.dll $DESTDIR/bin 83 # generate def file (see https://github.com/aubio/aubio/issues/97) 84 ( echo -e "EXPORTS"; $NM $DESTDIR/bin/libaubio-5.dll | grep T\ | \ 85 egrep "(aubio|fvec|cvec|lvec|fmat)" | sed 's/^.* T _\?//' ) \ 86 > $DESTDIR/bin/libaubio-5.def 82 87 zip -r $DESTDIR.zip `basename $DESTDIR` 83 88 rm -rf $DESTDIR … … 88 93 TARGET=win32 89 94 export CC=i686-w64-mingw32-gcc 95 export NM=i686-w64-mingw32-nm 90 96 build_mingw 91 97 } … … 94 100 TARGET=win64 95 101 export CC=x86_64-w64-mingw32-gcc 102 export NM=x86_64-w64-mingw32-nm 96 103 build_mingw 97 104 } -
src/aubio.h
rfbafd2c rb201912 188 188 #include "spectral/mfcc.h" 189 189 #include "spectral/specdesc.h" 190 #include "spectral/awhitening.h" 190 191 #include "spectral/tss.h" 191 192 #include "pitch/pitch.h" -
src/cvec.c
rfbafd2c rb201912 140 140 cvec_phas_zeros(s); 141 141 } 142 143 void cvec_logmag(cvec_t *s, smpl_t lambda) { 144 uint_t j; 145 for (j=0; j< s->length; j++) { 146 s->norm[j] = LOG(lambda * s->norm[j] + 1); 147 } 148 } -
src/cvec.h
rfbafd2c rb201912 231 231 void cvec_zeros(cvec_t *s); 232 232 233 /** take logarithmic magnitude 234 235 \param s input cvec to compress 236 \param lambda value to use for normalisation 237 238 \f$ S_k = log( \lambda * S_k + 1 ) \f$ 239 240 */ 241 void cvec_logmag(cvec_t *s, smpl_t lambda); 242 233 243 #ifdef __cplusplus 234 244 } -
src/io/source_avcodec.c
rfbafd2c rb201912 43 43 44 44 // backward compatibility with libavcodec55 45 #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57,0,0) 46 #define HAVE_AUBIO_LIBAVCODEC_DEPRECATED 1 47 #endif 48 45 49 #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,28,1) 46 #warning "libavcodec55 is deprecated" 47 #define HAVE_AUBIO_LIBAVCODEC_DEPRECATED 1 50 #warning "libavcodec < 56 is deprecated" 48 51 #define av_frame_alloc avcodec_alloc_frame 49 52 #define av_frame_free avcodec_free_frame … … 117 120 aubio_source_avcodec_t * new_aubio_source_avcodec(const char_t * path, uint_t samplerate, uint_t hop_size) { 118 121 aubio_source_avcodec_t * s = AUBIO_NEW(aubio_source_avcodec_t); 122 AVFormatContext *avFormatCtx = s->avFormatCtx; 123 AVCodecContext *avCodecCtx = s->avCodecCtx; 124 AVFrame *avFrame = s->avFrame; 125 AVDictionary *streamopts = 0; 126 sint_t selected_stream = -1; 127 #if FF_API_LAVF_AVCTX 128 AVCodecParameters *codecpar; 129 #endif 130 AVCodec *codec; 131 uint_t i; 119 132 int err; 120 133 if (path == NULL) { … … 150 163 151 164 // try opening the file and get some info about it 152 AVFormatContext *avFormatCtx = s->avFormatCtx;153 AVDictionary *streamopts = 0;154 165 if (s->has_network_url) { 155 166 if (av_dict_set(&streamopts, "timeout", "1000000", 0)) { // in microseconds … … 187 198 188 199 // look for the first audio stream 189 uint_t i;190 sint_t selected_stream = -1;191 200 for (i = 0; i < avFormatCtx->nb_streams; i++) { 192 201 #if FF_API_LAVF_AVCTX … … 210 219 s->selected_stream = selected_stream; 211 220 212 AVCodecContext *avCodecCtx = s->avCodecCtx;213 221 #if FF_API_LAVF_AVCTX 214 AVCodecParameters *codecpar = avFormatCtx->streams[selected_stream]->codecpar;222 codecpar = avFormatCtx->streams[selected_stream]->codecpar; 215 223 if (codecpar == NULL) { 216 224 AUBIO_ERR("source_avcodec: Could not find decoder for %s", s->path); 217 225 goto beach; 218 226 } 219 AVCodec *codec = avcodec_find_decoder(codecpar->codec_id);227 codec = avcodec_find_decoder(codecpar->codec_id); 220 228 221 229 /* Allocate a codec context for the decoder */ … … 228 236 #else 229 237 avCodecCtx = avFormatCtx->streams[selected_stream]->codec; 230 AVCodec *codec = avcodec_find_decoder(avCodecCtx->codec_id);238 codec = avcodec_find_decoder(avCodecCtx->codec_id); 231 239 #endif 232 240 if (codec == NULL) { … … 272 280 } 273 281 274 AVFrame *avFrame = s->avFrame;275 282 avFrame = av_frame_alloc(); 276 283 if (!avFrame) { … … 313 320 // create or reset resampler to/from mono/multi-channel 314 321 if ( (multi != s->multi) || (s->avr == NULL) ) { 322 int err; 315 323 int64_t input_layout = av_get_default_channel_layout(s->input_channels); 316 324 uint_t output_channels = multi ? s->input_channels : 1; … … 336 344 // TODO: use planar? 337 345 //av_opt_set_int(avr, "out_sample_fmt", AV_SAMPLE_FMT_FLTP, 0); 338 int err;339 346 #ifdef HAVE_AVRESAMPLE 340 347 if ( ( err = avresample_open(avr) ) < 0) { … … 368 375 AVFrame *avFrame = s->avFrame; 369 376 AVPacket avPacket = s->avPacket; 370 av_init_packet (&avPacket);371 377 #ifdef HAVE_AVRESAMPLE 372 378 AVAudioResampleContext *avr = s->avr; … … 374 380 SwrContext *avr = s->avr; 375 381 #endif /* HAVE_AVRESAMPLE || HAVE_SWRESAMPLE */ 382 int got_frame = 0; 383 int ret = 0; 384 #ifdef HAVE_AVRESAMPLE 385 int in_linesize = 0; 386 int in_samples = avFrame->nb_samples; 387 int out_linesize = 0; 388 int max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE; 389 int out_samples = 0; 390 #elif defined(HAVE_SWRESAMPLE) 391 int in_samples = avFrame->nb_samples; 392 int max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE / avCodecCtx->channels; 393 int out_samples = 0; 394 #endif /* HAVE_AVRESAMPLE || HAVE_SWRESAMPLE */ 376 395 smpl_t *output = s->output; 396 #ifndef FF_API_LAVF_AVCTX 397 int len = 0; 398 #endif 399 av_init_packet (&avPacket); 377 400 *read_samples = 0; 378 401 … … 393 416 } while (avPacket.stream_index != s->selected_stream); 394 417 395 int got_frame = 0;396 418 #if FF_API_LAVF_AVCTX 397 intret = avcodec_send_packet(avCodecCtx, &avPacket);419 ret = avcodec_send_packet(avCodecCtx, &avPacket); 398 420 if (ret < 0 && ret != AVERROR_EOF) { 399 421 AUBIO_ERR("source_avcodec: error when sending packet for %s\n", s->path); … … 416 438 } 417 439 #else 418 intlen = avcodec_decode_audio4(avCodecCtx, avFrame, &got_frame, &avPacket);440 len = avcodec_decode_audio4(avCodecCtx, avFrame, &got_frame, &avPacket); 419 441 420 442 if (len < 0) { … … 429 451 430 452 #ifdef HAVE_AVRESAMPLE 431 in t in_linesize = 0;453 in_linesize = 0; 432 454 av_samples_get_buffer_size(&in_linesize, avCodecCtx->channels, 433 455 avFrame->nb_samples, avCodecCtx->sample_fmt, 1); 434 in t in_samples = avFrame->nb_samples;435 intout_linesize = 0;436 intmax_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE;437 intout_samples = avresample_convert ( avr,456 in_samples = avFrame->nb_samples; 457 out_linesize = 0; 458 max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE; 459 out_samples = avresample_convert ( avr, 438 460 (uint8_t **)&output, out_linesize, max_out_samples, 439 461 (uint8_t **)avFrame->data, in_linesize, in_samples); 440 462 #elif defined(HAVE_SWRESAMPLE) 441 in t in_samples = avFrame->nb_samples;442 intmax_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE / avCodecCtx->channels;443 intout_samples = swr_convert( avr,463 in_samples = avFrame->nb_samples; 464 max_out_samples = AUBIO_AVCODEC_MAX_BUFFER_SIZE / avCodecCtx->channels; 465 out_samples = swr_convert( avr, 444 466 (uint8_t **)&output, max_out_samples, 445 467 (const uint8_t **)avFrame->data, in_samples); … … 606 628 if (s->avFormatCtx != NULL) { 607 629 avformat_close_input(&s->avFormatCtx); 608 #ifndef HAVE_AUBIO_LIBAVCODEC_DEPRECATED // avoid crash on old libavcodec54609 avformat_free_context(s->avFormatCtx);610 #endif611 630 s->avFormatCtx = NULL; 612 631 } -
src/mathutils.c
rfbafd2c rb201912 290 290 } 291 291 292 void fvec_push(fvec_t *in, smpl_t new_elem) { 293 uint_t i; 294 for (i = 0; i < in->length - 1; i++) { 295 in->data[i] = in->data[i + 1]; 296 } 297 in->data[in->length - 1] = new_elem; 298 } 299 300 void fvec_clamp(fvec_t *in, smpl_t absmax) { 301 uint_t i; 302 for (i = 0; i < in->length; i++) { 303 if (in->data[i] > 0 && in->data[i] > ABS(absmax)) { 304 in->data[i] = absmax; 305 } else if (in->data[i] < 0 && in->data[i] < -ABS(absmax)) { 306 in->data[i] = -absmax; 307 } 308 } 309 } 310 292 311 smpl_t 293 312 aubio_level_lin (const fvec_t * f) -
src/mathutils.h
rfbafd2c rb201912 117 117 */ 118 118 void fvec_ishift (fvec_t * v); 119 120 /** push a new element to the end of a vector, erasing the first element and 121 * sliding all others 122 123 \param in vector to push to 124 \param new_elem new_element to add at the end of the vector 125 126 In numpy words, this is equivalent to: in = np.concatenate([in, [new_elem]])[1:] 127 128 */ 129 void fvec_push(fvec_t *in, smpl_t new_elem); 119 130 120 131 /** compute the sum of all elements of a vector -
src/musicutils.h
rfbafd2c rb201912 157 157 smpl_t aubio_level_detection (const fvec_t * v, smpl_t threshold); 158 158 159 /** clamp the values of a vector within the range [-abs(max), abs(max)] 160 161 \param in vector to clamp 162 \param absmax maximum value over which input vector elements should be clamped 163 164 */ 165 void fvec_clamp(fvec_t *in, smpl_t absmax); 166 159 167 #ifdef __cplusplus 160 168 } -
src/onset/onset.c
rfbafd2c rb201912 24 24 #include "spectral/specdesc.h" 25 25 #include "spectral/phasevoc.h" 26 #include "spectral/awhitening.h" 26 27 #include "onset/peakpicker.h" 27 28 #include "mathutils.h" 28 29 #include "onset/onset.h" 30 31 void aubio_onset_default_parameters (aubio_onset_t *o, const char_t * method); 29 32 30 33 /** structure to store object state */ … … 43 46 uint_t total_frames; /**< total number of frames processed since the beginning */ 44 47 uint_t last_onset; /**< last detected onset location, in frames */ 48 49 uint_t apply_compression; 50 smpl_t lambda_compression; 51 uint_t apply_awhitening; /**< apply adaptive spectral whitening */ 52 aubio_spectral_whitening_t *spectral_whitening; 45 53 }; 46 54 … … 50 58 smpl_t isonset = 0; 51 59 aubio_pvoc_do (o->pv,input, o->fftgrain); 60 /* 61 if (apply_filtering) { 62 } 63 */ 64 if (o->apply_awhitening) { 65 aubio_spectral_whitening_do(o->spectral_whitening, o->fftgrain); 66 } 67 if (o->apply_compression) { 68 cvec_logmag(o->fftgrain, o->lambda_compression); 69 } 52 70 aubio_specdesc_do (o->od, o->fftgrain, o->desc); 53 71 aubio_peakpicker_do(o->pp, o->desc, onset); … … 58 76 isonset = 0; 59 77 } else { 78 // we have an onset 60 79 uint_t new_onset = o->total_frames + (uint_t)ROUND(isonset * o->hop_size); 80 // check if last onset time was more than minioi ago 61 81 if (o->last_onset + o->minioi < new_onset) { 62 //AUBIO_DBG ("accepted detection, marking as onset\n"); 63 o->last_onset = new_onset; 82 // start of file: make sure (new_onset - delay) >= 0 83 if (o->last_onset > 0 && o->delay > new_onset) { 84 isonset = 0; 85 } else { 86 //AUBIO_DBG ("accepted detection, marking as onset\n"); 87 o->last_onset = MAX(o->delay, new_onset); 88 } 64 89 } else { 65 90 //AUBIO_DBG ("doubled onset, not marking as onset\n"); … … 100 125 } 101 126 127 uint_t aubio_onset_set_awhitening (aubio_onset_t *o, uint_t enable) 128 { 129 o->apply_awhitening = enable == 1 ? 1 : 0; 130 return AUBIO_OK; 131 } 132 133 smpl_t aubio_onset_get_awhitening (aubio_onset_t *o) 134 { 135 return o->apply_awhitening; 136 } 137 138 uint_t aubio_onset_set_compression (aubio_onset_t *o, smpl_t lambda) 139 { 140 if (lambda < 0.) { 141 return AUBIO_FAIL; 142 } 143 o->lambda_compression = lambda; 144 o->apply_compression = (o->lambda_compression > 0.) ? 1 : 0; 145 return AUBIO_OK; 146 } 147 148 smpl_t aubio_onset_get_compression (aubio_onset_t *o) 149 { 150 return o->apply_compression ? o->lambda_compression : 0; 151 } 152 102 153 uint_t aubio_onset_set_silence(aubio_onset_t * o, smpl_t silence) { 103 154 o->silence = silence; … … 209 260 o->fftgrain = new_cvec(buf_size); 210 261 o->desc = new_fvec(1); 211 212 /* set some default parameter */ 213 aubio_onset_set_threshold (o, 0.3); 214 aubio_onset_set_delay(o, 4.3 * hop_size); 215 aubio_onset_set_minioi_ms(o, 20.); 216 aubio_onset_set_silence(o, -70.); 262 o->spectral_whitening = new_aubio_spectral_whitening(buf_size, hop_size, samplerate); 217 263 218 264 /* initialize internal variables */ 219 o->last_onset = 0; 220 o->total_frames = 0; 265 aubio_onset_set_default_parameters (o, onset_mode); 266 267 aubio_onset_reset(o); 221 268 return o; 222 269 … … 229 276 } 230 277 278 void aubio_onset_reset (aubio_onset_t *o) { 279 o->last_onset = 0; 280 o->total_frames = 0; 281 } 282 283 uint_t aubio_onset_set_default_parameters (aubio_onset_t * o, const char_t * onset_mode) 284 { 285 uint_t ret = AUBIO_OK; 286 /* set some default parameter */ 287 aubio_onset_set_threshold (o, 0.3); 288 aubio_onset_set_delay (o, 4.3 * o->hop_size); 289 aubio_onset_set_minioi_ms (o, 50.); 290 aubio_onset_set_silence (o, -70.); 291 // disable spectral whitening 292 aubio_onset_set_awhitening (o, 0); 293 // disable logarithmic magnitude 294 aubio_onset_set_compression (o, 0.); 295 296 /* method specific optimisations */ 297 if (strcmp (onset_mode, "energy") == 0) { 298 } else if (strcmp (onset_mode, "hfc") == 0 || strcmp (onset_mode, "default") == 0) { 299 aubio_onset_set_threshold (o, 0.058); 300 aubio_onset_set_compression (o, 1.); 301 } else if (strcmp (onset_mode, "complexdomain") == 0 302 || strcmp (onset_mode, "complex") == 0) { 303 aubio_onset_set_delay (o, 4.6 * o->hop_size); 304 aubio_onset_set_threshold (o, 0.15); 305 aubio_onset_set_awhitening(o, 1); 306 aubio_onset_set_compression (o, 1.); 307 } else if (strcmp (onset_mode, "phase") == 0) { 308 o->apply_compression = 0; 309 aubio_onset_set_awhitening (o, 0); 310 } else if (strcmp (onset_mode, "mkl") == 0) { 311 aubio_onset_set_threshold (o, 0.05); 312 aubio_onset_set_awhitening(o, 1); 313 aubio_onset_set_compression (o, 0.02); 314 } else if (strcmp (onset_mode, "kl") == 0) { 315 aubio_onset_set_threshold (o, 0.35); 316 aubio_onset_set_awhitening(o, 1); 317 aubio_onset_set_compression (o, 0.02); 318 } else if (strcmp (onset_mode, "specflux") == 0) { 319 aubio_onset_set_threshold (o, 0.18); 320 aubio_onset_set_awhitening(o, 1); 321 aubio_spectral_whitening_set_relax_time(o->spectral_whitening, 100); 322 aubio_spectral_whitening_set_floor(o->spectral_whitening, 1.); 323 aubio_onset_set_compression (o, 10.); 324 } else if (strcmp (onset_mode, "specdiff") == 0) { 325 } else if (strcmp (onset_mode, "old_default") == 0) { 326 // used to reproduce results obtained with the previous version 327 aubio_onset_set_threshold (o, 0.3); 328 aubio_onset_set_minioi_ms (o, 20.); 329 aubio_onset_set_compression (o, 0.); 330 } else { 331 AUBIO_WRN("onset: unknown spectral descriptor type %s, " 332 "using default parameters.\n", onset_mode); 333 ret = AUBIO_FAIL; 334 } 335 return ret; 336 } 337 231 338 void del_aubio_onset (aubio_onset_t *o) 232 339 { 340 del_aubio_spectral_whitening(o->spectral_whitening); 233 341 del_aubio_specdesc(o->od); 234 342 del_aubio_peakpicker(o->pp); -
src/onset/onset.h
rfbafd2c rb201912 118 118 smpl_t aubio_onset_get_last_ms (const aubio_onset_t *o); 119 119 120 /** set onset detection adaptive whitening 121 122 \param o onset detection object as returned by new_aubio_onset() 123 \param enable 1 to enable, 0 to disable 124 125 \return 0 if successful, 1 otherwise 126 127 */ 128 uint_t aubio_onset_set_awhitening(aubio_onset_t * o, uint_t enable); 129 130 /** get onset detection adaptive whitening 131 132 \param o onset detection object as returned by new_aubio_onset() 133 134 \return 1 if enabled, 0 otherwise 135 136 */ 137 smpl_t aubio_onset_get_awhitening(aubio_onset_t * o); 138 139 /** set or disable log compression 140 141 \param o onset detection object as returned by new_aubio_onset() 142 \param lambda logarithmic compression factor, 0 to disable 143 144 \return 0 if successful, 1 otherwise 145 146 */ 147 uint_t aubio_onset_set_compression(aubio_onset_t *o, smpl_t lambda); 148 149 /** get onset detection log compression 150 151 \param o onset detection object as returned by new_aubio_onset() 152 153 \returns 0 if disabled, compression factor otherwise 154 155 */ 156 smpl_t aubio_onset_get_compression(aubio_onset_t *o); 157 120 158 /** set onset detection silence threshold 121 159 … … 274 312 */ 275 313 smpl_t aubio_onset_get_threshold(const aubio_onset_t * o); 314 315 /** set default parameters 316 317 \param o onset detection object as returned by new_aubio_onset() 318 \param onset_mode detection mode to adjust 319 320 This function is called at the end of new_aubio_onset(). 321 322 */ 323 uint_t aubio_onset_set_default_parameters (aubio_onset_t * o, const char_t * onset_mode); 324 325 /** reset onset detection 326 327 \param o onset detection object as returned by new_aubio_onset() 328 329 Reset current time and last onset to 0. 330 331 This function is called at the end of new_aubio_onset(). 332 333 */ 334 void aubio_onset_reset(aubio_onset_t * o); 276 335 277 336 /** delete onset detection object -
src/onset/peakpicker.c
rfbafd2c rb201912 93 93 fvec_t *scratch = p->scratch; 94 94 smpl_t mean = 0., median = 0.; 95 uint_t length = p->win_post + p->win_pre + 1;96 95 uint_t j = 0; 97 96 98 /* store onset in onset_keep */ 99 /* shift all elements but last, then write last */ 100 for (j = 0; j < length - 1; j++) { 101 onset_keep->data[j] = onset_keep->data[j + 1]; 102 onset_proc->data[j] = onset_keep->data[j]; 103 } 104 onset_keep->data[length - 1] = onset->data[0]; 105 onset_proc->data[length - 1] = onset->data[0]; 97 /* push new novelty to the end */ 98 fvec_push(onset_keep, onset->data[0]); 99 /* store a copy */ 100 fvec_copy(onset_keep, onset_proc); 106 101 107 /* filter onset_proc */ 108 /** \bug filtfilt calculated post+pre times, should be only once !? */ 102 /* filter this copy */ 109 103 aubio_filter_do_filtfilt (p->biquad, onset_proc, scratch); 110 104 111 105 /* calculate mean and median for onset_proc */ 112 106 mean = fvec_mean (onset_proc); 113 /* copy to scratch */ 114 for (j = 0; j < length; j++)115 scratch->data[j] = onset_proc->data[j];107 108 /* copy to scratch and compute its median */ 109 fvec_copy(onset_proc, scratch); 116 110 median = p->thresholdfn (scratch); 117 111 -
src/spectral/specdesc.c
rfbafd2c rb201912 31 31 void aubio_specdesc_complex(aubio_specdesc_t *o, const cvec_t * fftgrain, fvec_t * onset); 32 32 void aubio_specdesc_phase(aubio_specdesc_t *o, const cvec_t * fftgrain, fvec_t * onset); 33 void aubio_specdesc_wphase(aubio_specdesc_t *o, const cvec_t * fftgrain, fvec_t * onset); 33 34 void aubio_specdesc_specdiff(aubio_specdesc_t *o, const cvec_t * fftgrain, fvec_t * onset); 34 35 void aubio_specdesc_kl(aubio_specdesc_t *o, const cvec_t * fftgrain, fvec_t * onset); … … 58 59 aubio_onset_complex, /**< complex domain */ 59 60 aubio_onset_phase, /**< phase fast */ 61 aubio_onset_wphase, /**< weighted phase */ 60 62 aubio_onset_kl, /**< Kullback Liebler */ 61 63 aubio_onset_mkl, /**< modified Kullback Liebler */ … … 158 160 onset->data[0] = aubio_hist_mean(o->histog); 159 161 //onset->data[0] = fvec_mean(o->dev1); 162 } 163 164 /* weighted phase */ 165 void 166 aubio_specdesc_wphase(aubio_specdesc_t *o, 167 const cvec_t *fftgrain, fvec_t *onset) { 168 uint_t i; 169 aubio_specdesc_phase(o, fftgrain, onset); 170 for (i = 0; i < fftgrain->length; i++) { 171 o->dev1->data[i] *= fftgrain->norm[i]; 172 } 173 /* apply o->histogram */ 174 aubio_hist_dyn_notnull(o->histog,o->dev1); 175 /* weight it */ 176 aubio_hist_weight(o->histog); 177 /* its mean is the result */ 178 onset->data[0] = aubio_hist_mean(o->histog); 160 179 } 161 180 … … 251 270 else if (strcmp (onset_mode, "phase") == 0) 252 271 onset_type = aubio_onset_phase; 272 else if (strcmp (onset_mode, "wphase") == 0) 273 onset_type = aubio_onset_wphase; 253 274 else if (strcmp (onset_mode, "mkl") == 0) 254 275 onset_type = aubio_onset_mkl; … … 271 292 else if (strcmp (onset_mode, "rolloff") == 0) 272 293 onset_type = aubio_specmethod_rolloff; 294 else if (strcmp (onset_mode, "old_default") == 0) 295 onset_type = aubio_onset_default; 273 296 else if (strcmp (onset_mode, "default") == 0) 274 297 onset_type = aubio_onset_default; … … 292 315 break; 293 316 case aubio_onset_phase: 317 case aubio_onset_wphase: 294 318 o->dev1 = new_fvec(rsize); 295 319 o->theta1 = new_fvec(rsize); … … 326 350 o->funcpointer = aubio_specdesc_phase; 327 351 break; 352 case aubio_onset_wphase: 353 o->funcpointer = aubio_specdesc_wphase; 354 break; 328 355 case aubio_onset_specdiff: 329 356 o->funcpointer = aubio_specdesc_specdiff; … … 379 406 break; 380 407 case aubio_onset_phase: 408 case aubio_onset_wphase: 381 409 del_fvec(o->dev1); 382 410 del_fvec(o->theta1); -
src/spectral/specdesc.h
rfbafd2c rb201912 60 60 Hong-Kong, 2003. 61 61 62 \b \p wphase : Weighted Phase Deviation onset detection function 63 64 S. Dixon. Onset detection revisited. In Proceedings of the 9th International 65 Conference on Digital Audio Ef- fects (DAFx) , pages 133–137, 2006. 66 67 http://www.eecs.qmul.ac.uk/~simond/pub/2006/dafx.pdf 68 62 69 \b \p specdiff : Spectral difference method onset detection function 63 70 … … 175 182 The parameter \p method is a string that can be any of: 176 183 177 - `energy`, `hfc`, `complex`, `phase`, `specdiff`, `kl`, `mkl`, `specflux` 178 - `centroid`, `spread`, `skewness`, `kurtosis`, `slope`, `decrease`, `rolloff` 184 - onset novelty functions: `complex`, `energy`, `hfc`, `kl`, `mkl`, 185 `phase`, `specdiff`, `specflux`, `wphase`, 186 187 - spectral descriptors: `centroid`, `decrease`, `kurtosis`, `rolloff`, 188 `skewness`, `slope`, `spread`. 179 189 180 190 */ -
src/synth/wavetable.c
rfbafd2c rb201912 104 104 output->data[i] += input->data[i]; 105 105 } 106 fvec_clamp(output, 1.); 106 107 } 107 108 } -
this_version.py
rfbafd2c rb201912 1 1 #! python 2 2 import os 3 import sys 3 4 4 5 __version_info = {} # keep a reference to parse VERSION once … … 82 83 gitsha = subprocess.check_output(gitcmd).strip().decode('utf8') 83 84 except Exception as e: 84 print('git command error :%s' % e)85 sys.stderr.write('git command error :%s\n' % e) 85 86 return None 86 87 # check if we have a clean tree … … 89 90 output = subprocess.check_output(gitcmd).decode('utf8') 90 91 if len(output): 91 print('Info: current tree is not clean\n')92 print(output)92 sys.stderr.write('Info: current tree is not clean\n\n') 93 sys.stderr.write(output + '\n') 93 94 gitsha += '+mods' 94 95 except subprocess.CalledProcessError as e: 95 print (e)96 sys.stderr.write('git command error :%s\n' % e) 96 97 pass 97 98 return gitsha 98 99 99 100 if __name__ == '__main__': 100 print ('%30s'% 'aubio version:', get_aubio_version()) 101 print ('%30s'% 'python-aubio version:', get_aubio_pyversion()) 101 if len(sys.argv) > 1 and sys.argv[1] == '-v': 102 print (get_aubio_version()) 103 elif len(sys.argv) > 1 and sys.argv[1] == '-p': 104 print (get_aubio_version()) 105 else: 106 print ('%30s'% 'aubio version:', get_aubio_version()) 107 print ('%30s'% 'python-aubio version:', get_aubio_pyversion()) -
wscript
rfbafd2c rb201912 334 334 mandatory = ctx.options.enable_avcodec) 335 335 ctx.check_cfg(package = 'libswresample', 336 args = '--cflags --libs libswresample >= 2.3.0',336 args = '--cflags --libs libswresample >= 1.2.0', 337 337 uselib_store = 'SWRESAMPLE', 338 338 mandatory = False) … … 456 456 # build documentation from source files using doxygen 457 457 if bld.env['DOXYGEN']: 458 bld( name = 'doxygen', rule = 'doxygen ${SRC} > /dev/null', 458 bld.env.VERSION = VERSION 459 rule = '( cat ${SRC} && echo PROJECT_NUMBER=${VERSION}; )' 460 rule += ' | doxygen - > /dev/null' 461 bld( name = 'doxygen', rule = rule, 459 462 source = 'doc/web.cfg', 460 463 target = '../doc/web/html/index.html',
Note: See TracChangeset
for help on using the changeset viewer.