< Back to IRCAM Forum

Organizing chords by harmonicity

Hi everyone!

I am trying to find an object/patch that will:

  1. Determine how closely a chord resembles a harmonic series based on any fundamental.
  2. Arrange the chords in a chord-seq object from most harmonic to least harmonic or vice versa.

Any advice would be appreciated. Happy holidays to all!

Hi Brrandon,

You can start looking in the Esquisse Library. It has the opposite function that depicts a virtual harmonic following a chord. However i think you can start also with a series of harmonics, and depending on chosen criterias, you can of course find if the chord depending on:

  1. Inversions or not ?
  2. pitch approximation or not (1/2, 1/4, 1/8 tone, etc.)

belongs in the harmonic series at what rank etc…
So it is not that automatic to find. Harmonicity will be calculated therefore on the position of the notes chord according to the proximity of the fundamental. So it is up to you to choose what the harmonicity criteria will be.

Hope this helps.
Best Wishes

Hi Brandon and Karim,

There is a myriad of ways one can develop an harmonicity index in OpenMusic. Another thing to consider is cardinality (i.e., the number of distinct notes in a chord), e.g. whether the index is absolute or dependent on a given chord’s cardinality. You can also consider the virtual fundamental (also available in Esquisse) as a cold proxy for harmonicity (the less harmonic a chord is, the lower its virtual fundamental will be.)

All the best,

hello all,

I think this is a more complex task, as ‘resemblance to a (harmonic, or whatever) series’ would depend on a multidimensional measure. as Antonio says, you need to consider cardinality, but also you need to determine what harmonicity is based in, and as Karim points out, what’s the ‘aproximation’. but on top of that you may need to decide something that implies psychoacoustics as well. how do the following three series compare?


A. 1fn, 2.1fn, 2.93fn, 4.1fn, 5.09fn
B. 5fn, 7fn, 9fn, 11fn
C. 1.111fn, 2fn, 3fn, 4fn, 5fn

as can be seen, serie A is inharmonic, B is harmonic, and C a somewhat special case. how would you measure its (dis)similarities? from the psychoacoustical point of view you can address Terhardt and Parncutt, and you if you want to extend this to pitch class sets just go for Morris or Lewin.
sorry for not giving an accurate citation, but a web search will suffice.
pm me if you need more details.


Here’s a few basic steps to get an harmonicity index working in OpenMusic. For a given list of m chords (C1Cm), a given fundamental f, and a given number of harmonics n:

  1. Calculate the list of n harmonics of f, and then proceed to calculate the sublists of the list of harmonics H.

  2. Calculate the euclidean distance of chord Ci to every (equicardinal) sublist of H, and collect the minimum (of euclidean distances) di.

  3. You can finally pair Ci and di in a list.

After sweeping all m chords in (C1Cm) following the steps above, you can then easily compare/order them by their corresponding values of (d1dm) (calculated in step 2 above.)

Hope this helps.

All the best,

Thank you very much everyone. I will work with this and see what I can make.

Much appreciated,