Harmony Analyzer 3.2

Please, note that applets are no longer under supported under java 9 and hence the programs will not run under java runtime environment after 2017, but it n now runs under google chrome with the extension CheerpJ Applet Runner.

In short, the programme below (applet) allows to analyze (analyse) harmonies of tonal, a-tonal, free-tonal and any other music based within the 12 tone equal temperament tuning system.

This programme is the product of further development of Harmony Analyzer 1.0 and Harmony Analyzer 2.0. The most important contributions were made by Fridolin Hofmann (who changed the gui from a picture to an object) and Ludger Hofmann-Engl (who added the bass notes). However, the programme is under further development. Harmony Analyzer 3.1 additionally displayed the bass notes played to a given chord. Harmony Anayzer 3.2 has been made compatible with Java 7 by Fridolin Hofmann.

The algorithm behind this software is based upon the concept of virtual pitch as introduced by Terhardt and mathematically adjusted and corrected by Hofmann-Engl. Additionally, the harmony analyzer can compute the degree of consonance/dissonance to a given chord (called sonance) as well as the order of roots according to their ability to match the chord as root notes.

The programme is more or less self-explanatory. Keys can be selected via mouse clicks. A selected key will be marked by a red circle. Unselecting a single key requires simply a second click. If all keys are to be unselected, the 'clear' button can be pressed. In order to hear the chord press 'play'.

The calculation (pressing the 'calculate' button) to a selected chord produces the following data:

For instance, try the chord: c - c# - f# (Webern Triad). It is the most discordant chord consisting of three tones. The most suitable bass note is d. Playing c - c# - f# and adding d in the bass will produce a surprisingly nice result.

All problems about playback and the selection of keys as present in version 1.0 and 2.0 have been resolved.

A new addition to this version is the possibility to sound the roots the program has calculated. Once the data for a chord are calculated, the option exists to select bass notes which are supposed to be the best, second best etc. roots to the chord.

This program is still under development and suggestions are more than welcome (source code). However, all parts of this software are copyright protected and are the intellectual property of the authors.

In case the applet does not load, it might be that your browser requires Java runtime environment. This can be downloaded for linux, windows, apple and solaris at http://www.java.com/en/download/manual.jsp.Other java runtime environments are GCJ, OpenJDK and Sun/Oracle JDK. Under Mint 13 and Ubuntu 12 the applet runs using Firefox and Opera equally well and with sound. Using other linux systems might require the java plugin Iced Tea. (September, 2012).

Some information on the algorithm used for this software and its implications for composition can be found in a small paper by L. Hofmannn-Engl as presented during the VI Brazilian symposium of computer music in Rio de Janeiro in 1999 here. A second article discussing the psychological and algorithmic aspects of virtual pitch applying these to contemporary harmonic analysis (2004) can be found here. A third paper, which demonstrats that the temporal approach to virtual pitch is erratic and which was presented during the International Conference on Music Perception and Cognition (Bolongna, Italy - 2006), can be found here. Finally, a paper using virtual pitch to provide supporting evidence for the Riemann system which was delivered during ICMPC 10 in Sapporo (Japan) in 2008, can be found here.

The author welcomes enquires and suggestions on how to improve the program. Please, feel free to contact the author on:

Ludger Hofmann-Engl


Comments about the applet or aspects to virtual pitch are very welcome. Please use the message window to add a comment to the guestbook




View the guestbook


Chameleon Group of Composers 2023