DOI: 10.5281/zenodo.57999
title: Experiments Of The Paper "Morty: A Toolbox For Mode Recognition And Tonic Identification"

description: This package contains the complete experimental data explained in:


Karakurt, A., Şentürk S., & Serra X. (In Press).  MORTY: A Toolbox for Mode Recognition and Tonic Identification. 3rd International Digital Libraries for Musicology Workshop. 


Please cite the paper above, if you are using the data in your work.

The zip file includes the folds, features, training and testing data, results and evaluation file. It is part of the experiments hosted in github (https://github.com/sertansenturk/makam_recognition_experiments/tree/dlfm2016) in the  folder call ".<strong>/data</strong>". We host the experimental data in Zenodo (http://dx.doi.org/10.5281/zenodo.57999) separately due to the file size limitations in github.

The files generated from audio recordings are labeled with 16 character long MusicBrainz IDs (in short "MBID"s) Please check http://musicbrainz.org/ for more information about the unique identifiers. The structure of the data in the zip file is explained below. In the paths given below <em>task</em> is the computational task ("tonic," "mode" or "joint"), <em>training_type</em> is either "single" (-distribution per mode) or "multi" (-distribution per mode),  <em>distribution</em> is either "pcd" (pitch class distribution) or "pd" (pitch distribution), <em>bin_size</em> is the bin size of the distribution in cents, <em>kernel_width</em> is the standard deviation of the Gaussian kernel used in smoothing the distribution, <em>distance</em> is either the distance or the dissimilarity metric, <em>num_neighbors</em> is the number or neighbors checked in <em>k</em>-nearest neighbor classification and <em>min_peak</em> is the minimum peak ratio. 0 <em>kernel_width</em> implies no smoothing. <em>min_peak </em>always takes the value 0.15. For a thorough explanation please refer to the companion page (http://compmusic.upf.edu/node/319) and the paper itself.


	<strong>folds.json: </strong>Divides the test dataset (https://github.com/MTG/otmm_makam_recognition_dataset/releases) into training and testing sets according to stratified 10-fold scheme. The annotations are also distributed to sets accordingly. The file is generated by  the Jupyter notebook <em>setup_feature_training.ipynb (4th code block)</em> in the github experiments repository (https://github.com/sertansenturk/makam_recognition_experiments/blob/master/setup_feature_training.ipynb).
	<strong>Features:  </strong>The path is <strong>data/features/[distribution--bin_size--kernel_width]/[MBID--(hist </strong><em>or </em><strong>pdf)].json</strong>. "pdf" stands for probability density function, which is used to obtain the multi-distribution models in the training step and "hist" stands for the histogram, which is used to obtain the single-distribution models in the training step. The features are extracted using the Jupyter notebook <em>setup_feature_training.ipynb (5th code block)</em> in the github experiments repository (https://github.com/sertansenturk/makam_recognition_experiments/blob/master/setup_feature_training.ipynb)
	<strong>Training: </strong>The path is <strong>data/training/[training_type--distribution--bin_size--kernel_width]/fold(0:9).json]</strong>. There are 10 folds in each folder, each of which stores the training model (file paths of the <em>distribution</em>s in "multi" <em>training_type</em> or the <em>distribution</em>s itself in "single" <em>training_type</em>) trained for the fold using the parameter set. The training files are generated by the Jupyter notebook <em>setup_feature_training.ipynb (6th code block)</em> in the github experiments repository (https://github.com/sertansenturk/makam_recognition_experiments/blob/master/setup_feature_training.ipynb)
	<strong>Testing: </strong>The path is <strong>data/testing/[task]/[training_type--distribution--bin_size--kernel_width--distance--num_neighbors--min_peak]</strong>. Each path has the folders <strong>fold(0:9)</strong>, which have the evaluation and the results files obtained from each fold. The path also has the <strong>overall_eval.json</strong> file, which stores the overall evaluation of the experiment. The optimal value of <em>min_peak </em>is selected in the 4th code block, testing is carried in the 6th code clock and the evaluation is done in the 7th code block in the Jupyter notebook <em>testing_evaluation.ipynb</em> in the github experiments repository (https://github.com/sertansenturk/makam_recognition_experiments/blob/master/testing_evaluation.ipynb). <br>
	<strong>data/testing/ </strong>folder also contains a summary of all the experiments in the files <strong>data/testing/evaluation_overall.json </strong>and <strong>data/testing/evaluation_perfold.json</strong>. These files are created in MATLAB while running the statistical significance scripts. <strong>data/testing/evaluation_perfold.mat </strong>is the same with the json file of the same filename, stored for fast reading.


For additional information please contact the authors.

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.