Tonal analysis of musical works

Musical works encod­ed in the Bol Processor (using “sim­ple notes” accord­ing to English, Italian/Spanish/French and Indian con­ven­tions) can be analysed in terms of har­mon­ic or melod­ic intervals.

The musi­cal aspects are dis­cussed after a descrip­tion of the process.

In the final sec­tion, we present a one-click method for eval­u­at­ing the suit­abil­i­ty of all doc­u­ment­ed tun­ing sys­tems for a giv­en piece of music. A demo of this analy­sis can be found on the Bach well-tempered tonal analy­sis.

Basic process

This cal­cu­la­tion is start­ed by press­ing the ANALYZE INTERVALS but­ton at the bot­tom of the ‘Data’ window:

The machine found a ‘-cs.tryTunigs’ dec­la­ra­tion at the top of the data con­tent, indi­cat­ing that it should pick up the tonal scale def­i­n­i­tions con­tained in this Csound resource. These def­i­n­i­tions are only acces­si­ble if ‘-cs.tryTunigs’ was opened less than 24 hours ago: these files are stored in the ‘temp_bolprocessor’ fold­er which is auto­mat­i­cal­ly cleaned up of old stor­age. Click on the ‘open’ link if necessary.

The ana­lyt­i­cal process is demon­strat­ed using a sin­gle phrase of François Couperin’s Les Ombres Errantes import­ed from a MusicXML score — see the Importing MusicXML scores page. This exam­ple is small enough to allow a visu­al check of the tech­ni­cal process, but too short to allow a mean­ing­ful musi­cal inter­pre­ta­tion of the result.

In Bol Processor nota­tion (English con­ven­tion), the musi­cal item reads as fol­lows — read the Polymetric struc­tures page:


_rndtime(20) {_tempo(13/15) _vel(64){3, _legato(20) C5 _legato(0) {1/4,C5 B4 C5}{3/4,B4} _legato(20) Eb5,{1/2,Eb4}{5/2,G4 D4 F4 C4 Eb4},Eb4 D4 C4}} {_tempo(13/15) _vel(64){4, _legato(0) {1/4,Eb5 D5 Eb5}{3/4,D5} _legato(20) C5 _legato(0) {1/4,C5 B4 C5}{3/4,B4}{1/8,C5 B4}{7/8,C5},{4,B3 F4 Eb4 G4 D4 F4 C4 Eb4},B3 Eb4 D4 C4}}

Beginning of “Les Ombres Errantes”
Scale “Rameau en sib” (see full image)

The sound pro­duc­tion used the Csound resource file ‘-cs.tryTunings’ which con­tains the tonal scale ‘rameau_en_sib’ — see the page Comparing tem­pera­ments. This scale prob­a­bly pro­vides the best tun­ing for this piece when played on a “harpsichord-like” Csound instrument.

The machine has picked up a def­i­n­i­tion of the tonal scale in a tem­po­rary copy of ‘-cs.tryTunings’. The essen­tial con­tent of this def­i­n­i­tion is the set of tonal posi­tions in the scale shown in the image — see the Microtonality page.

Click on the ANALYZE INTERVALS but­ton and the fol­low­ing screen appears:

Analysis of melod­ic and har­mon­ic inter­vals in a short frag­ment of “Les Ombres errantes”

The table above gives a sum­ma­ry of match­ing inter­vals: pairs of notes played one after the oth­er (melod­ic) or one above the oth­er (har­mon­ic), dis­tin­guish­ing between ascend­ing and descend­ing melod­ic inter­vals. These match­es can be checked in the graph­i­cal rep­re­sen­ta­tion of this item:

Intervals are list­ed in descend­ing order of impor­tance. For exam­ple, the melod­ic inter­val ‘C’ to ‘B’ occurs in 20.3 beats, the high­est num­ber. Ascending melod­ic inter­vals ‘B’ to ‘F’ and ‘D’ to ‘B’ are the least fre­quent. Values less than 5% of the max­i­mum in the col­umn are ignored in the graph­i­cal display.

Harmonic (left) and melod­ic (right) intervals

Interestingly, the high­est scores of har­mon­ic inter­vals in this musi­cal phrase are minor thirds such as ‘D’/‘B’ and ‘C’/‘Eb’. The fifth ‘C’/‘G’ is scored only 1.6 beats, which is 18% of the high­est score.

The detec­tion of a “har­mon­ic inter­val” is based on the com­par­i­son of its start and end dates with options that can be mod­i­fied. Let $start1, $end1, $start2 and $end2 be the tim­ings of two notes. We assume $start2 >= $start1 due to a pre­lim­i­nary chrono­log­i­cal sort­ing of the list of notes. The matching_intervals() func­tion does the fol­low­ing to eval­u­ate har­mon­ic intervals:

$duration1 = $end1 - $start1;
$duration2 = $end2 - $start2;
$overlap = $end1 - $start2;
$smallest_duration = $duration1;
if($duration2 < $duration1) $smallest_duration = $duration2;

if($smallest_duration < $min_dur) return FALSE;
if($start1 + ($duration1 / 2.) < $start2) return FALSE;
if($overlap < ((1 - $ratio) * $smallest_duration)) return FALSE;
return TRUE;

This func­tion elim­i­nates brief over­laps of time inter­vals, such as those cre­at­ed by slurs inter­pret­ed as _legato() per­for­mance con­trols when import­ing MusicXML scores — see details. It also elim­i­nates notes with dura­tions less than $min_dur, option­al­ly set to 500 mil­lisec­onds. For exam­ple, short notes such as ‘C5’, ‘B4’, ‘Eb5’, etc., are dis­card­ed. Finally, it checks that $over­lap is greater than a frac­tion of the small­est dura­tion, with $ratio set to 0.25 by default. Another option, not shown here, is the max­i­mum tonal dis­tance between two notes, which is set to 11 semi­tones by default.

The con­di­tions for match­ing melod­ic inter­vals are similar:

if($start2 > ($end1 + $max_gap)) return FALSE;
if($start1 + ($duration1 / 2.) >= $start2) return FALSE;
if($overlap >= ($ratio * $smallest_duration)) return FALSE;
return TRUE;

The $max_gap para­me­ter (typ­i­cal­ly 300 mil­lisec­onds) is the max­i­mum delay between the end of the first note and the begin­ning of the next one.

All para­me­ters can be changed before the process is restart­ed. These set­tings are dis­cussed later:

Default set­tings for tonal analysis


Detailed tonal analysis

To check the sequence of time inter­vals in great detail it is pos­si­ble to acti­vate the “Display all dates” option yield­ing a detailed analysis.

All match­ing inter­vals will be list­ed. It is not prac­ti­cal to use this option on large pieces of music…

Dates are in sec­onds, round­ed to 0.1s, although more accu­rate val­ues are used. In fact, all time cal­cu­la­tions are based on whole num­bers, as in the Bol Processor console.

The result is always debat­able. For exam­ple, some melod­ic or har­mon­ic inter­vals may appear “acci­den­tal” rather than significant.

For this and oth­er rea­sons, it may be nec­es­sary to explore oth­er options relat­ed to musi­cal and per­for­mance styles.

Graphic display

Melodic and har­mon­ic tonal inter­vals are dis­played against the back­ground of the tonal scale used for the per­for­mance. Here it would be ‘rameau_en_sib’, although by default an equal-tempered scale is used.

Clicking on the links to the har­mon­ic inter­val pic­tures (see image above) will bring up the fol­low­ing three graphs — in sep­a­rate and resiz­able windows:

Display of har­mon­ic inter­vals. The ‘rameau_en_sib’ scale is in the middle.

Intervals are shown as gold high­lights with widths pro­por­tion­al to their rel­a­tive val­ues. In the left-hand image, these gold­en seg­ments are drawn behind the fifths, major and minor thirds marked on the scale. For this rea­son, the yel­low high­light­ing of the link between Eb and G, behind the green link of a har­mon­ic major third, is less vis­i­ble in the full image.

Minor thirds (ratio 6/5) have been added to the set­tings. For this rea­son, those avail­able in this scale are shown as black seg­ments. These addi­tion­al ratios are list­ed at the top right of each image.

Restricted analysis

If a MusicXML file has been import­ed along with bar num­bers (notat­ed [—1—], [—2—] etc.), these can be used to restrict the analy­sis to a sub­set of the score.

Below is the set­ting of bars #1 to #32 (the Aria) in J.S. Bach’s Goldberg Variations:

Restricting the tonal analy­sis to the Aria in the Goldberg Variations makes sense because oth­er vari­a­tions, due to their high speed, do not show har­mon­ic inter­vals longer than the min­i­mum dura­tion fixed in the set­tings (500 ms).

Musical discussion

Tonal analy­sis with the Bol Processor aims to help choose the most appro­pri­ate tun­ing sys­tem for a piece of music — a tem­pera­ment as defined by Baroque musi­cians. This top­ic is cov­ered on the page Comparing tem­pera­ments.

We first describe a visu­al method for esti­mat­ing (rather than mea­sur­ing) the ade­qua­cy of a tun­ing sys­tem for the per­for­mance of musi­cal works import­ed from MusicXML scores — read the page on this top­ic. In the next sec­tion, we will show how to auto­mat­i­cal­ly com­pare all can­di­date scales, tak­ing into account the rel­e­vant para­me­ters revealed in this section.

Take, for exam­ple, J.S. Bach’s Prelude 1 in C major for which some his­tor­i­cal infor­ma­tion (report­ed by Asselin, 2000 p. 142) sug­gests the choice of a Kirnberger tem­pera­ment. Which one?

Harmonic tonal inter­vals of Bach’s 1st pre­lude ver­sus Kirnberger II and Kirnberger III tun­ing systems

The full rep­re­sen­ta­tion of the har­mon­ic inter­vals is shown above and com­pared with two dif­fer­ent scales described by Kirnberger (Asselin, 2000 p. 90, 93). The match looks bet­ter on the right (Kirnberger III). For exam­ple, the inter­val ‘D’ - ‘A’ is clos­er to a “pure” fifth (702 cents) on Kirnberger III (697) than on Kirnberger II (691). Another sig­nif­i­cant match is the har­mon­ic major third ‘F’ - ‘A’. Other inter­vals are sim­i­lar in terms of these scales.

A care­ful lis­ten­ing to both ver­sions might con­firm this mechan­i­cal analysis:

Kirnberger II
Kirnberger III

For François Couperin’s Les Ombres Errantes, the same crude analy­sis yields no sig­nif­i­cant result. Harmonic inter­val analy­sis may be less rel­e­vant because this piece is more gen­er­al­ly per­ceived as a sequence of melod­ic inter­vals, includ­ing minor thirds and major sec­onds. This can be seen in the graph of melod­ic intervals:

Melodic inter­vals of “Les Ombres Errantes” (full performance)

Comparing this graph with the ‘rameau_en_sib’ scale does not reveal any inter­est­ing pat­terns, for the sim­ple rea­son that nei­ther minor thirds nor major sec­onds have been tak­en into account in this scale in terms of “just into­na­tion” — see page Just into­na­tion: a gen­er­al frame­work. Although we can assume that a Pythagorean major sec­ond (ratio 9/8) sounds more “con­so­nant” than a har­mon­ic one (ratio 10/9), there is no rea­son to sys­tem­at­i­cal­ly claim that the har­mon­ic minor third (ratio 6/5) is “bet­ter” than the Pythagorean one (ratio 32/27).

The pic­ture on the left shows that the fre­quent melod­ic inter­vals of major thirds empha­sise the har­mon­ic major thirds (ratio 5/4) of this scale.

We need to check inter­vals small­er than the major third in the tonal scales. If we tell the machine to check inter­vals close (with­in ± 10 cents) to the har­mon­ic minor third (ratio 6/5), the above graphs will look like this:

Melodic inter­vals of “Les Ombres Errantes” (full per­for­mance) with black mark­ings of “good” minor thirds (6/5) on a ‘rameau_en_sib’ temperament

The pic­ture on the left side shows that all the minor thirds used in this per­for­mance coin­cide with­in ± 10 cents with the har­mon­ic minor thirds (ratio 6/5) of the scale, which is an incen­tive to admit that the ‘rameau_en_sib’ scale would be a fair (per­haps the best) tun­ing option for Les Ombres Errantes.

A counter-example is the match­ing of Les Ombres Errantes with a pure-minor-thirds tem­pera­ment designed dur­ing in 16th cen­tu­ry (Asselin 2000 p. 82, see fig­ure). Below are the graphs of the match­ing melod­ic (left) and har­mon­ic (right) inter­vals, with black lines mark­ing the har­mon­ic minor thirds (ratio 6/5):

Melodic (left) and har­mon­ic (right) inter­vals of “Les Ombres Errantes” against a pure-minor-thirds temperament
“Les Ombres Errantes” with a pure minor thirds tem­pera­ment (16th century)

The main draw­back of this ‘pure_minor_thirds’ tem­pera­ment is the very low posi­tion of ‘Ab’ which is sup­posed to pro­duce a con­so­nant sequence of minor thirds: ‘Ab’ - ‘B’ - ‘D’ - ‘F’. However, ‘Ab’ - ‘B’ is not a melod­ic inter­val found in this piece, nor are ‘Db’ - ‘E’ and ‘E’ - ‘G’, which are well rep­re­sent­ed by the ‘pure_minor_thirds’ tem­pera­ment. There are also dis­crep­an­cies in the har­mon­ic inter­vals, which are easy to hear. We can con­clude that the pure minor thirds tem­pera­ment is nei­ther the best nor the worst tun­ing sys­tem for this musi­cal work, although the com­par­i­son of sound pro­duc­tions sug­gests that it is sig­nif­i­cant­ly less good than the ‘rameau_en_sib’ scale.

Comparing graphs is easy with the detached resiz­able pic­tures pro­duced by the Bol Processor.

A “deaf musicologist’s” approach

The analy­sis shown so far has replaced a com­par­i­son of sound ren­der­ing — see the page Comparing tem­pera­ments — with a visu­al prob­lem of pattern-matching. We have shown that Baroque musi­cians and tuners sought to achieve con­so­nance in terms of sim­ple fre­quen­cy ratios for fifths (close to 3/2) and har­mon­ic major thirds (close to 5/4). This approach and its under­ly­ing assump­tions are dis­cussed on the page Just into­na­tion: a gen­er­al frame­work.

Furthermore, one might be tempt­ed to claim that a “just into­na­tion” minor third should be har­mon­ic (ratio close to 6/5), but the deci­sion should remain open. To this end, it is pos­si­ble to enter an addi­tion­al set of melod­ic and har­mon­ic inter­vals that the ana­lyst con­sid­ers sig­nif­i­cant for the eval­u­a­tion of tonal scales. Each inter­val is defined by an inte­ger ratio — which can be as com­plex as necessary.

Comparative pat­tern match­ing assigns a numer­i­cal score to each scale that has been eval­u­at­ed for its fit with the musi­cal work. This allows the can­di­date scales to be sort­ed. However, two sep­a­rate scores are required, one for melod­ic inter­vals and one for har­mon­ic inter­vals. A weight­ed sum of scores is there­fore used to sort the list of scales.

This method has been imple­ment­ed in the Tonal analy­sis process. We have com­pared all the scales defined in ‘-cs.tryTunings’ — includ­ing in par­tic­u­lar all the tem­pera­ments doc­u­ment­ed by Pierre-Yves Asselin — in terms of their suit­abil­i­ty for the ren­der­ing of melod­ic and tonal inter­vals in François Couperin’s Les Ombres Errantes:

Matching scales for “Les Ombres Errantes”

Great result! The machine con­firms that the scale ‘rameau_en_sib’ is the best can­di­date for the inter­pre­ta­tion of Les Ombres Errantes. Its scores are sig­nif­i­cant­ly bet­ter for both melod­ic and har­mon­ic inter­vals. (A total of 45 tun­ing schemes were tried.)

By default, the eval­u­a­tion of melod­ic and har­mon­ic inter­vals con­sid­ers only per­fect fifths (3/2) and har­mon­ic major thirds (5/4) as “good” inter­vals, with weights of 2 and 1 respec­tive­ly, and wolf fifths (40/27), wolf fourths (320/243) and Pythagorean major thirds (81/64) as “bad” inter­vals, with weights of -2, -2 and -1 respec­tive­ly. All these weights can be mod­i­fied as shown in the image above.

We repeat the com­par­i­son with the addi­tion­al option of har­mon­ic minor thirds (6/5) as melod­ic intervals:

Matching scales, includ­ing har­mon­ic minor thirds (ratio close to 6/5) for melod­ic intervals

As expect­ed, all the melod­ic val­ues increased, but the win­ner remained. If we add the Pythagorean major sec­ond (ratio close to 9/8), we get the following:

Matching scales, includ­ing ratios 6/5 and 9/8 for melod­ic intervals

The ‘rameau_en_sib’ scale is now chal­lenged by ‘sauveur’ for melod­ic inter­vals, but its har­mon­ic score remains higher.

Note that scales Abmaj and Cmin are iden­ti­cal, which explains their equal scores.

A visu­al com­par­i­son of scales with melod­ic inter­val mark­ings shows that there is lit­tle dif­fer­ence between these tem­pera­ments in terms of the per­for­mance of Les Ombres Errantes. Since the ‘sauveur’ tem­pera­ment was designed in 1701 by the (hearing-impaired?) French math­e­mati­cian Joseph Sauveur, it is not unlike­ly that it was used for the com­po­si­tion of Les Ombres Errantes in 1730.

Comparison of ‘rameau_en_sib’ and ‘sauveur’ tem­pera­ments for melod­ic inter­vals in “Les Ombres Errantes”, with addi­tion­al ratios 6/5 and 9/8 dis­played as black lines.

The scale ‘rameau_en_sib’ again scores as good as ‘sauveur’ when the Pythagorean minor third (ratio close to 32/27) is tried as a melod­ic inter­val (both ascend­ing and descend­ing) in place of the ratio 6/5… This is due to the use of ‘F’ - ‘Ab’, which is ren­dered as a Pythagorean minor third by ‘rameau_en_sib’, but not by ‘sauveur’.

Many more checks can be made by chang­ing the weights assigned to the occur­rences of melod­ic and har­mon­ic ratios. Finding the best set­tings requires a thor­ough study of the musi­cal score — this is where human musi­col­o­gists come in!

Ears (plus expert knowl­edge of the score) could make the final decision:

“Les Ombres Errantes”, Rameau en sib temperament
“Les Ombres Errantes”, Sauveur temperament

The ana­lyt­i­cal process we are fol­low­ing is a kind of reverse engi­neer­ing… Obviously, com­posers did not search for a suit­able tem­pera­ment after cre­at­ing a musi­cal work. It is more real­is­tic to assume that they com­posed works on exist­ing instru­ments, with the effect that sets of pieces pro­duced by the same com­pos­er (using the same instru­ment) at a giv­en time obeyed implic­it melod­ic and har­mon­ic con­straints that best suit­ed the tun­ing of their instrument(s).

Comparative study

Let us look again at J.S. Bach’s Prelude 1 in C major, for which Kirnberger III was cho­sen (visu­al­ly) as a bet­ter match than Kirnberger II. Including the ratios 6/5 and 9/8 as pos­si­ble melod­ic up/down inter­vals, and 6/5 as a har­mon­ic inter­val, the fol­low­ing clas­si­fi­ca­tion of tun­ing schemes emerges:

Classification of scales for the inter­pre­ta­tion of J.S. Bach’s Prelude 1 in C major

The win­ner is undoubt­ed­ly ‘sauveur’ although the har­mon­ic score is iden­ti­cal for six tem­pera­ments, but ‘kirnberger_3′ scores much lower.

Note that this was achieved by declar­ing ratios close to 6/5 as pos­si­ble con­so­nant melod­ic and har­mon­ic inter­vals. For a dis­cus­sion of this hypoth­e­sis, see Bach well-tempered tonal analy­sis for a dis­cus­sion of this hypothesis.

Sauveur’s tem­pera­ment is the best suit­ed because of its high pro­fi­cien­cy in har­mon­ic minor thirds (6/5) and Pythagorean major sec­onds (9/8). It also has a com­plete set of per­fect fourths and fifths (3/2) except for the wolf fourth ‘D#’ - ‘G#’, which is almost 477 cents (instead of 498). Fortunately, this inter­val is nev­er used in Bach’s piece:

Matching the melod­ic inter­vals of J.S. Bach’s Prelude 1 in C major with Sauveur’s temperament
J.S. Bach’s Prelude 1 in C major played by the Bol Processor + Csound with Sauveur’s temperament

This ren­der­ing can be com­pared (in terms of tune­ful­ness) with a human per­for­mance on a real harpsichord:

J.S. Bach’s Prelude 1 in C major played on the copy of an instru­ment built by Hans Moerman in Antwerpen (1584). Source: Wikipedia licence CC BY-SA.

Unsurprisingly, J.S. Bach’s Fugue 1 in C major shares the same pref­er­ence for ‘sauveur’, with oth­er tun­ing schemes fol­low­ing in a dif­fer­ent order. All of the fugues in this series of works (books I and II) are asso­ci­at­ed with pre­ludes in the same key.

The tonal analy­sis of J.S. Bach’s Prelude 2 in C minor again selects ‘sauveur’ using the same eval­u­a­tion cri­te­ria — includ­ing the ratios 6/5 (melod­ic and har­mon­ic) and 9/8 (melod­ic up/down). The scor­ing is com­plete­ly dif­fer­ent, but the win­ner is unchanged, although it is chal­lenged by ‘rameau_en_sib’ for its har­mon­ic score.

J.S. Bach’s Prelude 2 in C minor played by the Bol Processor + Csound with Sauveur’s temperament

Note that the Cmin scale has a bad rate because of the melod­ic inter­vals. It beats Sauveur’s tem­pera­ment in terms of har­mon­ic inter­vals, but these are rel­a­tive­ly rare in this pre­lude. This clas­si­fi­ca­tion could be quite dif­fer­ent if some ratios (such as 9/8) were ignored for the eval­u­a­tion of melod­ic inter­vals. Even ratios close to Pythagorean thirds (81/64) may sound accept­able in fast melod­ic move­ments — see the page on Bach well-tempered tonal analy­sis.

J.S. Bach’s Fugue 2 in C minor again favours ‘sauveur’.

We get the same result with J.S. Bach’s Prelude 6 in D minor (ran­dom choice). Note the strik­ing­ly high melod­ic scores of ‘sauveur’:

J.S. Bach’s Prelude 6 in D minor played by theBol Processor + Csound with Sauveur’s temperament

J.S. Bach once claimed that he could play his entire reper­toire on the instru­ment he had tuned by him­self. This sounds like squar­ing the cir­cle, and many hypothe­ses have been put for­ward to solve this prob­lem for das Wohltemperierte Clavier.

These exam­ples sug­gest that Sauveur’s tem­pera­ment may have been Bach’s choice. Although there is lit­tle chance that the German com­pos­er (1685-1750) would have heard of the research work of the French physi­cian (1653-1716), the sys­tem­at­ic con­struc­tion of this tem­pera­ment — a sin­gle sequence of fifths dimin­ished by 1/5 com­ma (see image and read Asselin, 2000 p. 80) — sug­gests that any com­pos­er could have worked it out independently.

To test (and chal­lenge) this hypoth­e­sis, we have under­tak­en a tonal analy­sis of 24 pre­ludes and fugues from books I and II of The Well-Tempered Clavier using the same set­tings. Read the Bach Well-tempered tonal analy­sis page. This large spec­trum analy­sis requires a batch pro­cess­ing device, which we will now describe.

Batch processing

To analyse the tonal­i­ty of a large num­ber of musi­cal works, we need to cre­ate a Data page con­tain­ing the names of all the pages con­tain­ing the Bol Processor scores of these items. For exam­ple, the page “-da.index_preludes_book_I” is as follows:

// All Bach preludes



When read­ing this page, the Tonal analy­sis pro­ce­dure opens each data file and picks up the Bol Processor score it con­tains. To facil­i­tate this, the Batch pro­cess­ing option can be checked in the settings.

In the batch-processing mode, the machine will not dis­play the full set of scales for each piece of music analysed. If the score con­tains a spec­i­fi­ca­tion for a tonal scale — a _scale(some_scale, 0) instruc­tion — the list of pre­ferred scales will be dis­played down to the spec­i­fied one. If the spec­i­fied scale is the first in the rank­ing, then the next two fol­low­ing scales are list­ed. If no scale is giv­en, only the 10 best match­ing scales are listed:

Batch pro­cess­ing of “-da.index_preludes_book_I
Items #2 and #3 con­tain the spec­i­fi­ca­tions of tonal scales sauveur and Dbmaj respec­tive­ly.
This pref­er­ence is con­firmed by the analy­sis of item #2 but it is not the case with item #3.

At the bot­tom of the page, a SHOW RESULTS but­ton dis­plays a down­load­able HTML file con­tain­ing all the results:

End of batch pro­cess­ing. Clicking on SHOW RESULTS dis­plays the entire result set.

The HTML page also shows the set­tings for the analy­sis, and can be down­loaded, along with a CVS file of the same fig­ures, which is suit­able for sta­tis­ti­cal graphing.

The results of the analy­sis of all the pre­ludes and fugues of The Well-tempered Clavier are pub­lished and dis­cussed on the page Bach well-tempered tonal analy­sis.

Does it apply to western classical music?

The analy­sis of tonal inter­vals and their cor­re­spon­dence to doc­u­ment­ed tun­ing sys­tems (tem­pera­ments) makes sense in the con­text of Baroque music, assum­ing that com­posers and instru­ment tuners sought to achieve max­i­mum con­so­nance in the per­for­mance of their musi­cal reper­toire. The ques­tion remains whether it is equal­ly reli­able (and use­ful) for the analy­sis of musi­cal works from more recent periods.

Matching Beethoven’s Fugue in B flat major against doc­u­ment­ed scales

The best score — once again — is that of Sauveur’s tem­pera­ment, main­ly because of the ascend­ing melod­ic inter­vals. If per­form­ers are try­ing to achieve ratios 9/8, 6/5, 5/4 and 3/2, then ‘sauveur’ may be the best rep­re­sen­ta­tion of the “tun­ing scheme” they have in mind.

The equal tem­pera­ment scale comes last, with scores of 3529, 1680 and 240 for ascend­ing melod­ic, descend­ing melod­ic and har­mon­ic inter­vals respec­tive­ly. Part of the expla­na­tion lies in the com­par­i­son of the two scales as a back­ground to the har­mon­ic intervals:

Comparison of the equal tem­pera­ment scale (left) and Sauveur’s tem­pera­ment (right) for the per­for­mance of Beethoven’s Fugue in B flat major.

The most obvi­ous dif­fer­ence is the use of almost per­fect har­mon­ic major thirds (ratio 5/4) on Sauveur’s scale (see image) instead of Pythagorean major thirds (approx­i­mate­ly ratio 81/64) on the equal tem­pered scale (see image). The for­mer have been assigned weights (+1) and the lat­ter (-1). Yellow back­ground lines indi­cate that these inter­vals are used quite frequently.

Melodic inter­vals in Beethoven’s Fugue in B flat major

One draw­back of Sauveur’s scale is the wolf fourth ‘D#’ - ‘G#’ (approx. 477 cents), but this inter­val does not occur fre­quent­ly in the score.

Many oth­er obser­va­tions could be made, com­par­ing the val­ues of the melod­ic inter­vals, and the whole process (which took almost 8 min­utes) could be start­ed again with dif­fer­ent set­tings of the weights, giv­ing more or less impor­tance to cer­tain inter­vals. After all, we do not know whether an expert play­er of a string instru­ment would play minor thirds at inter­vals of 6/5, 32/27, tem­pered, or some oth­er val­ue, and even more so, whether these val­ues depend on the harmonic/melodic con­text of each musi­cal phrase.

This sug­gests that we should­n’t get too excit­ed about a (still prim­i­tive) tonal analy­sis tool when it comes to sophis­ti­cat­ed tonal material…


Asselin, P.-Y. Musique et tem­péra­ment. Paris, 1985, repub­lished in 2000: Jobert. Soon avail­able in English.

Musicians inter­est­ed in con­tin­u­ing this research and relat­ed devel­op­ment can use the cur­rent ver­sion of Bol Processor BP3 to process musi­cal works and imple­ment fur­ther tun­ing pro­ce­dures. Follow the instruc­tions on the Bol Processor ‘BP3’ and its PHP inter­face page to install BP3 and learn its basic oper­a­tion. Download and install Csound from its dis­tri­b­u­tion page.

Leave a Reply

Your email address will not be published. Required fields are marked *