MorpheuS Tension Visualiser

You can download version 2.0 of the Morpheus Tension Visualiser here (right click -> save as).

There are two version of the tension visualiser:

  1. XmlTensionVisualiser takes a musicXML file as input
  2. AudioTensionVisualiser takes a text file with pitch info as input

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: