Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

License GitHub release JDK Build Status


MelodyShape is an open source Java library and tool to compute the melodic similarity between monophonic music pieces. It implements several algorithms that compute similarity based on the geometric shape that melodies describe in the pitch-time plane.

All these algorithms have obtained the best results in the MIREX Symbolic Melodic Similarity task in 2010, 2011, 2012, 2013, 2014 and 2015 editions, as well as the best results reported for the 2005 collection.

MelodyShape can be run both as a graphical user interface and as a command line tool:

$ java -jar melodyshape-1.4.jar
usage: melodyshape-1.4 -q <file/dir> -c <dir> -a <name> [-k <cutoff>] [-l] [-t <num>] [-v] [-vv] [-gui] [-h]
-q <file/dir>  path to the query melody or melodies.
-c <dir>       path to the collection of documents.
-a <name>      algorithm to run:
               - 2010-domain, 2010-pitchderiv, 2010-shape
               - 2011-shape, 2011-pitch, 2011-time
               - 2012-shapeh, 2012-shapel, 2012-shapeg, 2012-time, 2012-shapetime
               - 2013-shapeh, 2013-time, 2013-shapetime
               - 2014-shapeh, 2014-time, 2014-shapetime
               - 2015-shapeh, 2015-time, 2015-shapetime
-k <cutoff>    number of documents to retrieve.
-l             show results in a single line (omits similarity scores).
-t <num>       run a fixed number of threads.
-v             verbose, to stderr.
-vv            verbose a lot, to stderr.
-gui           run with graphical user interface.
-h             show this help message.

MelodyShape 1.4  Copyright (C) 2013-2016  Julian Urbano <>
This program is distributed under the terms of the MIT License.

A detailed user manual in PDF is available from the releases page.


  • The MelodyShape library uses the Math library from Apache Commons.
  • The command line tool uses the CLI library from Apache Commons.

Dependencies and building can be managed directly with Maven.

Current Version

The current version is MelodyShape 1.4, and it is compiled for Java 7. It can be redistributed and/or modified under the terms of the MIT License. Javadoc documentation and a user manual are available as well.

This work was supported by an A4U postdoctoral grant and a Juan de la Cierva postdoctoral fellowship.


A Library and Tool for Symbolic Melodic Similarity based on Shape Similarity







No packages published