A Python Library for Fundamental Frequency Estimation in Music Recordings
Project description
libf0
This repository contains a Python package called libf0 which provides open-source implementations for four popular model-based F0-estimation approaches, YIN (Cheveigné & Kawahara, 2002), pYIN (Mauch & Dixon, 2014), an approach inspired by Melodia (Salamon & Gómez, 2012), and SWIPE (Camacho & Harris, 2008).
If you use the libf0 in your research, please consider the following references.
References
Sebastian Rosenzweig, Simon Schwär, and Meinard Müller. libf0: A Python Library for Fundamental Frequency Estimation. In Late Breaking Demos of the International Society for Music Information Retrieval Conference (ISMIR), Bengaluru, India, 2022.
Alain de Cheveigné and Hideki Kawahara. YIN, a fundamental frequency estimator for speech and music. Journal of the Acoustical Society of America (JASA), 111(4):1917–1930, 2002.
Matthias Mauch and Simon Dixon. pYIN: A fundamental frequency estimator using probabilistic threshold distributions. In IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pages 659–663, Florence, Italy, 2014.
Justin Salamon and Emilia Gómez. Melody extraction from polyphonic music signals using pitch contour characteristics. IEEE Transactions on Audio, Speech, and Language Processing, 20(6): 1759–1770, 2012.
Arturo Camacho and John G. Harris. A sawtooth waveform inspired pitch estimator for speech and music. The Journal of the Acoustical Society of America, 124(3):1638–1652, 2008.
Meinard Müller. Fundamentals of Music Processing – Using Python and Jupyter Notebooks. Springer Verlag, 2nd edition, 2021. ISBN 978-3-030-69807-2. doi: 10.1007/978-3-030-69808-9.
Installing
To install libf0, please run
pip install libf0[dev,tests,docs]
with the following optional dependencies:
dev: for development and running the demo notebook.tests: for running the unittests.docs: to build the API docs.
Documentation
You can find the API documentation for libf0 here:
https://groupmm.github.io/libf0
Contributing
We are happy for suggestions and contributions. We would be grateful for either directly contacting us via email (meinard.mueller@audiolabs-erlangen.de) or for creating an issue or pull request in our Github repository.
Tests
We provide automated tests for each algorithm. To execute the test script, run
pytest tests
Licence
The code for this toolbox is published under an MIT licence.
Acknowledgements
This work was supported by the German Research Foundation (MU 2686/13-1, SCHE 280/20-1). We thank Edgar Suárez and Vojtěch Pešek for helping with the implementations. Furthermore, we thank Fatemeh Eftekhar and Maryam Pirmoradi for testing the toolbox. The International Audio Laboratories Erlangen are a joint institution of the Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU) and Fraunhofer Institute for Integrated Circuits IIS.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file libf0-1.1.1.tar.gz.
File metadata
- Download URL: libf0-1.1.1.tar.gz
- Upload date:
- Size: 20.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e21a41474831d035410a809e4a6c282f7bb57048bfac146bb23a9b3544585e51
|
|
| MD5 |
6980947ceb7ae462de5d2ae2a64ae5d0
|
|
| BLAKE2b-256 |
1f7b5ebbff5636aefefba7d3fd988877f973bc1c0fbb01787f80c5211b3c1e06
|
Provenance
The following attestation bundles were made for libf0-1.1.1.tar.gz:
Publisher:
publish_pypi.yml on groupmm/libf0
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
libf0-1.1.1.tar.gz -
Subject digest:
e21a41474831d035410a809e4a6c282f7bb57048bfac146bb23a9b3544585e51 - Sigstore transparency entry: 831891698
- Sigstore integration time:
-
Permalink:
groupmm/libf0@35432913854554450667b16accbc9ebad232c1b8 -
Branch / Tag:
refs/tags/v1.1.1 - Owner: https://github.com/groupmm
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_pypi.yml@35432913854554450667b16accbc9ebad232c1b8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file libf0-1.1.1-py3-none-any.whl.
File metadata
- Download URL: libf0-1.1.1-py3-none-any.whl
- Upload date:
- Size: 23.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97c02b5a275e3319ab02213e9834bc87061803779f9b58ba63321ddf7a4bfa10
|
|
| MD5 |
d5f73304dee6b59851da39a8fc82bc94
|
|
| BLAKE2b-256 |
a71339d21ae28fe15d3fe8dc2a3d03f208151516e360d6742a0e7f5a8f3ccbaa
|
Provenance
The following attestation bundles were made for libf0-1.1.1-py3-none-any.whl:
Publisher:
publish_pypi.yml on groupmm/libf0
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
libf0-1.1.1-py3-none-any.whl -
Subject digest:
97c02b5a275e3319ab02213e9834bc87061803779f9b58ba63321ddf7a4bfa10 - Sigstore transparency entry: 831891716
- Sigstore integration time:
-
Permalink:
groupmm/libf0@35432913854554450667b16accbc9ebad232c1b8 -
Branch / Tag:
refs/tags/v1.1.1 - Owner: https://github.com/groupmm
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_pypi.yml@35432913854554450667b16accbc9ebad232c1b8 -
Trigger Event:
push
-
Statement type: