MorpheuS Tension Visualiser

You can download version 2.0 of the Morpheus Tension Visualiser here (right click -> save as).
(Note: some xml files with meter changes get an error, please use this jar file instead for them. Note that changes of number of divisions per quarter note during the piece are not taken into consideration yet).

There are three version of the tension visualiser:

  1. XmlTensionVisualiser takes a musicXML file as input
  2. AudioTensionVisualiser takes a text file with pitch info as input
  3. NEW: Python version (Midi miner) based on midi

For more information on how the tension is calculated, please see our paper:

Herremans D., Chew E.. 2016. Tension ribbons: Quantifying and visualising tonal tension. Second International Conference on Technologies for Music Notation and Representation (TENOR).

1. XmlTensionVisualiser

To run:
java -jar XmlTensionVisualiser.jar -inputfile "yourfile" [options]

Option switches (run with -h to see all switches):
-h,--help show help.
-inputfile,--var Input musicXML file.
-meterUnits,--var option only used to change the inscore
rendering: number of units of meter. Default
value is 4.
-windowLength,--var Length of the windows expressed as 4
(quarter note), 8, 16, etc. (This setting
has preference over windowsPerBar.) Default
value is 1 eight note.
-windowsPerBar,--var The number of windows per bar used to
calculate the tension. (depreciated)


  1. inscore files with tension ribbons (drag into the inscoreviewer to view, you also need to convert your xml to gmn.
  2. three data files with the tension data for each segment (for each tension measure)
  3. A graph of the tension (in html)

2. AudioTensionVisualiser

To run:

java -jar AudioTensionVisualiser.jar -inputfile "yourfile" [options]

The inputfile is a text file and should look like this:

A A B C# F

--> each line is a "cloud" or window
--> pitch classes are weighted according to their occurence on each line


  1. three data files with the tension data for each segment (for each tension measure)
  2. A graph of the tension (in html)

If you use this code, please refer to our paper. Should you have any trouble, please let me know.

More about the model:

This project has received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie grant agreement No 658914.