Melodic irrationalities

Da raspibo.

The tempered scale is a way to equally distribute the errors between notes. When an instrument is tuned according the tempered scale it means that it has been put out of tune in an homogeneous manner.

But I have always wondered about the idea of harmony. Our tempered chords are less or more melodic than their perfect counterparts? I mean: are we loosing something because our instruments have to approximate rational numbers with the closest step in a discretization of a equispaced sequence of frequency logarithms?

A perfect fifth (in mathematical meaning) is the ratio between the third and second harmonic: 3/2. A perfect third is the ratio between the fifth and fourth: 5/4. A "perfect" A major chord is then composed by the following three frequencies in Hz:

 [440, 550, 660]

but, due to the tempered tuning, when we play that chord on an instrument (say a keyboard) we force our tool to emit the following frequencies:

 [440, 554.3653..., 659.2551...]

i.e. A=440hz, A times 2^(5/12), A times 2^(7/12). Similarly, the perfect minor chord is:

 [440, 528, 660]

as the natural third has the ratio 6/5 and the tempered minor chord is:

 [440, 523.2511..., 659.2551...]

Lissajous curves appear on a oscilloscope when the tracing point is driven in X/Y mode by two sinusoidal inputs having a rational ratio between their frequency. In order to plot a chord we'd need a 3D oscilloscope, which does not exist as a physical tool (as far as I know). In fact, the three notes of the chord has to drive the position along the three axis of our virtual oscilloscope.

I implemented a (quick and dirty) 3D virtual oscilloscope using Python and and the vpython library. By this virtual 3D oscilloscope I can observe all the 3D curves generated by the four chords above and I can compare them with the sound of the chords.

The result is documented in the following movies.

First Movie Second Movie

In each movie the sequence of the chords is: perfect Major, tempered Major, perfect minor, tempered minor. The soudtrack is always (almost) consistent with the plotted chord. In the first movie we can see one still projection of each 3D curve. As the reader can see, the perfect chords are 3D Lissajous curves. The minor chord is more convoluted than the major chord, both seem to be strange knots. The signal redraws these "knots" passing all the times on the same path, generating the color effects on the "ropes". On the contrary in the tempered scale the frequency ratios are irrational numbers, so the path never returns on its previous trajectory.

In the second movie, I have changed the point of vision during the animation, to that the viewer can have a view of the chords on different perspectives.

The difference in the sound is subtle, but can be perceived. To me, the perfect chords seem more flat, maybe too perfect to express human feelings. The tempered chords, with their imperfections, sound better. This continuous evolution of the correlation among the three tones of the chord can create other effects, beats. On some projetions of the 3D animation, the tempered chord generate some temporary fish-shaped trajectories which appear, disappear, appear again but the tail of the fish is on the other direction.

Is my preference related to my culture? I am used to the tempered 12 semitones scale as I grew up in the twentieth century, I am living in the twentyfirst and in the west world.

Anyway I like the idea to be able to watch the chords, and to watch their appearance. If I met them in person, I can say that I know them better, now.

(C) CC-BY-SA Unported Renzo Davoli 2014

In this directory you'll find:

  • toneM.wav toneN.wav: the major chords, the former is the tempered one, the latter is the mathematical chord (or natural

or perfect)

  • tonem.wav tonen.wav: the minor chords, in the same way tonem is tempered, tonen is mathematical
  • (python3 source, it needs the wave package). This program generated sound files of the chord you want to test. Use it in this way (args are the three frequencies in Hz, the number of samples and the name of the output file):
  ./ 440 550 660 100000 /tmp/toneM.wav
  ./ 440.0 440.0*(2.0**(4.0/12)) 440.0*(2.0**(7.0/12)) 100000 /tmp/toneN.wav
  • (python2, needs python-visual a.k.a. vpython) gives you an interactive 3D view of the chord.
  ./ 440 550 660
  ./ 440.0 440.0*(2.0**(4.0/12)) 440.0*(2.0**(7.0/12))

Using the resources here above you can repeat my experiments, watch the chords from different perspectives, create new experiments and/or listen carefully to the chord samples to test the difference between them.

Strumenti personali