diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 4320e93b0..f5c437829 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Fetch release tags from GitHub diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index cd9af9c89..228764a5f 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -32,7 +32,7 @@ jobs: PRE_CMD: ${{ matrix.PRE_CMD }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Fetch release tags from GitHub diff --git a/doc/sphinxdoc/_static/css/custom.css b/doc/sphinxdoc/_static/css/custom.css new file mode 100644 index 000000000..fbb921e4b --- /dev/null +++ b/doc/sphinxdoc/_static/css/custom.css @@ -0,0 +1,25 @@ +div.wy-side-scroll { + background: #0b3954; +} + + +div.wy-side-nav-search { + background: #0b3954; +} + +div.wy-side-nav-search .version { + color: rgba(255, 255, 255, 0.7); +} + +div.wy-menu.wy-menu-vertical { + background: #0b3954; +} + + +span.caption-text { + color: #404040; +} + +div.wy-menu .caption-text { + color: #C8152F; +} \ No newline at end of file diff --git a/doc/sphinxdoc/algorithms_overview.rst b/doc/sphinxdoc/algorithms_overview.rst index 30a821bd9..803aee8b5 100644 --- a/doc/sphinxdoc/algorithms_overview.rst +++ b/doc/sphinxdoc/algorithms_overview.rst @@ -7,7 +7,7 @@ as well as a small description. Please note that this is not an exhaustive list but rather a quick overview of the most used algorithms in Essentia. For the full list of algorithms and their detailed documentation, -please see the `complete reference `_. +please see the :doc:`complete reference `. Audio input / output diff --git a/doc/sphinxdoc/coding_guidelines.rst b/doc/sphinxdoc/coding_guidelines.rst index 80785e5d2..fd13dbe30 100644 --- a/doc/sphinxdoc/coding_guidelines.rst +++ b/doc/sphinxdoc/coding_guidelines.rst @@ -1,7 +1,7 @@ .. highlight:: cpp -General development guidelines -============================== +Coding Guidelines +================= Fixing bugs ----------- @@ -22,9 +22,6 @@ Doing commits in Github humorous in them, but messages such as "bsdjfh" are *not* allowed. -Coding Guidelines -================= - Coding style guidelines ----------------------- diff --git a/doc/sphinxdoc/conf.py b/doc/sphinxdoc/conf.py index 217458fe3..11993fd07 100644 --- a/doc/sphinxdoc/conf.py +++ b/doc/sphinxdoc/conf.py @@ -17,251 +17,67 @@ # You should have received a copy of the Affero GNU General Public License # version 3 along with this program. If not, see http://www.gnu.org/licenses/ +# Configuration file for the Sphinx documentation builder. -# -# Essentia documentation build configuration file, created by -# sphinx-quickstart on Thu Nov 11 16:09:32 2010. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys, os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# -- Project information -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.viewcode', - 'sphinxcontrib.doxylink', - # 'sphinxprettysearchresults', - 'sphinx.ext.autosectionlabel', - 'sphinx_toolbox.collapse'] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'contents' - -# General information about the project. project = u'Essentia' -copyright = u'2006-2022, Universitat Pompeu Fabra' +copyright = u'2006-2024, Universitat Pompeu Fabra' +author = 'MTG' -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '2.1-beta6-dev' -# The full version, including alpha/beta/rc tags. release = '2.1-beta6-dev' +version = '2.1-beta6-dev' +root_doc = 'documentation' -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None +# -- General configuration -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +extensions = [ + 'sphinx.ext.viewcode', + 'sphinxcontrib.doxylink', + 'sphinx.ext.autosectionlabel', + 'sphinx_toolbox.collapse', + 'sphinx_copybutton', + ] -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. +# -- Options for HTML output +templates_path = ['_templates'] exclude_patterns = ['_build'] -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'friendly' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - - -# -- Options for HTML output --------------------------------------------------- - # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinxdoc_mtg' - -# If true, the text around the keyword is shown as summary of each search result. -# Default is True. -html_show_search_summary = False - -# Add any paths that contain custom themes here, relative to this directory. -html_theme_path = ['_templates'] - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. +# +html_theme = "sphinx_rtd_theme" html_theme_options = { - "nosidebar": "false", + 'logo_only': True, } - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None -#html_logo = 'mtg_logo.png' - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -html_favicon = 'favicon.ico' - # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +html_static_path = ["_static"] +html_css_files = [ + "css/custom.css", +] +html_logo = "_static/essentia_logo.svg" +html_favicon = '_static/favicon.ico' -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True +# -- Options for EPUB output +epub_show_urls = 'footnote' -# Custom sidebar templates, maps document names to template names. -#html_sidebars = { 'index': [ 'indexsidebar.html', 'searchbox.html' ] } -#html_sidebars = { '**': [] } # disable sidebar on all pages - -# We only want a sidebar on the models page. -html_sidebars = { - # 'index': [], - '**': [], - 'algorithms_reference': ['localtoc.html'], - 'models': ['localtoc.html'], -} +# Sidebar templates +# html_sidebars = { +# '**': [] +# } # Additional templates that should be rendered to pages, maps page names to # template names. -html_additional_pages = {'index': 'index.html', - # 'algorithms_reference': 'algorithms_reference.html', - 'applications': 'applications.html', - 'documentation': 'documentation.html'} - -# Deprecating this. Generating algorithm docs directly from rst files is better for sidebar. -# exec(compile(open("essentia_reference.py").read(), "essentia_reference.py", 'exec')) -# html_additional_pages.update(essentia_algorithms) - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -html_use_index = False - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'Essentiadoc' - - -# -- Options for LaTeX output -------------------------------------------------- - -# The paper size ('letter' or 'a4'). -#latex_paper_size = 'letter' - -# The font size ('10pt', '11pt' or '12pt'). -#latex_font_size = '10pt' - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -#latex_documents = [ -# ('index', 'Essentia.tex', u'Essentia Documentation', -# u'Nicolas Wack', 'manual'), -#] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Additional stuff for the LaTeX preamble. -#latex_preamble = '' - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -#man_pages = [ -# ('index', 'essentia', u'Essentia Documentation', -# [u'Nicolas Wack'], 1) -#] +html_additional_pages = { + # 'index': 'index.html', + # 'applications': 'applications.html', + # 'documentation': 'documentation.html', + } +# html_extra_path = ['./_templates/index.html'] doxylink = { 'essentia': ('EssentiaDoxygen.tag', 'doxygen') diff --git a/doc/sphinxdoc/conf_old.py b/doc/sphinxdoc/conf_old.py new file mode 100644 index 000000000..c946fb561 --- /dev/null +++ b/doc/sphinxdoc/conf_old.py @@ -0,0 +1,266 @@ +# -*- coding: utf-8 -*- + +# Copyright (C) 2006-2021 Music Technology Group - Universitat Pompeu Fabra +# +# This file is part of Essentia +# +# Essentia is free software: you can redistribute it and/or modify it under +# the terms of the GNU Affero General Public License as published by the Free +# Software Foundation (FSF), either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the Affero GNU General Public License +# version 3 along with this program. If not, see http://www.gnu.org/licenses/ + + +# +# Essentia documentation build configuration file, created by +# sphinx-quickstart on Thu Nov 11 16:09:32 2010. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.insert(0, os.path.abspath('.')) + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.viewcode', + 'sphinxcontrib.doxylink', + # 'sphinxprettysearchresults', + 'sphinx.ext.autosectionlabel', + 'sphinx_toolbox.collapse'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'contents' + +# General information about the project. +project = u'Essentia' +copyright = u'2006-2022, Universitat Pompeu Fabra' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '2.1-beta6-dev' +# The full version, including alpha/beta/rc tags. +release = '2.1-beta6-dev' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = ['_build'] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'friendly' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# html_theme = 'sphinxdoc_mtg' +html_theme = 'sphinx_rtd_theme' + +# If true, the text around the keyword is shown as summary of each search result. +# Default is True. +html_show_search_summary = False + +# Add any paths that contain custom themes here, relative to this directory. +html_theme_path = ['_templates'] + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +html_theme_options = { + "nosidebar": "false", +} + + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None +#html_logo = 'mtg_logo.png' + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +html_favicon = 'favicon.ico' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = { 'index': [ 'indexsidebar.html', 'searchbox.html' ] } +#html_sidebars = { '**': [] } # disable sidebar on all pages + +# We only want a sidebar on the models page. +html_sidebars = { + '**': [], + 'models': ['localtoc.html'], +} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +html_additional_pages = {'index': 'index.html', + 'algorithms_reference': 'algorithms_reference.html', + 'applications': 'applications.html', + 'documentation': 'documentation.html'} + +exec(compile(open("essentia_reference.py").read(), "essentia_reference.py", 'exec')) +html_additional_pages.update(essentia_algorithms) + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +html_use_index = False + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'Essentiadoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +#latex_documents = [ +# ('index', 'Essentia.tex', u'Essentia Documentation', +# u'Nicolas Wack', 'manual'), +#] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +#man_pages = [ +# ('index', 'essentia', u'Essentia Documentation', +# [u'Nicolas Wack'], 1) +#] + + +doxylink = { + 'essentia': ('EssentiaDoxygen.tag', 'doxygen') +} diff --git a/doc/sphinxdoc/contents.rst b/doc/sphinxdoc/contents.rst index 36eb239ed..9cbfba942 100644 --- a/doc/sphinxdoc/contents.rst +++ b/doc/sphinxdoc/contents.rst @@ -13,6 +13,7 @@ Essentia documentation contents installing download algorithms_overview + algorithms_reference essentia_python_tutorial python_examples extractors_out_of_box diff --git a/doc/sphinxdoc/documentation.rst b/doc/sphinxdoc/documentation.rst new file mode 100644 index 000000000..023857780 --- /dev/null +++ b/doc/sphinxdoc/documentation.rst @@ -0,0 +1,116 @@ +Essentia +======== + +.. toctree:: + :maxdepth: 1 + :titlesonly: + + + +``essentia`` is an open-source C++ library with Python and JavaScript bindings for **audio analysis and audio-based music information retrieval**. +It is released under the `Affero GPLv3 license `_ and is also available under a proprietary license :doc:`upon request `. +The following algorithms are included: + +* **Audio file input/output**: ability to read and write nearly all audio file formats (wav, mp3, ogg, flac, etc.) +* **Standard signal processing blocks**: FFT, DCT, frame cutter, windowing, envelope, smoothing +* **Filters (FIR & IIR)**: low/high/band pass, band reject, DC removal, equal loudness +* **Statistical descriptors**: median, mean, variance, power means, raw and central moments, spread, kurtosis, skewness, flatness +* **Time-domain descriptors**: duration, loudness, LARM, Leq, Vickers' loudness, zero-crossing-rate, log attack time and other signal envelope descriptors +* **Spectral descriptors**: Bark/Mel/ERB bands, MFCC, GFCC, LPC, spectral peaks, complexity, roll-off, contrast, HFC, inharmonicity and dissonance +* **Tonal descriptors**: Pitch salience function, predominant melody and pitch, HPCP (chroma) related features, chords, key and scale, tuning frequency +* **Rhythm descriptors**: beat detection, BPM, onset detection, rhythm transform, beat loudness +* **Other high-level descriptors**: danceability, dynamic complexity, audio segmentation, SVM classifier, TensorFlow wrapper for inference +* **Machine learning models**: inference with SVM classifiers and TensorFlow models + +You can install Essentia Python from PyPi: + +.. code-block:: + + pip install essentia + +To use TensorFlow models, install via the command: + +.. code-block:: + + pip install essentia-tensorflow + + +For more details on how to use the library see the documentation section. + + +Crediting Essentia +================== + +Please, credit your use of Essentia properly! If you use the Essentia library in your software, please acknowledge it and specify its origin as . If you do some research and publish an article, cite both the Essentia paper [1] and the specific references mentioned in the documentation of the algorithms used. We would also be very grateful if you let us know how you use Essentia by sending an email to . + +[1] Bogdanov, D., Wack N., Gómez E., Gulati S., Herrera P., Mayor O., et al. (2013). `ESSENTIA: an Audio Analysis Library for Music Information Retrieval. `__ International Society for Music Information Retrieval Conference (ISMIR'13). 493-498. + + +Contributing to Essentia +========================= + +We are more than happy to collaborate and receive your contributions to Essentia. +Please see :doc:`contribute` for guidelines. + +- `Issue Tracker `_ +- `Source Code `_ + + +.. toctree:: + :hidden: + :caption: Getting Started + :maxdepth: 1 + + introduction + installing + download + essentia_python_tutorial + python_examples + FAQ + +.. toctree:: + :hidden: + :caption: Documentation + :maxdepth: 1 + + algorithms_overview + algorithms_reference + extractors_out_of_box + streaming_extractor_music + machine_learning + models + demos + + +.. toctree:: + :hidden: + :caption: Advanced Information + :maxdepth: 1 + + design_overview + howto_standard_extractor + howto_streaming_extractor + streaming_architecture + +.. toctree:: + :hidden: + :caption: Extending Essentia + :maxdepth: 1 + + extending_essentia + extending_essentia_streaming + composite_api + execution_network_algorithm + coding_guidelines + contribute + +.. toctree:: + :hidden: + :caption: Applications and Licensing + :maxdepth: 1 + + licensing_information + research_papers + contents + + \ No newline at end of file diff --git a/doc/sphinxdoc/generate_reference.py b/doc/sphinxdoc/generate_reference.py index 7217d1c77..b15503bf7 100755 --- a/doc/sphinxdoc/generate_reference.py +++ b/doc/sphinxdoc/generate_reference.py @@ -557,4 +557,4 @@ def write_algorithms_reference(): if __name__ == '__main__': print("Loading Essentia with python=%s" % sys.executable) - write_algorithms_reference() + write_algorithms_reference() \ No newline at end of file diff --git a/doc/sphinxdoc/licensing_information.rst b/doc/sphinxdoc/licensing_information.rst index 67f43b517..a1fbaee33 100644 --- a/doc/sphinxdoc/licensing_information.rst +++ b/doc/sphinxdoc/licensing_information.rst @@ -1,6 +1,9 @@ -Licensing Essentia +Licensing Information ================== +Licensing Essentia +------------------ + Essentia is the result of more than 10 years of research and development at Music Technology Group and it incorporates the work done by many researchers during all this time. The library has been designed to support large-scale industrial applications. It is being used to support applications such as music and sound classification, @@ -16,14 +19,14 @@ more information about licensing conditions and for consulting how Essentia can Licensing Essentia models -========================= +------------------------- In addition to Essentia, Music Technology Group provides various pre-trained machine learning models for music analysis and classification tasks. All the models are available under the `CC BY-NC-ND 4.0 license `_ for non-commercial use, and are also available under a proprietary license upon request. Licensing dependencies -====================== +---------------------- Some Essentia library algorithms use third-party libraries with licenses such as `GPL`_, `LGPL`_, and others for which UPF is not able to provide full sublicensing rights to third parties.