{"id":14989190,"url":"https://github.com/cpjku/madmom","last_synced_at":"2025-05-14T19:06:18.776Z","repository":{"id":40591391,"uuid":"42099318","full_name":"CPJKU/madmom","owner":"CPJKU","description":"Python audio and music signal processing library","archived":false,"fork":false,"pushed_at":"2024-08-25T11:43:40.000Z","size":6572,"stargazers_count":1331,"open_issues_count":68,"forks_count":205,"subscribers_count":43,"default_branch":"main","last_synced_at":"2024-10-29T14:54:44.452Z","etag":null,"topics":["audio-analysis","cython","machine-learning","music-information-retrieval","numpy","python","scipy","signal-processing"],"latest_commit_sha":null,"homepage":"https://madmom.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CPJKU.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-09-08T08:19:06.000Z","updated_at":"2024-10-28T15:52:31.000Z","dependencies_parsed_at":"2022-07-13T16:44:26.096Z","dependency_job_id":"a0e62442-423b-48b0-91ad-855aa487aa14","html_url":"https://github.com/CPJKU/madmom","commit_stats":{"total_commits":1449,"total_committers":23,"mean_commits":63.0,"dds":"0.24154589371980673","last_synced_commit":"27f032e8947204902c675e5e341a3faf5dc86dae"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CPJKU%2Fmadmom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CPJKU%2Fmadmom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CPJKU%2Fmadmom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CPJKU%2Fmadmom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CPJKU","download_url":"https://codeload.github.com/CPJKU/madmom/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248161264,"owners_count":21057552,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio-analysis","cython","machine-learning","music-information-retrieval","numpy","python","scipy","signal-processing"],"created_at":"2024-09-24T14:17:49.957Z","updated_at":"2025-04-10T04:51:37.455Z","avatar_url":"https://github.com/CPJKU.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"======\nmadmom\n======\n\nMadmom is an audio signal processing library written in Python with a strong\nfocus on music information retrieval (MIR) tasks.\n\nThe library is internally used by the Department of Computational Perception,\nJohannes Kepler University, Linz, Austria (http://www.cp.jku.at) and the\nAustrian Research Institute for Artificial Intelligence (OFAI), Vienna, Austria\n(http://www.ofai.at).\n\nPossible acronyms are:\n\n- Madmom Analyzes Digitized Music Of Musicians\n- Mostly Audio / Dominantly Music Oriented Modules\n\nIt includes reference implementations for some music information retrieval\nalgorithms, please see the `References`_ section.\n\n\nDocumentation\n=============\n\nDocumentation of the package can be found online http://madmom.readthedocs.org\n\n\nLicense\n=======\n\nThe package has two licenses, one for source code and one for model/data files.\n\nSource code\n-----------\n\nUnless indicated otherwise, all source code files are published under the BSD\nlicense. For details, please see the `LICENSE \u003cLICENSE\u003e`_ file.\n\nModel and data files\n--------------------\n\nUnless indicated otherwise, all model and data files are distributed under the\n`Creative Commons Attribution-NonCommercial-ShareAlike 4.0\n\u003chttp://creativecommons.org/licenses/by-nc-sa/4.0/legalcode\u003e`_ license.\n\nIf you want to include any of these files (or a variation or modification\nthereof) or technology which utilises them in a commercial product, please\ncontact `Gerhard Widmer \u003chttp://www.cp.jku.at/people/widmer/\u003e`_.\n\n\nInstallation\n============\n\nPlease do not try to install from the .zip files provided by GitHub. Rather\ninstall it from package (if you just want to use it) or source (if you plan to\nuse it for development) by following the instructions below. Whichever variant\nyou choose, please make sure that all prerequisites are installed.\n\nPrerequisites\n-------------\n\nTo install the ``madmom`` package, you must have either Python 2.7 or Python\n3.5 or newer and the following packages installed:\n\n- `numpy \u003chttp://www.numpy.org\u003e`_\n- `scipy \u003chttp://www.scipy.org\u003e`_\n- `cython \u003chttp://www.cython.org\u003e`_\n- `mido \u003chttps://github.com/olemb/mido\u003e`_\n\nIn order to test your installation, process live audio input, or have improved\nFFT performance, additionally install these packages:\n\n- `pytest \u003chttps://www.pytest.org/\u003e`_\n- `pyaudio \u003chttp://people.csail.mit.edu/hubert/pyaudio/\u003e`_\n- `pyfftw \u003chttps://github.com/pyFFTW/pyFFTW/\u003e`_\n\nIf you need support for audio files other than ``.wav`` with a sample rate of\n44.1kHz and 16 bit depth, you need ``ffmpeg`` (``avconv`` on Ubuntu Linux has\nsome decoding bugs, so we advise not to use it!).\n\nPlease refer to the `requirements.txt \u003crequirements.txt\u003e`_ file for the minimum\nrequired versions and make sure that these modules are up to date, otherwise it\ncan result in unexpected errors or false computations!\n\nInstall from package\n--------------------\n\nThe instructions given here should be used if you just want to install the\npackage, e.g. to run the bundled programs or use some functionality for your\nown project. If you intend to change anything within the `madmom` package,\nplease follow the steps in the next section.\n\nThe easiest way to install the package is via ``pip`` from the `PyPI (Python\nPackage Index) \u003chttps://pypi.python.org/pypi\u003e`_::\n\n    pip install madmom\n\nThis includes the latest code and trained models and will install all\ndependencies automatically.\n\nYou might need higher privileges (use su or sudo) to install the package, model\nfiles and scripts globally. Alternatively you can install the package locally\n(i.e. only for you) by adding the ``--user`` argument::\n\n    pip install --user madmom\n\nThis will also install the executable programs to a common place (e.g.\n``/usr/local/bin``), which should be in your ``$PATH`` already. If you\ninstalled the package locally, the programs will be copied to a folder which\nmight not be included in your ``$PATH`` (e.g. ``~/Library/Python/2.7/bin``\non Mac OS X or ``~/.local/bin`` on Ubuntu Linux, ``pip`` will tell you). Thus\nthe programs need to be called explicitely or you can add their install path\nto your ``$PATH`` environment variable::\n\n    export PATH='path/to/scripts':$PATH\n\nInstall from source\n-------------------\n\nIf you plan to use the package as a developer, clone the Git repository::\n\n    git clone --recursive https://github.com/CPJKU/madmom.git\n\nSince the pre-trained model/data files are not included in this repository but\nrather added as a Git submodule, you either have to clone the repo recursively.\nThis is equivalent to these steps::\n\n    git clone https://github.com/CPJKU/madmom.git\n    cd madmom\n    git submodule update --init --remote\n\nThen you can simply install the package in development mode::\n\n    python setup.py develop --user\n\nTo run the included tests::\n\n    python setup.py pytest\n\nUpgrade of existing installations\n---------------------------------\n\nTo upgrade the package, please use the same mechanism (pip vs. source) as you\ndid for installation. If you want to change from package to source, please\nuninstall the package first.\n\nUpgrade a package\n~~~~~~~~~~~~~~~~~\n\nSimply upgrade the package via pip::\n\n    pip install --upgrade madmom [--user]\n\nIf some of the provided programs or models changed (please refer to the\nCHANGELOG) you should first uninstall the package and then reinstall::\n\n    pip uninstall madmom\n    pip install madmom [--user]\n\nUpgrade from source\n~~~~~~~~~~~~~~~~~~~\n\nSimply pull the latest sources::\n\n    git pull\n\nTo update the models contained in the submodule::\n\n    git submodule update\n\nIf any of the ``.pyx`` or ``.pxd`` files changed, you have to recompile the\nmodules with Cython::\n\n    python setup.py build_ext --inplace\n\nPackage structure\n-----------------\n\nThe package has a very simple structure, divided into the following folders:\n\n`/bin \u003cbin\u003e`_\n  this folder includes example programs (i.e. executable algorithms)\n`/docs \u003cdocs\u003e`_\n  package documentation\n`/madmom \u003cmadmom\u003e`_\n  the actual Python package\n`/madmom/audio \u003cmadmom/audio\u003e`_\n  low level features (e.g. audio file handling, STFT)\n`/madmom/evaluation \u003cmadmom/evaluation\u003e`_\n  evaluation code\n`/madmom/features \u003cmadmom/features\u003e`_\n  higher level features (e.g. onsets, beats)\n`/madmom/ml \u003cmadmom/ml\u003e`_\n  machine learning stuff (e.g. RNNs, HMMs)\n`/madmom/models \u003c../../../madmom_models\u003e`_\n  pre-trained model/data files (see the License section)\n`/madmom/utils \u003cmadmom/utils\u003e`_\n  misc stuff (e.g. MIDI and general file handling)\n`/tests \u003ctests\u003e`_\n  tests\n\nExecutable programs\n-------------------\n\nThe package includes executable programs in the `/bin \u003cbin\u003e`_ folder.\nIf you installed the package, they were copied to a common place.\n\nAll scripts can be run in different modes: in ``single`` file mode to process\na single audio file and write the output to STDOUT or the given output file::\n\n    DBNBeatTracker single [-o OUTFILE] INFILE\n\nIf multiple audio files should be processed, the scripts can also be run in\n``batch`` mode to write the outputs to files with the given suffix::\n\n    DBNBeatTracker batch [-o OUTPUT_DIR] [-s OUTPUT_SUFFIX] FILES\n\nIf no output directory is given, the program writes the output files to the\nsame location as the audio files.\n\nSome programs can also be run in ``online`` mode, i.e. operate on live audio\nsignals. This requires `pyaudio \u003chttp://people.csail.mit.edu/hubert/pyaudio/\u003e`_\nto be installed::\n\n    DBNBeatTracker online [-o OUTFILE] [INFILE]\n\nThe ``pickle`` mode can be used to store the used parameters to be able to\nexactly reproduce experiments.\n\nPlease note that the program itself as well as the modes have help messages::\n\n    DBNBeatTracker -h\n\n    DBNBeatTracker single -h\n\n    DBNBeatTracker batch -h\n\n    DBNBeatTracker online -h\n\n    DBNBeatTracker pickle -h\n\nwill give different help messages.\n\n\nAdditional resources\n====================\n\nMailing list\n------------\n\nThe `mailing list \u003chttps://groups.google.com/d/forum/madmom-users\u003e`_ should be\nused to get in touch with the developers and other users.\n\nWiki\n----\n\nThe wiki can be found here: https://github.com/CPJKU/madmom/wiki\n\nFAQ\n---\n\nFrequently asked questions can be found here:\nhttps://github.com/CPJKU/madmom/wiki/FAQ\n\nCitation\n========\n\nIf you use madmom in your work, please consider citing it:\n\n.. code-block:: latex\n\n   @inproceedings{madmom,\n      Title = {{madmom: a new Python Audio and Music Signal Processing Library}},\n      Author = {B{\\\"o}ck, Sebastian and Korzeniowski, Filip and Schl{\\\"u}ter, Jan and Krebs, Florian and Widmer, Gerhard},\n      Booktitle = {Proceedings of the 24th ACM International Conference on\n      Multimedia},\n      Month = {10},\n      Year = {2016},\n      Pages = {1174--1178},\n      Address = {Amsterdam, The Netherlands},\n      Doi = {10.1145/2964284.2973795}\n   }\n\nReferences\n==========\n\n.. [1] Florian Eyben, Sebastian Böck, Björn Schuller and Alex Graves,\n    *Universal Onset Detection with bidirectional Long Short-Term Memory\n    Neural Networks*,\n    Proceedings of the 11th International Society for Music Information\n    Retrieval Conference (ISMIR), 2010.\n.. [2] Sebastian Böck and Markus Schedl,\n    *Enhanced Beat Tracking with Context-Aware Neural Networks*,\n    Proceedings of the 14th International Conference on Digital Audio Effects\n    (DAFx), 2011.\n.. [3] Sebastian Böck and Markus Schedl,\n    *Polyphonic Piano Note Transcription with Recurrent Neural Networks*,\n    Proceedings of the 37th International Conference on Acoustics, Speech and\n    Signal Processing (ICASSP), 2012.\n.. [4] Sebastian Böck, Andreas Arzt, Florian Krebs and Markus Schedl,\n    *Online Real-time Onset Detection with Recurrent Neural Networks*,\n    Proceedings of the 15th International Conference on Digital Audio Effects\n    (DAFx), 2012.\n.. [5] Sebastian Böck, Florian Krebs and Markus Schedl,\n    *Evaluating the Online Capabilities of Onset Detection Methods*,\n    Proceedings of the 13th International Society for Music Information\n    Retrieval Conference (ISMIR), 2012.\n.. [6] Sebastian Böck and Gerhard Widmer,\n    *Maximum Filter Vibrato Suppression for Onset Detection*,\n    Proceedings of the 16th International Conference on Digital Audio Effects\n    (DAFx), 2013.\n.. [7] Sebastian Böck and Gerhard Widmer,\n    *Local Group Delay based Vibrato and Tremolo Suppression for Onset\n    Detection*,\n    Proceedings of the 13th International Society for Music Information\n    Retrieval Conference (ISMIR), 2013.\n.. [8] Florian Krebs, Sebastian Böck and Gerhard Widmer,\n    *Rhythmic Pattern Modelling for Beat and Downbeat Tracking in Musical\n    Audio*,\n    Proceedings of the 14th International Society for Music Information\n    Retrieval Conference (ISMIR), 2013.\n.. [9] Sebastian Böck, Jan Schlüter and Gerhard Widmer,\n    *Enhanced Peak Picking for Onset Detection with Recurrent Neural Networks*,\n    Proceedings of the 6th International Workshop on Machine Learning and\n    Music (MML), 2013.\n.. [10] Sebastian Böck, Florian Krebs and Gerhard Widmer,\n    *A Multi-Model Approach to Beat Tracking Considering Heterogeneous Music\n    Styles*,\n    Proceedings of the 15th International Society for Music Information\n    Retrieval Conference (ISMIR), 2014.\n.. [11] Filip Korzeniowski, Sebastian Böck and Gerhard Widmer,\n    *Probabilistic Extraction of Beat Positions from a Beat Activation\n    Function*,\n    Proceedings of the 15th International Society for Music Information\n    Retrieval Conference (ISMIR), 2014.\n.. [12] Sebastian Böck, Florian Krebs and Gerhard Widmer,\n    *Accurate Tempo Estimation based on Recurrent Neural Networks and\n    Resonating Comb Filters*,\n    Proceedings of the 16th International Society for Music Information\n    Retrieval Conference (ISMIR), 2015.\n.. [13] Florian Krebs, Sebastian Böck and Gerhard Widmer,\n    *An Efficient State Space Model for Joint Tempo and Meter Tracking*,\n    Proceedings of the 16th International Society for Music Information\n    Retrieval Conference (ISMIR), 2015.\n.. [14] Sebastian Böck, Florian Krebs and Gerhard Widmer,\n    *Joint Beat and Downbeat Tracking with Recurrent Neural Networks*,\n    Proceedings of the 17th International Society for Music Information\n    Retrieval Conference (ISMIR), 2016.\n.. [15] Filip Korzeniowski and Gerhard Widmer,\n    *Feature Learning for Chord Recognition: The Deep Chroma Extractor*,\n    Proceedings of the 17th International Society for Music Information\n    Retrieval Conference (ISMIR), 2016.\n.. [16] Florian Krebs, Sebastian Böck, Matthias Dorfer and Gerhard Widmer,\n    *Downbeat Tracking Using Beat-Synchronous Features and Recurrent Networks*,\n    Proceedings of the 17th International Society for Music Information\n    Retrieval Conference (ISMIR), 2016.\n.. [17] Filip Korzeniowski and Gerhard Widmer,\n    *A Fully Convolutional Deep Auditory Model for Musical Chord Recognition*,\n    Proceedings of IEEE International Workshop on Machine Learning for Signal\n    Processing (MLSP), 2016.\n.. [18] Filip Korzeniowski and Gerhard Widmer,\n    *Genre-Agnostic Key Classification with Convolutional Neural Networks*,\n    Proceedings of the 19th International Society for Music Information\n    Retrieval Conference (ISMIR), 2018.\n.. [19] Rainer Kelz, Sebastian Böck and Gerhard Widmer,\n    *Deep Polyphonic ADSR Piano Note Transcription*,\n    Proceedings of the 44th International Conference on Acoustics, Speech and\n    Signal Processing (ICASSP), 2019.\n\nAcknowledgements\n================\n\nSupported by the European Commission through the `GiantSteps project\n\u003chttp://www.giantsteps-project.eu\u003e`_ (FP7 grant agreement no. 610591) and the\n`Phenicx project \u003chttp://phenicx.upf.edu\u003e`_ (FP7 grant agreement no. 601166)\nas well as the `Austrian Science Fund (FWF) \u003chttps://www.fwf.ac.at\u003e`_ project\nZ159.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcpjku%2Fmadmom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcpjku%2Fmadmom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcpjku%2Fmadmom/lists"}