Skip to content

predominantmelodymakam v1.3.0

Latest
Compare
Choose a tag to compare
@sertansenturk sertansenturk released this 29 Jan 00:30
· 1 commit to master since this release
0584bf8

GitHub version Build Status Code Climate DOI License: AGPL v3

predominantmelodymakam

Predominant melody extraction for makam music

This repository hosts the Python (2 & 3) implementation of the predominant melody extraction method proposed for makam music in:

Atlı, H. S., Uyar, B., Şentürk, S., Bozkurt, B., and Serra, X. (2014). Audio feature extraction for exploring Turkish makam music. In Proceedings of 3rd International Conference on Audio Technologies for Music and Media, pages 142–153, Ankara, Turkey.

If you are using this extractor please cite the above paper.

The extractor is based on the methodology by [2]. The contour selection step in [2] is trained on the specific characteristics of Western pop music and jazz. We remove this step and use a simplified contour selection step by selecting the longest contour at each time instance and discarding all other contours. Then we use the method proposed in [3] to remove the erroneous pitch estimations and correct octave errors.

Usage

from predominantmelodymakam.predominantmelodymakam import PredominantMelodyMakam
extractor = PredominantMelodyMakam()
results = extractor.run(audiofile)

Please refer to demo.ipynb for an interactive demo.

Changelog

  • Added Python 3 support (contribution by Oriol Romani: #10)

Installation

If you want to install the repository, it is recommended to install the package and dependencies into a virtualenv. In the terminal, do the following:

virtualenv env
source env/bin/activate
python setup.py install

If you want to be able to edit files and have the changes be reflected, then install the repo like this instead:

pip install -e .

Now you can install the rest of the dependencies:

pip install -r requirements

The algorithm uses several modules in Essentia. Follow the instructions to install the library.

FOR PYTHON 2 ONLY: You should link the python bindings of Essentia in the virtual environment:

ln -s /usr/local/lib/python2.7/dist-packages/essentia env/lib/python2.7/site-packages

To run the demo.ipynb Jupyter notebook, you need to install jupyter and matplotlib:

pip install matplotlib jupyter

Authors

Hasan Sercan Atlı [email protected]
Sertan Senturk [email protected]

License

The source code hosted in this repository is licensed under Affero GPL version 3.

The extracted predominant melody and the figure in this repository are licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Acknowledgements

We would like to thank Dr. Robert Garfias for allowing us to use his makam music collection in our research (in this repository the recording with MBID: d2731692-626d-4a6d-9b67-a70c9e7b9745).

References

[1] Atlı, H. S., Uyar, B., Şentürk, S., Bozkurt, B., and Serra, X. (2014). Audio feature extraction for exploring Turkish makam music. In Proceedings of 3rd International Conference on Audio Technologies for Music and Media, Ankara, Turkey.
[2] Salamon, J., Gómez, E. (2012). "Melody Extraction from Polyphonic Music Signals using Pitch Contour Characteristics", IEEE Transactions on Audio, Speech and Language Processing, 20(6):1759-1770
[3] Bozkurt, B. (2008). "An Automatic Pitch Analysis Method for Turkish Maqam Music," Journal of New Music Research. 37(1):1-13.