{"action":"published","release":{"url":"https://api.github.com/repos/altugkarakurt/morty/releases/3352480","assets_url":"https://api.github.com/repos/altugkarakurt/morty/releases/3352480/assets","upload_url":"https://uploads.github.com/repos/altugkarakurt/morty/releases/3352480/assets{?name,label}","html_url":"https://github.com/altugkarakurt/morty/releases/tag/v1.2.0","id":3352480,"tag_name":"v1.2.0","target_commitish":"master","name":"morty v1.2.0","draft":false,"author":{"login":"sertansenturk","id":4540641,"avatar_url":"https://avatars.githubusercontent.com/u/4540641?v=3","gravatar_id":"","url":"https://api.github.com/users/sertansenturk","html_url":"https://github.com/sertansenturk","followers_url":"https://api.github.com/users/sertansenturk/followers","following_url":"https://api.github.com/users/sertansenturk/following{/other_user}","gists_url":"https://api.github.com/users/sertansenturk/gists{/gist_id}","starred_url":"https://api.github.com/users/sertansenturk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sertansenturk/subscriptions","organizations_url":"https://api.github.com/users/sertansenturk/orgs","repos_url":"https://api.github.com/users/sertansenturk/repos","events_url":"https://api.github.com/users/sertansenturk/events{/privacy}","received_events_url":"https://api.github.com/users/sertansenturk/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2016-06-01T19:35:21Z","published_at":"2016-06-01T19:37:33Z","assets":[],"tarball_url":"https://api.github.com/repos/altugkarakurt/morty/tarball/v1.2.0","zipball_url":"https://api.github.com/repos/altugkarakurt/morty/zipball/v1.2.0","body":"### morty\r\n**MO**de **R**ecognition and **T**onic **Y**dentification Toolbox\r\n\r\n### Introduction\r\n**morty** is a toolbox for mode recognition and tonic identification in audio performances of \"modal\" music cultures. The toolbox is based on well-studied pitch histogram analysis. It implements two state of the art methods applied to Ottoman-Turkish makam music (A. C. Gedik and B.Bozkurt, 2010) and Hindustani music (P. Chordia and S. Şentürk, 2013). Moreover, it contains our implementation of a multi-layer perceptron neural network for mode recognition.\r\n\r\nThe main purpose of the toolbox is to provide a quick access to automatic tonic identification and mode recognition implementations for music cultures, for which these tasks have not been addressed and provide a baseline for novel methodologies to be compared against. Therefore, the implementations are designed such that there is no \"computational-bias\" towards a particular culture yet any culture-specific optimization can be easily introduced in the context of the implemented methodologies. \r\n\r\nThe pitch distribution and pitch class distributions implemented in this package can be additionally used for other relevant tasks such as [tuning analysis](https://github.com/miracatici/notemodel), [intonation-analysis](https://github.com/sertansenturk/alignednotemodel) and [melodic progression analysis](https://github.com/sertansenturk/seyiranalyzer). Furthermore the applied analysis can be used in cross-cultural comparisons.\r\n\r\n### Description\r\nThe methodologies proposed in (A. C. Gedik and B.Bozkurt, 2010) and (P. Chordia and S. Şentürk, 2013) are based on the musical assumption that the tuning and the relative occurence of the melodic intervals in the performances belonging to the same mode should also be similar.\r\n\r\nGiven the annotated tonics and makams for a set of training audio performances, both methods extract predominant melody of each performance and then compute models based on pitch histograms (pitch distributions or pitch-class distributions) for each mode using the extracted predominant melodies. Note that the training performances can be entire recordings or an excerpt.\r\n\r\nIn the case of multi-layer perceptron networks, the pitch class distribution of recordings or excerpts are computed and used as feature vectors. The network is composed of two layers, the first of which is the input layer and has the same length as the pitch class distributions and the latter is the output layer and is the same size as the number of modes. Each output is treated as the network's confidence of this recording belonging to a particular mode and the highest of these correspond to the predicted mode by the network.\r\n\r\nIn our context, these models are used in three similar computational tasks:\r\n- **Mode Recognition:** Given an audio performance with known tonic, the pitch histogram computed from the performance is compared with the model produced for each mode. The mode belonging to the most similar model will be classified as the estimated mode.\r\n- **Tonic Identification:** Given an audio performance with known mode, the pitch histogram computed from the performance is shifted and compared with the model of the mode. The shift that produces the highest similarity will indicate the estimated tonic.\r\n- **Joint Estimation:** Given an audio performance with unknown tonic and mode, the pitch histogram computed from the performance is shifted and compared with the model of each mode. The most similar shift and the mode of the matching model yields the estimated tonic and the mode jointly.\r\n\r\nFor an indepth explanation of the concept and the methodologies, please refer to the papers.\r\n\r\n### Usage\r\nThis algorithms expect the predominant melody of the audio performances as the input and generates pitch distributions (PD) or pitch class distributions (PCD) from them. These distributions are used as the features for the training and the estimation.\r\n\r\nThe algorithms can be used for both **estimating tonic and mode of a piece**. When either of these two is available and this information could be fed into the algorithm, and hence the estimation would be more accurate.\r\n\r\nSince the training step is a supervised machine learning process, a dataset for each mode, including audio with annotated tonic frequencies, is preliminary. Basically the steps for the methodologies are:\r\n* Train the candidate modes by using the collections of predominant melodies of respective modes extracted from the annotated audio.\r\n* Feed the predominant melody of the testing audio with the known attributes (tonic or mode), if any, and obtain the estimation(s).\r\n\r\nPlease refer to the jupyter notebooks in the [demos](https://github.com/altugkarakurt/morty/tree/master/demo) folder for the basic usage.\r\n\r\nIf the predominant melodies are not available, [melodyextraction.py](https://github.com/altugkarakurt/morty/blob/master/extras/melodyExtraction.py) method in the extras package can be used for automatic predominant melodies extraction. This method is a wrapper [implementation](https://github.com/sertansenturk/predominantmelodymakam) of the predominant melody extraction methodology proposed by Atlı et. al (2014) to store the pitch track in the desired format. The input pitch track is expected to be in given as a .txt file, that consists of a single column of values of the pitch track in Hertz. The timestamps are not required. Note that the default parameters for predominant melody extraction are optimized for Ottoman-Turkish makam music, so you might want to calibrate the parameters according to the necessities of the studied music culture.\r\n\r\n### Installation\r\n\r\nIf you want to install the repository, it is recommended to install the package and dependencies into a virtualenv. In the terminal, do the following:\r\n\r\n    virtualenv env\r\n    source env/bin/activate\r\n    python setup.py install\r\n\r\nIf you want to be able to edit files and have the changes be reflected, then install the repository like this instead\r\n\r\n    pip install -e .\r\n\r\nThe algorithm uses several modules in Essentia. Follow the [instructions](essentia.upf.edu/documentation/installing.html) to install the library.\r\n\r\nFor the functionalities in the extras package, you can install the optional dependencies as:\r\n\r\n    pip install -r optional_requirements\r\n\r\n### Explanation of Classes\r\n- *PitchDistribution* is the class, which holds the pitch distribution. It also includes save and load functions to make the pitch distributions accessible for later use.\r\n\r\n- *KNNClassifier* class implements and generalizes the methods proposed in (A. C. Gedik, B. Bozkurt, 2010) and (B. Bozkurt, 2008) and (P. Chordia and S. Şentürk, 2013).\r\n\r\n### Changelog\r\n - Corrected Jensen–Shannon distance and added Jeffrey's divergence\r\n - Converted intersection and cross-correlation to dissimilarities\r\n - Fixed the division by int problems by importing future division\r\n - Added merge method to PitchDistribution\r\n - Fixed the bin number mismatch in smoothen method in PitchDistribution\r\n - Changed minimum peak threshold\r\n - Refactored several variables and classes\r\n - Several bug fixes in unit conversion, distance matrix generation, ranking etc.\r\n\r\n### References\r\n\r\n> A. C. Gedik, B.Bozkurt, 2010, \"Pitch Frequency Histogram Based Music Information Retrieval for Turkish Music\", Signal Processing, vol.10,\r\n\r\n> B. Bozkurt, 2008, \"An automatic pitch analysis method for Turkish maqam music\", Journal of New Music Research 37 1–13.\r\n\r\n> P. Chordia. and S. Şentürk. (2013). Joint recognition of raag and tonic in North Indian music. Computer Music Journal, 37(3):82–98.\r\n\r\n> H. S. Atlı, B. Uyar, S. Şentürk, B. Bozkurt, and X. Serra (2014). Audio feature extraction for exploring Turkish makam music. In Proceedings of 3rd International Conference on Audio Technologies for Music and Media, Ankara, Turkey.\r\n"}}
{"actor":{"display_login":"sertansenturk"}}