Musicology

Microtonality
On elec­tron­ic instru­ments such as the Bol Processor asso­ci­at­ed with Csound, micro­tonal­i­ty is the mat­ter of “micro­ton­al tun­ing”, here mean­ing the con­struc­tion of musi­cal scales out­side the con­ven­tion­al one(s) …
Read More
Just intonation: a general framework
A frame­work for con­struct­ing scales (tun­ing sys­tems) refer­ring to just into­na­tion in both clas­si­cal Indian and Western approach­es …
Read More
The two-vina experiment
A com­pre­hen­sive inter­pre­ta­tion of the exper­i­ment of the two vinas described in Chapter XXVIII.24 of the Natya Shastra …
Read More
Melodic types of Hindustan
A scan of Bose, N.D. Melodic Types of Hindustan. Jaico, Bombay 1960 …
Read More
A Mathematical Model of the Shruti-Swara-Grama-Murcchana-Jati System
A scan of Arnold, E.J. A Mathematical mod­el of the Shruti-Swara-Grama-Murcchana-Jati System …
Read More
A Mathematical Discussion of the Ancient Theory of Scales according to Natyashastra
Bernard Bel Note interne, Groupe Représentation et Traitement des Connaissances (CNRS), Marseille 1988. Download this paper
Read More
Raga intonation
This arti­cle demon­strates the the­o­ret­i­cal and prac­ti­cal con­struc­tion of micro­ton­al scales for the into­na­tion of North Indian ragas …
Read More
Creation of just-intonation scales
The pro­ce­dure for export­ing just-intonation scales from murcchana-s of Ma-grama …
Read More
A multicultural model of consonance
A frame­work for tun­ing just-intonation scales via two series of fifths For more than twen­ty cen­turies, musi­cians, instru­ment mak­ers and …
Read More
Comparing temperaments
Images of tem­pered scales cre­at­ed by the Bol Processor The fol­low­ing are Bol Processor + Csound inter­pre­ta­tions of Bach’s Prelude …
Read More

The two-vina experiment

The first six chap­ters of Natya Shastra, a Sanskrit trea­tise on music, dance and dra­ma dat­ing back to a peri­od between 400 BCE and 200 CE, con­tain the premis­es of a scale the­o­ry which for long caught the atten­tion of schol­ars in India and Western coun­tries. Early inter­pre­ta­tions by Western musi­col­o­gists fol­lowed the “dis­cov­ery” of this text in 1794 by philol­o­gist William Jones. Hermann Helmholtz’s the­o­ry of “nat­ur­al con­so­nance” gave way to many com­par­a­tive spec­u­la­tions based on phe­nom­e­na which Indian authors had ear­li­er observed as inher­ent to the “self-production” (svayamb­hū) of musi­cal notes (Iyengar 2017 p. 8).

Suvarnalata Rao and Wim van der Meer (2009) pub­lished a detailed record of attempts to elu­ci­date the ancient the­o­ry of musi­cal scales in musi­co­log­i­cal lit­er­a­ture, com­ing back to the notions of ṣru­ti and swara which changed over time up to present-day musi­cal practice.

Accurate set­tings of the Shruti Harmonium (1980)

In the sec­ond part of the 20th cen­tu­ry, exper­i­men­tal work with fre­quen­cy meters led to con­tra­dic­to­ry con­clu­sions drawn from the analy­sis of small sam­ples of music per­for­mance. It was only after 1981 that sys­tem­at­ic exper­i­ments were con­duct­ed in India by the ISTAR team (E.J. Arnold, B. Bel, J. Bor and W. van der Meer) with an elec­tron­ic pro­gram­ma­ble har­mo­ni­um (the Shruti Harmonium) and lat­er on a “micro­scope” for melod­ic music, the Melodic Movement Analyser (MMA) (Arnold & Bel 1983, Bel & Bor I985) feed­ing accu­rate pitch data to a com­put­er to process hours of music select­ed from his­tor­i­cal recordings.

After sev­er­al years of exper­i­men­tal work, it had become clear that, even though the into­na­tion of Indian clas­si­cal music is far from a ran­dom process, it would be haz­ardous to assess an inter­pre­ta­tion of ancient scale the­o­ry with the aid of today’s musi­cal data. There at least three rea­sons for this:

  1. There are infi­nite­ly valid inter­pre­ta­tions of the ancient the­o­ry, as we will show.
  2. The con­cept of raga, i.e. the basic prin­ci­ple of Indian clas­si­cal music, appeared first in the lit­er­a­ture cir­ca 900 CE in Matanga’s Brihaddeshi, and it under­went a grad­ual devel­op­ment until 13th cen­tu­ry, when Sharangadeva enlist­ed 264 ragas in his Sangitratnakara.
  3. Drones were not in use at the time of Natya Shastra; the influ­ence of the drone on into­na­tion is con­sid­er­able, if not pre­dom­i­nant, in con­tem­po­rary music performance.

The ancient Indian the­o­ry of scales remains use­ful for its insight into ear­ly melod­ic clas­si­fi­ca­tion (the jāti sys­tem) which lat­er might have engen­dered the raga sys­tem. Therefore, it may be best envis­aged as a topo­log­i­cal descrip­tion of tonal struc­tures. Read Raga into­na­tion for a more detailed account of the­o­ret­i­cal and prac­ti­cal issues.

The top­ic of this page is an inter­pre­ta­tion of the exper­i­ment of the two vinas described in Chapter XXVIII.24 of the Natya Shastra. An analy­sis of the under­ly­ing mod­el has been pub­lished in A Mathematical Discussion of the Ancient Theory of Scales accord­ing to Natyashastra (Bel 1988) which the fol­low­ing pre­sen­ta­tion will ren­der more comprehensive.

The historical context

Bharata Muni, the author(s) of Natya Shastra might have heard about the­o­ries of musi­cal scales attrib­uted to “ancient Greeks”. At least, Indian schol­ars were in posi­tion to bor­row these mod­els and expand them con­sid­er­ably because of their gen­uine knowl­edge of calculus.

Readers of C.K. Raju — notably his out­stand­ing work Cultural Foundations of Mathematics (2007) — are aware that Indian mathematicians/philosophers are not only famous for invent­ing posi­tion­al nota­tion which took six cen­turies to be adopt­ed in Europe… They also laid out the foun­da­tions of cal­cu­lus and infin­i­tes­i­mals, lat­er export­ed by Jesuit priests from Kerala to Europe and borrowed/appropriated by European schol­ars (Raju 2007 pages 321-373).

The cal­cu­lus first devel­oped in India as a sophis­ti­cat­ed tech­nique to cal­cu­late pre­cise trigono­met­ric val­ues need­ed for astro­nom­i­cal mod­els. These val­ues were pre­cise to the 9th place after the dec­i­mal point; this pre­ci­sion was need­ed for the cal­en­dar, crit­i­cal to monsoon-driven Indian agri­cul­ture […]. This cal­cu­la­tion involved infi­nite series which were summed using a sophis­ti­cat­ed phi­los­o­phy of ratios of inex­pressed num­bers [today called ratio­nal functions…].

Europeans, how­ev­er, were prim­i­tive and back­ward in arith­meti­cal cal­cu­la­tions […] and bare­ly able to do finite sums. The dec­i­mal sys­tem had been intro­duced in Europe by Simon Stevin only at the end of the 16th c., while it was in use in India since Vedic times, thou­sands of years earlier.

C. K. Raju (2013 p. 161- 162)

This may be cit­ed in con­trast with the state­ments of Western his­to­ri­ans, among which:

The his­to­ry of math­e­mat­ics can­not with cer­tain­ty be traced back to any school or peri­od before that of the Greeks […] though all ear­ly races knew some­thing of numer­a­tion […] and though the major­i­ty were also acquaint­ed with the ele­ments of land-surveying, yet the rules which they pos­sessed […] were nei­ther deduced from nor did they form part of any science.

W. W. Rouse Ball, A Short Account of the History of Mathematics. Dover, New York, 1960, p. 1–2.

Therefore, it may seem para­dox­i­cal, giv­en such an intel­lec­tu­al bag­gage, to write an entire chap­ter on musi­cal scales with­out a sin­gle num­ber! In A Mathematical Discussion of the Ancient Theory of Scales accord­ing to Natyashastra I showed a min­i­mal rea­son: Bharata’s descrip­tion leads to an infi­nite set of solu­tions that should be for­mal­ized with alge­bra rather than a finite set of numbers.

The experiment

The author(s) of Natya Shastra invite(s) the read­er to take two vina-s (plucked stringed instru­ments) and tune them on the same scale.

A word of cau­tion to clar­i­fy the con­text: this chap­ter of Natya Shastra may be read as a thought exper­i­ment rather than a process involv­ing phys­i­cal objects. There is no cer­ti­tude that these two vina-s ever exist­ed — and even that “Bharata Muni”, the author/experimenter, was a unique per­son. His/their approach is a val­i­da­tion (pramāņa) resort­ing to empir­i­cal proof, in oth­er words dri­ven by the phys­i­cal­ly man­i­fest (pratyakşa) rather than inferred from “axioms” con­sti­tu­tive of a the­o­ret­i­cal mod­el. This may be summed up as “pre­fer­ring physics to metaphysics”.

Constructing and manip­u­lat­ing vina-s in the man­ner indi­cat­ed by the exper­i­menter seems an insur­montable tech­no­log­i­cal chal­lenge. This has been a sub­ject of dis­cus­sion among a num­ber of authors — read Iyengar (2017 pages 7-sq.) Leaving aside the pos­si­bil­i­ty of a prac­ti­cal real­iza­tion is not a denial of phys­i­cal real­i­ty, as for­mal math­e­mat­ics would sys­tem­at­i­cal­ly man­date. Calling it a “thought exper­i­ment” is a way of assert­ing the link with the phys­i­cal mod­el. In the same man­ner, using cir­cu­lar graphs to rep­re­sent tun­ing schemes and alge­bra to describe rela­tions between inter­vals are aids to under­stand­ing which do not reduce the mod­el to spe­cif­ic, ide­al­is­tic inter­pre­ta­tions sim­i­lar to spec­u­la­tions on inte­ger num­bers cher­ished by Western schol­ars. These graphs aim at facil­i­tat­ing a com­pu­ta­tion­al design of instru­ments mod­el­ing these imag­ined instru­ments — read Raga into­na­tion and Just into­na­tion, a gen­er­al frame­work.

Let us fol­low Bharata’s instruc­tions and tune both instru­ments on a scale called “Sa-grama” about which the author declares:

The sev­en notes [svaras] are: Şaḍja [Sa], Ṛşbha [Ri], Gāndhāra [Ga], Madhyama [Ma], Pañcama [Pa], Dhaivata [Dha], and Nişāda [Ni].

It is tempt­ing to iden­ti­fy this scale as the con­ven­tion­al Western seven-grade scale do, re, mi, fa, sol, la, si (“C”, “D”, “E”, “F”, “A”, “B”) which some schol­ars have done despite the faulty inter­pre­ta­tion of intervals.

Intervals are notat­ed in shru­ti-s which may, for a start, be tak­en as an order­ing device rather than a unit of mea­sure­ment. The exper­i­ment will con­firm that a four-shru­ti inter­val is larg­er than a three-shru­ti, a three-shru­ti larg­er than two-shru­ti and the lat­ter larg­er than a sin­gle shru­ti. In dif­fer­ent con­texts the word “shru­ti” des­ig­nates note posi­tions instead of inter­vals between notes. This ambi­gu­i­ty is also a source of confusion.

The author writes:

Śrutis in the Şaḍja Grāma are shown as fol­lows: three [in Ri], two [in Ga], four [in Ma], four [in Pa], three [in Dha], two [in Ni], and four [in Sa].

Bharata enlists 9-shru­ti (con­so­nant) inter­vals: “Sa-Pa”, “Sa-Ma”, “Ma-Ni”, “Ni-Ga” and “Re-Dha”. In addi­tion, he defines anoth­er scale named “Ma-grama” in which “Pa” is one shru­ti low­er than “Pa” in the Sa-grama, so that “Sa-Pa” is no longer con­so­nant where­as “Re-Pa” is con­so­nant because it is made of 9 shru­ti-s.

Intervals of 9 or 13 shru­ti-s are declared “con­so­nant” (sam­va­di). Leaving out the octave, the best con­so­nance in a musi­cal scale is the per­fect fifth with a fre­quen­cy ratio close to 3/2. When tun­ing stringed instru­ments, a ratio dif­fer­ing from 3/2 gen­er­ates beats indi­cat­ing that a string is out of tune.

Sa-grama and Ma-grama accord­ing to Natya Shastra. Red and green seg­ments indi­cate the two chains of per­fect fifths. Underlined note names denote ‘flat’ positions.

If fre­quen­cy ratios are expressed log­a­rith­mi­cal­ly with 1200 cents rep­re­sent­ing one octave, and fur­ther con­vert­ed to angles with a full octave on a cir­cle, the descrip­tion of Sa-grama and Ma-grama scales may be sum­ma­rized on a cir­cu­lar dia­gram (see picture).

Two cycles of fifths have been high­light­ed in red and green col­ors. Note that both the “Sa-Ma” and “Ma-Ni” inter­vals are per­fect fifths, dis­card­ing the asso­ci­a­tion of Sa-grama with the con­ven­tion­al Western scale: the “Ni” should be mapped to “B flat”, not to “B”. Further, the “Ni-Ga” per­fect fifth implies that “Ga” is also “E flat” rather than “E”. The Sa-grama and Ma-grama scales are there­fore “D modes”. For this rea­son, “Ga” and “Ni” appear under­lined on the diagrams.

Authors eager to iden­ti­fy Sa-grama and Ma-grama as a Western scale claimed that when the text says that there are “3 shruti-s in Re” it should be under­stood between Re and Ga. Yet this inter­pre­ta­tion is incon­sis­tent with the sec­ond low­er­ing of the move­able vina (see below).

We must avoid pre­ma­ture con­clu­sions about inter­vals in these scales. The two cycles of fifths are unre­lat­ed except that the “dis­tance” between the “Pa” of Ma-grama and that of Sa-grama is “one-shru­ti”:

The dif­fer­ence which occurs in Pañcama when it is raised or low­ered by a Śruti and when con­se­quen­tial slack­ness or tense­ness [of strings] occurs, will indi­cate a typ­i­cal (pramāņa) Śruti. (XXVIII, 24)

In oth­er words, the size of this pramāņa ṣru­ti is not spec­i­fied. It would there­fore be mis­lead­ing to pos­tu­late its equiv­a­lence with the syn­ton­ic com­ma (fre­quen­cy ratio 81/80). Doing so reduces Bharata’s mod­el to “just into­na­tion”, indeed with inter­est­ing prop­er­ties in its appli­ca­tion to Western har­mo­ny (read page), but with a ques­tion­able rel­e­vance to the prac­tice of Indian music. As claimed by Arnold (1983 p. 39):

The real phe­nom­e­non of into­na­tion in Hindustani Classical Music as prac­tised is much more amor­phous and untidy than any geom­e­try of course, as recent empir­i­cal stud­ies by Levy (1982), and Arnold and Bel (1983) show.

The des­ig­na­tion of the small­est inter­val as “pramāņa ṣru­ti ” is of major epis­temic rel­e­vance and deserves a brief expla­na­tion. The seman­tics of “slack­ness or tense­ness” clear­ly belongs to “pratyakṣa pramāṇa”, the means of acquir­ing knowl­edge by per­cep­tu­al expe­ri­ence. More pre­cise­ly, “pramāṇa (प्रमाण) refers to “valid per­cep­tion, mea­sure and struc­ture”” (Wisdom Library), a notion of proof shared by all Indian tra­di­tion­al schools of phi­los­o­phy (Raju 2007 page 63). We will get back to this notion in the conclusion.

An equiv­a­lent way of con­nect­ing the two cycles of fifths would be to define a 7-shru­ti inter­val, for instance “Ni-Re”. If the pramāņa ṣru­ti were a syn­ton­ic com­ma then this inter­val would be a har­mon­ic major third with ratio 5/4. As evoked in Just into­na­tion, a gen­er­al frame­work, the inven­tion of the major third as a con­so­nant inter­val dates back to the ear­ly 16th cen­tu­ry in Europe. In Natya Shastra this 7-shru­ti inter­val had been rat­ed “asso­nant” (anu­va­di).

In all writ­ings refer­ring to the ancient Indian the­o­ry of scales, I occa­sion­al­ly used “pramāņa ṣru­ti” and “syn­ton­ic com­ma” as equiv­a­lent terms. This is accept­able if one accepts that the syn­ton­ic com­ma is allowed to take val­ues oth­er than 81/80. Consequently, the “har­mon­ic major third” should not auto­mat­i­cal­ly be assigned fre­quen­cy ratio 5/4.

Picture above rep­re­sents the two vina-s tuned iden­ti­cal­ly on Sa-grama. Matching notes are marked by yel­low spots. The inner part of the blue cir­cle will be the mov­able vina in the fol­low­ing trans­po­si­tion process­es, and the out­er part the fixed vina.

First lowering

Bharata writes:

The two Vīņās with beams (danḍa) and strings of sim­i­lar mea­sure, and with sim­i­lar adjust­ment of the lat­ter in the Şaḍja Grāma should be made [ready]. [Then] one of these should be tuned in the Madhyama Grāma by low­er­ing Pañcama [by one Śruti]. The same (Vīņā) by adding one Śruti (lit. due to the adding of one Śruti) to Pañcama will be tuned in the Şaḍja Grāma.

In brief, this is a pro­ce­dure for low­er­ing all notes of the mov­able vina by one pramāņa ṣru­ti. First low­er its “Pa” — e.g. make it con­so­nant with “Re” of the fixed vina — to obtain Ma-grama on the mov­able vina. Then read­just its whole scale to obtain Sa-grama. Note that low­er­ing “Re” and “Dha” implies appre­ci­at­ing again the size of a pramāņa ṣru­ti while pre­serv­ing the “Re-Dha” con­so­nant inter­val. The result is as follows:

The two vinas after a low­er­ing of pramāņa ṣru­ti

The pic­ture illus­trates the fact that there are no more match­ing notes between the two vina-s.

Interpreting shruti-s as vari­ables in some metrics

This sit­u­a­tion can be trans­lat­ed to alge­bra. Let “a”, “b”, “c” … “v” be the unknown sizes of shru­ti-s in the scale (see pic­ture on the side). A met­rics “trans­lat­ing” Bharata’s mod­el will be nec­es­sary for check­ing it on sound struc­tures pro­duced by an elec­tron­ic instru­ment — the com­put­er. The scope of this trans­la­tion remains valid as long as no extra asser­tion has been stat­ed which is not root­ed in the orig­i­nal model.

Using sym­bol “#>” to indi­cate that two notes are not match­ing, this first low­er­ing may be sum­ma­rized by the fol­low­ing set of inequations:

s + t + u + v > m 
a + b + c > m 
d + e > m 
f + g + h + i > m 
n + o + p > m 
q + r > m 
Sa #> Ni
Re #> Sa
Ga #> Re
Ma #> Ga
Dha #> Pa
Ni #> Dha

Second lowering

The next step is again a low­er­ing by one shru­ti with a dif­fer­ent procedure.

Again due to the decrease of a Śruti in anoth­er [Vīņā], Gāndhāra and Nişāda will merge with Dhaivata and Ṛşbha respec­tive­ly, when there is an inter­val of two Śrutis between them.

Note that it is no longer pos­si­ble to rely on a low­ered “Pa” to eval­u­ate a pramāņa ṣru­ti for the low­er­ing. The instruc­tion is to low­er the tun­ing of the mov­able vina until either “Re” and “Ga” or “Dha” and “Ni” are merged, which is claimed to be the same because of the final low­er­ing of two shru­ti-s (from the ini­tial state):

The two vina-s after the sec­ond low­er­ing (2 shru­ti-s)

Now we get an equa­tion report­ing that the two-shru­ti inter­vals are equal in size:

q + r = d + e

and five more inequa­tions indi­cat­ing the non-matching of oth­er notes:

f + g + h + i > d + e
a + b + c > d + e
s + t + u + v > d + e
n + o + p > d + e
j + k + l + m > d + e
Ma #> Ga
Re #> Sa
Sa #> Ni
Dha #> Pa
Pa #> Ma

We should keep in mind that the author is describ­ing a phys­i­cal process, not an abstract “move­ment” by which the move­able wheel (or vina) would “jump in space” from its ini­tial to final posi­tion. Therefore we pay atten­tion to things hap­pen­ing and not hap­pen­ing dur­ing the tun­ing of the vina, or rota­tion of the wheel, look­ing at the tra­jec­to­ries of dots rep­re­sent­ing note posi­tions (along the blue cir­cle). Things not hap­pen­ing (non-matching notes) yield inequa­tions required for mak­ing sense of the alge­bra­ic model.

This step of the exper­i­ment con­firms that it is wrong to locate Sa at the posi­tion of Ni for the sake of iden­ti­fy­ing Sa-grama with the Western scale. In this case, match­ing notes would no be Re-Ga and Dha-Ni, but Ga-Ma and Ni-Sa.

Third lowering

Bharata writes:

Again due to the decrease of a Śruti in anoth­er [Vīņā], Ṛşbha and Dhaivata will merge with Şaḍja and Pañcama respec­tive­ly, when there is an inter­val of three Śrutis between them.

The two vinas after the third low­er­ing (3 shruti-s)

This leads to equation

n + o + p = a + b + c

and inequa­tions:

s + t + u + v > a + b + c
f + g + h + i > a + b + c
j + k + l + m > a + b + c
Sa #> Ni
Ma #> Ga
Pa #> Ma

Fourth lowering

The pro­ce­dure:

Similarly the same [one] Śruti being again decreased, Pañcama, Madhyama and Şaḍja will merge with Madhyama, Gāndhāra and Nişāda respec­tive­ly when there is an inter­val of four Śrutis between them.

The two vinas after the fourth low­er­ing (4 shruti-s)

This yields 2 equations:

j + k + l + m = f + g + h + i
s + t + u + v = f + g + h + i

Algebraic interpretation

After elim­i­nat­ing redun­dant equa­tions and inequa­tions, con­straints are sum­ma­rized as follows:

(S1) d + e > m
(S2) a + b + c > d + e
(S3) f + g + h + i > a + b + c
(S4) j + k + l + m = f + g + h + i
(S5) s + t + u + v = f + g + h + i
(S6) n + o + p = a + b + c
(S7) q + r = d + e

The three inequa­tions illus­trate the fact that num­bers of shru­ti-s denote an order­ing of the sizes of inter­vals between notes.

Still, we have 22 vari­ables and only 4 equa­tions. These vari­ables can be “packed” to a set of 8 vari­ables which rep­re­sent the “macro-intervals”, i.e. the steps of the gra­ma-s. In this approach, shru­ti-s are sort of “sub­atom­ic” par­ti­cles which these “macro-intervals” are made of… Now we need only 4 aux­il­iary equa­tions to deter­mine the scale. These may be pro­vid­ed by acoustic infor­ma­tion, with inter­vals mea­sured in cents. First we express that the sum of the vari­ables, the octave, is equal to 1200 cents: 

(S8) (a + b + c) + (d + e) + (f + g + h + i) + (j + k + l) + m + (n + o + p) + (q + r) + (s + t + u + v) = 1200

Then we inter­pret all sam­va­di rela­tion­ships as per­fect fifths (ratio 3/2 = 701.9 cents):

(S9) (a + b + c) + (d + e) + (f + g + h + i) + (j + k + l) + m = 701.9 (Sa-Pa)
(S10) (j + k + l) + m + (n + o + p) + (q + r) + (s + t + u + v) = 701.9 (Ma-Sa)
(S11) (d + e) + (f + g + h + i) + (j + k + l) + m + (n + o + p) = 701.9 (Re-Dha)
(S12) (f + g + h + i) + (j + k + l) + m + (n + o + p) + (q + r) = 701.9 (Ga-Ni)

includ­ing the “Re-Pa” per­fect fifth in Ma-grama:

(S13) m + (n + o + p) + (q + r) + (s + t + u + v) + (a + b + c) = 701.9

S1O, S11 and S12 can all be derived from S9. These equa­tions may there­fore be dis­card­ed. We still need one more equa­tion to solve the sys­tem. At this stage there are many options asso­ci­at­ed with tun­ing pro­ce­dures. As sug­gest­ed above, set­ting the har­mon­ic major third to ratio 5/4 (386.3 cents) would pro­vide the miss­ing equa­tion. This amounts to set­ting vari­able “m” to 21.4 cents (syn­ton­ic com­ma). However, this major third can take any val­ue up to the Pythagorean third (81/64 = 407.8 cents) for which we would get m = 0.

Beyond this range, the two-vina exper­i­ment is no longer valid, but it leaves a great amount of pos­si­bil­i­ties includ­ing the tem­pera­ment of some inter­vals which musi­cians might achieve spon­ta­neous­ly in par­al­lel melod­ic move­ments. A set of solu­tions is exposed in A Mathematical Discussion of the Ancient Theory of Scales accord­ing to Natyashastra and a few of them have been tried on the Bol Processor to check musi­cal exam­ples for which they might pro­vide ade­quate scales — read Raga into­na­tion.

Extensions of the model

In order to com­plete his sys­tem of scales, Bharata had to intro­duce two new notes in the basic gra­ma-s: antara Gandhara and kakali Nishada. The new “Ga” is defined as “G” raised by 2 shru­ti-s. Similarly, kakali Ni is “N” raised by 2 shru­ti-s.

In order to posi­tion “Ni” and “Ga” cor­rect­ly we must inves­ti­gate the behav­ior of the new scale in all trans­po­si­tions (mur­ccha­na-s), includ­ing those start­ing with “Ga” and “Ni”, and infer equa­tions cor­re­spond­ing to an opti­mal con­so­nance of the scale. We end up with 11 equa­tions for only 10 vari­ables, which means that this per­fec­tion can­not be achieved. One con­straint must be released.

An option is to release con­straints on major thirds, fifths or octaves, lead­ing to a form of tem­pera­ment. For instance, stretch­ing the octave by 3.7 cents gen­er­ates per­fect fifths (701.9 cents) and har­mon­ic major thirds close to equal tem­pera­ment (401 cents) with a com­ma of 0 cents. This tun­ing tech­nique was advo­cat­ed by Serge Cordier (Asselin 2000 p. 23; Wikipedia).

An equal-tempered scale with octave stretched at 1204 cents. (Image cre­at­ed by Bol Processor BP3)

Another option is to come as close as pos­si­ble to “just into­na­tion” with­out mod­i­fy­ing per­fect fifths and octaves. This is pos­si­ble if the com­ma (vari­able “m”) is allowed an arbi­trary val­ue between 0 and 56.8 cents. Limits are imposed by the inequa­tions derived from the two-vina experiment.

These “just sys­tems” are cal­cu­lat­ed as follows:

a + b + c = j + k + l = n + o + p = Maj - C
d + e = h + i = q + r = u + v = L + C
f + g = s + t = Maj - L - C
m = C

where L = 90.25 cents (lim­ma = 256/243), Maj = 203.9 cents (major who­le­tone = 9/8)
and 0 < C < 56.8 (pramāņa ṣru­ti or syn­ton­ic comma)

This leads to the 53-grade scale named “gra­ma” which we use as a frame­work for con­so­nant chro­mat­ic scales eli­gi­ble for pure into­na­tion in Western har­mo­ny when the syn­ton­ic com­ma is sized 81/80. Read Just into­na­tion, a gen­er­al frame­work:

The “gra­ma” scale used for just into­na­tion, with a syn­ton­ic com­ma of 81/80. Pythagorean cycle of fifths in red, har­mon­ic cycle of fifths in green.

In BP3, the just-intonation frame­work has been extend­ed so that any val­ue of the syn­ton­ic com­ma (or the har­mon­ic major third) can be set on a giv­en scale struc­ture. This fea­ture is demon­strat­ed on page Raga into­na­tion.

The relevance of circular representations

It is safe to clas­si­fy the two-vina exper­i­ment as thought exper­i­ment because of the unlike­li­hood that it could be worked with mechan­i­cal instru­ments. Representing it on a cir­cu­lar graph (a move­able wheel inside a fixed crown) achieves the same goal with­out resort­ing to imag­i­nary devices.


Circular rep­re­sen­ta­tion of tāl Pañjābi, catuśra­jāti
[16 counts] from a Gujarati text in Devanagari script
(J. Kippen, pers. communication)

Circular rep­re­sen­ta­tions belong to Indian tra­di­tions of var­i­ous schools, among which the descrip­tion of rhyth­mic cycles (tāl-s) used by drum play­ers. These graphs are meant to out­line the rich inter­nal struc­ture of musi­cal con­struc­tions that can­not be reduced to “beat count­ing” (Kippen 2020).

For instance, the image above was used to describe the ţhekkā (cycle of quasi-onomatopoeic syl­la­bles rep­re­sent­ing the drum strokes) of tāl Pañjābi which reads as follows:

Unfortunately, ear­ly print­ing press tech­nol­o­gy may have ren­dered uneasy the pub­li­ca­tion and trans­mis­sion of these aids to learning.

If con­tem­po­raries of Bharata ever used sim­i­lar cir­cu­lar rep­re­sen­ta­tions for reflect­ing on musi­cal scales, we guess that arche­o­log­i­cal traces might not be iden­ti­fied prop­er­ly as their draw­ings could be mis­tak­en for yantra-s, astro­log­i­cal charts and the like!

Return to epistemology

Bharata’s exper­i­ment is a typ­i­cal exam­ple of the pref­er­ence for facts inferred from empir­i­cal obser­va­tions over a pro­claimed uni­ver­sal log­ic aimed at estab­lish­ing “irrefragable demonstrations”.

Empirical proofs are uni­ver­sal, not meta­phys­i­cal proofs; elim­i­nat­ing empir­i­cal proofs is con­trary to all sys­tems of Indian phi­los­o­phy. Thus ele­vat­ing meta­phys­i­cal proofs above empir­i­cal proofs, as for­mal math­e­mat­ics does, is a demand to reject all Indian phi­los­o­phy as infe­ri­or. Curiously, like Indian phi­los­o­phy, present-day sci­ence too uses empir­i­cal means of proof, so this is also a demand to reject sci­ence as infe­ri­or (to Christian metaphysics).

Logic is not uni­ver­sal either as Western philoso­phers have fool­ish­ly main­tained: Buddhist [qua­si truth-functional] and Jain [three-valued] log­ics are dif­fer­ent from those cur­rent­ly used in for­mal math­e­mat­i­cal proof. The the­o­rems of math­e­mat­ics would change if those log­ics were used. So, impos­ing a par­tic­u­lar log­ic is a means of cul­tur­al hege­mo­ny. If log­ic is decid­ed empir­i­cal­ly, that would, of course, kill the phi­los­o­phy of meta­phys­i­cal proof. Further, it may result in quan­tum log­ic, sim­i­lar to Buddhist logic […].

C. K. Raju (2013 p. 182-183)
Yuktibhāşā’s proof of the “Pythagorean” the­o­rem.
Source: C. K. Raju (2007 p. 67)

The two-vina exper­i­ment can be likened to the (more recent) phys­i­cal proof of the “Pythagorean the­o­rem”. This the­o­rem (Casey 1885 p. 43) was known in India and Mesopotamia long before the time of its leg­endary author (Buckert 1972 p. 429, 462). In the Indian text Yuktibhāşā (ca. 1530 CE), a fig­ure of a right-angle tri­an­gle is drawn on a palm leaf with squares on its two sides and its hypothenuse. Then the fig­ure is cut and rotat­ed in a way high­light­ing that the areas are equal.

Clearly, the proof of the “Pythagorean the­o­rem” is very easy if one is either (a) allowed to make mea­sure­ments, or, equiv­a­lent­ly (b) allowed to move fig­ures about in space.

C. K. Raju (2013 p. 167)

This process takes place on sev­er­al steps of mov­ing fig­ures in a way sim­i­lar to mov­ing scales (or fig­ures rep­re­sent­ing scales) in the two-vina exper­i­ment. The 3 single-shru­ti tonal inter­vals may be likened to the areas of the 3 squares in Yuktibhāşā. The fol­low­ing remark would there­fore apply to Bharata’s procedure:

The details of this ratio­nale are not our imme­di­ate con­cern beyond observ­ing that draw­ing a fig­ure, car­ry­ing out mea­sure­ments, cut­ting, and rota­tion are all empir­i­cal pro­ce­dures. Hence, such a demon­stra­tion would today be reject­ed as invalid sole­ly on the ground that it involves empir­i­cal pro­ce­dures that ought not to be any part of math­e­mat­i­cal proof.

C. K. Raju (2007 p. 67)

Bernard Bel — Dec. 2020

References

Arnold, E. J. A Mathematical mod­el of the Shruti-Swara-Grama-Murcchana-Jati System. New Delhi, 1982: Journal of the Sangit Natak Akademi.

Arnold, E.J.; Bel, B. A Scientific Study of North Indian Music. Bombay, 1983: NCPA Quarterly Journal, vol. XII Nos. 2 3.

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

Bel, B.; Bor, J. Intonation of North Indian Classical Music: work­ing with the MMA. Video on Dailymotion. Bombay, 1984: National Center for the Performing Arts.

Bel, B.; Bor, J. NCPA/ISTAR Research Collaboration. Bombay, 1985: NCPA Quarterly Journal, vol. XIV, No. 1, p. 45-53.

Bel, B. A Mathematical Discussion of the Ancient Theory of Scales accord­ing to Natyashastra. Note interne. Marseille, 1988a : Groupe Représentation et Traitement des Connaissances (CNRS).

Bel, B. Raga : approches con­ceptuelles et expéri­men­tales. Actes du col­loque “Structures Musicales et Assistance Informatique”. Marseille, 1988b.

Bharata. Natya Shastra. There is no cur­rent­ly avail­able English trans­la­tion of the first six chap­ters of Bharata’s Natya Shastra. However, most of the infor­ma­tion required for this inter­pre­ta­tion has been repro­duced and com­ment­ed by Śārṅgadeva in his Sangita Ratnakara (13th cen­tu­ry CE), trans­lat­ed by Dr R. K. Shringy, vol.I. Banaras 1978: Motilal Banarsidass.

Bose, N. D. Melodic Types of Hindustan. Bombay, 1960: Jaico.

Burkert, W. Lore and Science in Ancient Pythagoreanism. Cambridge MA, 1972: Harvard University Press.

Casey, J. The First Six Books of the Elements of Euclid, and Propositions I.-XXI. of Book VI. London, 1885: Longmans. Free e-book, Project Gutenberg.

Iyengar, R. N. Concept of Probability in Sanskrit Texts on Classical Music. Bangalore, 2017. Invited Talk at ICPR Seminar on “Science & Technology in the Indic Tradition: Critical Perspectives and Current Relevance”, I. I. Sc.

Kippen, J. Rhythmic Thought and Practice in the Indian Subcontinent. In R. Hartenberger & R. McClelland (Eds.), The Cambridge Companion to Rhythm (Cambridge Companions to Music, p. 241-260). Cambridge, 2020: Cambridge University Press. doi:10.1017/9781108631730.020

Levy, M. Intonation in North Indian Music. New Delhi, 1982: Biblia Impex.

Raju, C. K. Cultural foun­da­tions of math­e­mat­ics : the nature of math­e­mat­i­cal proof and the trans­mis­sion of the cal­cu­lus from India to Europe in the 16th c. CE. Delhi, 2007: Pearson Longman: Project of History of Indian Science, Philosophy and Culture : Centre for Studies in Civilizations.

Raju, C. K. Euclid and Jesus: How and why the church changed math­e­mat­ics and Christianity across two reli­gious wars. Penang (Malaysia), 2013: Multiversity, Citizens International.

Rao, S.; Van der Meer, W. The Construction, Reconstruction, and Deconstruction of Shruti. Hindustani music: thir­teenth to twen­ti­eth cen­turies (J. Bor), Manohar, New Delhi 2010.

Shringy, R.K.; Sharma, P.L. Sangita Ratnakara of Sarngadeva: text and trans­la­tion, vol. 1, 5: 7-9. Banaras, 1978: Motilal Banarsidass. Source in the Web Archive.

Just intonation: a general framework

“Just into­na­tion” (into­na­tion pure in French) is a word employed by com­posers, musi­cians and musi­col­o­gists to des­ig­nate var­i­ous aspects of com­po­si­tion, per­for­mance and instru­ment tun­ing. These point at the same goal of “playing/singing in tune” — what­ev­er it means. Implementing a gener­ic abstract mod­el of just into­na­tion in the Bol Processor is there­fore a true chal­lenge. We address it in a prag­mat­ic man­ner, look­ing at sev­er­al musi­cal tra­di­tions fol­low­ing the same goal with the aid of reli­able the­o­ret­i­cal models.

A com­plete and con­sis­tent frame­work for con­struct­ing just-intonation scales — or “tun­ing sys­tems” — is the grama-murcchana mod­el elab­o­rat­ed in ancient India. This the­o­ry has been exten­sive­ly com­ment­ed and (mis)interpreted by Indian and Western schol­ars (read a detailed his­to­ry in Rao & van der Meer 2010). We will show that an arguably accept­able inter­pre­ta­tion yields a frame­work of chro­mat­ic scales that can be extend­ed to Western clas­si­cal har­mo­ny and eas­i­ly han­dled by Bol Processor + Csound.

This page is a con­tin­u­a­tion of Microtonality but it can be read independently.

All exam­ples shown on this page are avail­able in the sam­ple set bp3-ctests-main.zip shared on GitHub. Follow instruc­tions on Bol Processor ‘BP3’ and its PHP inter­face to install BP3 and learn its basic oper­a­tion. Download and install Csound from its dis­tri­b­u­tion page.

Historical background

Methods for tun­ing musi­cal instru­ments have been doc­u­ment­ed for more than 2000 years in sev­er­al parts of the World. For prac­ti­cal rea­sons we will focus on work doc­u­ment­ed in Europe and the Indian subcontinent.

Systems described as “just into­na­tion” are attempts to set up a tun­ing in which all tonal inter­vals would be con­so­nant. A large body of the­o­ret­i­cal work on just into­na­tion is avail­able — check Wikipedia for links and abstracts.

Models are amenable to Hermann von Helmholtz’s notion of con­so­nance deal­ing with the per­cep­tion of the pure sine wave com­po­nents of com­plex sounds con­tain­ing mul­ti­ple tones. According to the the­o­ry of har­mo­ny, fre­quen­cies of these upper par­tials are inte­ger mul­ti­ples of the fun­da­men­tal fre­quen­cy of the vibra­tion. In mechan­i­cal musi­cal instru­ments, this is close to real­i­ty when long strings are hit or plucked in a gen­tle way. However, this har­monic­i­ty is miss­ing in many wind instru­ments, notably reed instru­ments such as the sax­o­phone or the shehnai in India, and cer­tain­ly in per­cus­sion instru­ments or bells which dis­play mul­ti­ple modes of vibration.

If just into­na­tion is invoked for tun­ing a musi­cal instru­ment, it must there­fore be anal­o­gous to a zither, a swara man­dal, a harp­si­chord, a piano or a pipe organ, includ­ing elec­tron­ic devices pro­duc­ing sim­i­lar musi­cal sounds. 

The “Greek” approach

Greek women play­ing ancient Harp, Cithara and Lyre musi­cal instru­ments (source)

Models of vibrat­ing strings attrib­uted to “ancient Greeks” stip­u­late that fre­quen­cy ratios 2/1 (the octave), 3/2 (the major fifth) and 5/4 (the major third) pro­duce con­so­nant inter­vals where­as oth­er ratios car­ry a cer­tain amount of dis­so­nance.

The prac­tice of poly­phon­ic music on fixed-tuning instru­ments showed that this per­fect con­so­nance is nev­er achieved with 12 grades in an octave — the con­ven­tion­al chro­mat­ic scale. In Western clas­si­cal har­mo­ny, it would demand a retun­ing of the instru­ment accord­ing to the musi­cal genre, the musi­cal piece and the har­mon­ic con­text of every note sequence or chord.

Imperfect tonal inter­vals gen­er­ate unde­sired beats because their fre­quen­cy ratio can­not be reduced to sim­ple 2, 3, 4, 5 frac­tions. A sim­ple thought exper­i­ment myth­i­cal­ly attrib­uted to Pythagoras of Samos reveals that this is inher­ent to arith­metics and not a defect of instru­ment design. Imagine the tun­ing of ascend­ing fifths (ratio 3/2) by suc­ces­sive steps on a harp with a shift of octaves to keep the result­ing note inside the orig­i­nal octave. Frequency ratios would be 3/2, 9/4, 27/16, 81/64 etc. At this stage, the note seems to be locat­ed at a major third although its actu­al ratio (81/64 = 1.265) is high­er than 5/4 (1.25). The 81/64 inter­val is named a Pythagorean major third, which may sound “out of tune” in a con­ven­tion­al har­mon­ic con­text. The fre­quen­cy ratio (81/80 = 1.0125) between the Pythagorean and har­mon­ic major thirds is called a syn­ton­ic com­ma.

Whoever designed the so-called “Pythagorean tun­ing” went fur­ther in their inten­tion to describe all musi­cal notes via cycles of fifths. Moving fur­ther up, 243/128, 729/512… etc. effec­tive­ly pro­duces a full chro­mat­ic scale: C - G - D- A - E - B - F♯ - C♯ - G♯… etc. but, in addi­tion to the harsh sound­ing of some of the result­ing inter­vals, things turn bad if one hopes to ter­mi­nate the cycle on the ini­tial note. If the series start­ed on “C” it does end on “C” (or “B#”), but with a ratio 531441/524288 = 1.01364 slight­ly high­er than 1. This gap is called the Pythagorean com­ma, con­cep­tu­al­ly dis­tinct from the syn­ton­ic com­ma (1.0125) although their sizes are almost iden­ti­cal. This para­dox is a mat­ter of sim­ple arith­metics: pow­ers of 2 (octave inter­vals) nev­er match pow­ers of 3.

Needless to say, attribut­ing this sys­tem to “ancient Greeks” is pure fan­ta­sy because they (unlike Egyptians) did not know the usage of fractions!

A 19-key per octave (from “A” to “a”) key­board designed by Gioseffo Zarlino (1517-1590) (source)

Despite the com­ma prob­lem, tun­ing instru­ments by series of per­fect fifths was com­mon prac­tice in Middle-Aged Europe, fol­low­ing the organum which con­sist­ed in singing/playing par­al­lel fifths or fourths to enhance a melody. One of the old­est trea­tis­es on “Pythagorean tun­ing” was pub­lished by Henri Arnault de Zwolle cir­ca 1450 (Asselin 2000 p. 139). With this tun­ing, major “Pythagorean” thirds sound­ed harsh, which explains that in those the major third was rat­ed as a dis­so­nant interval.

Due to these lim­i­ta­tions, Western fixed-pitch instru­ments using chro­mat­ic (12-grade) scales nev­er achieve the pitch accu­ra­cy dic­tat­ed by just into­na­tion. For this rea­son, just into­na­tion is depict­ed as “incom­plete” in the lit­er­a­ture (Asselin 2000 p. 66). Multiple divi­sions (more than 12 per octave) are required for pro­duc­ing all “pure” ratios. This has been unsuc­cess­ful­ly attempt­ed on key­board instru­ments but it remains pos­si­ble on a computer.

The Indian approach

Bharata Muni’s Natya Shastra

The grama-murcchana mod­el was described in Natya Shastra, a Sanskrit trea­tise on the per­form­ing arts com­piled in India about twen­ty cen­turies ago. Chapter 28 con­tains a dis­cus­sion of the “har­mon­ic scale” based on a divi­sion of the octave in 22 shru­ti-s, where­as it enlists only sev­en swaras (notes) used by musi­cians: “Sa”, “Re”, “Ga”, “Ma”, “Pa”, “Dha”, “Ni”. These may be mapped to Western con­ven­tion­al music nota­tion “C”, “D”, “E”, “F”, “G”, “A”, “B” in English, or “do”, “re”, “mi”, “fa”, “sol”, “la”, “si” in Italian/Spanish/French.

This 7-swara scale may be extend­ed to a 12-grade (chro­mat­ic) scale thanks to diesis and flat alter­ations respec­tive­ly rais­ing or low­er­ing a note by a semi­tone. Altered notes in the Indian sys­tem are com­mon­ly named “komal Re”, “komal Ga”, “Ma tivra”, “komal Dha” and “komal Ni”. The word “komal” may be trans­lat­ed as flat and “tivra” as diesis.

The focus of 20th cen­tu­ry research in Indian musi­col­o­gy has been to “quan­ti­fy” shru­ti-s in a sys­tem­at­ic man­ner and assess the rel­e­vance of this quan­tifi­ca­tion to the per­for­mance of clas­si­cal raga.

A strik­ing point in the ancient Indian the­o­ry of musi­cal scales is that it does not rely on num­ber ratios, be it fre­quen­cies or lengths of vibrat­ing strings. This point has been over­looked by “colo­nial musi­col­o­gists” due to their lack of insight into Indian math­e­mat­ics and their fas­ci­na­tion for a mys­tique of num­bers inher­it­ed from Neopythagoreanism.

Bharata Muni, the author(s) of Natya Shastra, must have heard about “Pythagoras tun­ing”, a the­o­ry which they could expand con­sid­er­ably because of their advance in the usage of cal­cu­lus. Despite this, the whole chap­ter on musi­cal scales does not cite a sin­gle num­ber. This para­dox is dis­cussed on page The Two-vina exper­i­ment. In A Mathematical Discussion of the Ancient Theory of Scales accord­ing to Natyashastra I showed a min­i­mal rea­son: Bharata’s descrip­tion leads to an infi­nite set of solu­tions that should be for­mal­ized with alge­bra rather than a finite set of numbers.

How (and why) should one divide the octave in 22 micro-intervals when only 5 to 12 notes are named in most Indo-European musi­cal sys­tems? A few inno­cent eth­no­mu­si­col­o­gists claimed that Bharata’s mod­el must be a vari­ant of the Arabic “quar­ter­tone sys­tem” or sim­ply a 22-grade tem­pered scale. If so, why not 24 shru­ti-s? Or any arbi­trary num­ber? The two-vina exper­i­ment works with shru­ti-s unequal in size. No sum of micro­tones mea­sur­ing 54.5 cents in a 22-grade tem­pered scale would pro­vide an inter­val close to 702 cents — the per­fect fifth giv­ing con­so­nance (sam­va­di) to musi­cal scales.

In the thought exper­i­ment described in Natya Shastra (chap­ter 28), two vina-s — stringed instru­ments one may imag­ine sim­i­lar to zithers — are tuned iden­ti­cal­ly. The author sug­gests to low­er all the notes of one instru­ment by “one shru­ti” and he gives a list of notes that will match between the two instru­ments. The oper­a­tion is repeat­ed three more times until all match­es have been made explic­it. This yields a sys­tem of equa­tions (and inequa­tions) for the 22 unknown vari­ables. Additional equa­tions can be inferred from a pre­lim­i­nary state­ment that the octave and the major fifth are “con­so­nant” (sam­va­di), there­by fix­ing ratios of 2/1 and 3/2. (Read the detailed process on page The Two-vina Experiment and the maths in A Mathematical Discussion of the Ancient Theory of Scales accord­ing to Natyashastra.)

Still, one more equa­tion is required which the the­o­ry does not pro­vide. Interestingly, in Natya Shastra the major third is clas­si­fied “asso­nant” (anu­va­di). Setting its fre­quen­cy ratio to 5/4 is there­fore a reduc­tion of Bharata’s mod­el. In fact, it is a dis­cov­ery of European musi­cians in the ear­ly 16th cen­tu­ry — as fixed-pitch key­board instru­ments had become pop­u­lar (Asselin 2000 p. 139) — which many musi­col­o­gists take for grant­ed in their inter­pre­ta­tion of the Indian mod­el. […] thirds were con­sid­ered inter­est­ing and dynam­ic con­so­nances along with their invers­es the sixths, but in medieval times they were con­sid­ered dis­so­nances unus­able in a sta­ble final sonor­i­ty (Wikipedia).

The reduc­tion of Bharata’s mod­el does not fit the flex­i­bil­i­ty of into­na­tion schemes in Indian music — read Raga into­na­tion. Experimental work on musi­cal prac­tice is not “in tune” with this inter­pre­ta­tion of the the­o­ry. The shru­ti sys­tem may be inter­pret­ed as a “flex­i­ble” frame­work in which the vari­able para­me­ter would be the syn­ton­ic com­ma, name­ly the dif­fer­ence between a Pythagorean major third and a har­mon­ic major third. Compliance with the two-vina exper­i­ment only implies that the com­ma takes its val­ue between 0 and 56.8 cents (Bel 1988a). 

Building tona­grams on the Apple II from data col­lect­ed by the MMA (1982)

➡ Measurements in “cents” refer to a log­a­rith­mic scale. Given a fre­quen­cy ratio ‘r’, its cent val­ue is 1200 x log(r) / log(2). The octave (ratio 2/1) mea­sures 1200 cents, and each semi­tone is approx­i­mate­ly 100 cents.

The con­struc­tion and assess­ment of raga scale types based on this flex­i­ble mod­el is demon­strat­ed on page Raga into­na­tion.

Extending the Indian model to Western harmony

An incen­tive to apply­ing the Indian frame­work to Western clas­si­cal music is that both tra­di­tions have giv­en a pri­or impor­tance to the con­so­nance of per­fect fifths asso­ci­at­ed with a 3/2 fre­quen­cy ratio. In addi­tion, let us agree with fix­ing the har­mon­ic major third to inter­val 5/4 (384 cents), there­by lead­ing to a syn­ton­ic com­ma of 81/80 (close to 21.5 cents). The sys­tem of equa­tions derived from the two-vina exper­i­ment is com­plete and it yields two addi­tion­al sizes of shru­ti-s: the Pythagorean lim­ma (256/243 = approx. 90 cents) and the minor semi­tone (25/24 = approx. 70 cents).

These inter­vals were well-known to Western musi­col­o­gists who tried to fig­ure out just-intonation scales that would be playable on (12-grade per octave) key­board instru­ments. Gioseffo Zarlino (1517-1590) is a well-known con­trib­u­tor to this the­o­ret­i­cal work. His “nat­ur­al scale” was an arrange­ment of the three nat­ur­al inter­vals yield­ing the fol­low­ing chro­mat­ic scale — named “just into­na­tion” in “-cs.tryScales”:

A “just into­na­tion” chro­mat­ic scale derived from Zarlino’s mod­el of “nat­ur­al scale”

This should not be con­fused with Zarlino’s mean­tone tem­pera­ment, read Microtonality.

In 1974, E. James Arnold, inspired by French musi­col­o­gist Jacques Dudon, designed a cir­cu­lar mod­el for illus­trat­ing the trans­po­si­tion of scales (mur­ccha­na) in Bharata’s mod­el. Below is the sequence of inter­vals (L, C, M…) over one octave as inferred from the two-vina exper­i­ment.

The out­er crown of Arnold’s mod­el for his inter­pre­ta­tion of the grama-murcchana sys­tem. The Pythagorean series of per­fect fifths is drawn in red and the har­mon­ic series of per­fect fifths in green.

Positions R1, R2 etc. are labelled with abbre­vi­a­tions of names Sa, Re, Ga, Ma, Pa, Dha, Ni. For instance, Ga (“E” in English) may have four posi­tions, G1 and G2 being enhar­mon­ic vari­ants of komal Ga (“E flat” = “mi bemol”) while G3 and G4 are the har­mon­ic and Pythagorean posi­tions of shud­dha Ga (“E”= “mi”) respectively.

Notes of the chro­mat­ic scale have been labeled using the Italian/Spanish/French con­ven­tion “do”, “re”, “mi”, “fa”… rather than English to avoid con­fu­sion: “D” is asso­ci­at­ed with Dha (“A” in English, “la” in Italian/French) and not with the English “D” (“re” in Italian/French).

Frequency ratios are illus­trat­ed by pic­tograms telling how each posi­tion may be derived from the base note (Sa). For instance, the pic­togram near N2 (“B flat” = “si bemol”) shows 2 ascend­ing per­fect fifths and 1 descend­ing major third.

Cycles of per­fect fiths have been marked with seg­ments in red and green. The red series is gen­er­al­ly named “Pythagorean” — con­tain­ing G4 (81/84) — and the green one “har­mon­ic” — con­tain­ing G3 (5/4). The arrow in blue dis­plays a har­mon­ic major third going from S (“C” = “do”) to G3. Both cycles are iden­ti­cal, with har­mon­ic and Pythagorean posi­tions dif­fer­ing by 1 comma.

In the­o­ry, the har­mon­ic series could also be con­struct­ed in a “Pythagorean man­ner”, extend­ing cycles of per­fect fifths. Thus, G3 (“E” = “mi”) would be at 8192/6561 (1.248) after 8 descend­ing fifths instead of 5/4 (1.25). The dif­fer­ence is a schis­ma (ratio 1.001129), an inter­val beyond human per­cep­tion. Therefore, it is more con­ve­nient to dis­play sim­ple ratios.

The frame­work imple­ment­ed in Bol Processor deals with inte­ger ratios allow­ing high accu­ra­cy. Nonetheless, it delib­er­ate­ly wipes out schis­ma dif­fer­ences. This is done by adjust­ing cer­tain ratios, for instance replac­ing 2187/2048 with 16/15.

Note that there is no trace of schis­ma in the clas­si­cal Indian the­o­ry of musi­cal scales; there would­n’t be even if Bharata’s con­tem­po­raries had con­struct­ed them via series of ratio­nal num­bers because of their deci­sion to dis­re­gard infin­i­tes­i­mals as “non-representable” enti­ties (cf. Nāgārjuna’s śūniyavā­da phi­los­o­phy, Raju 2007 p. 400). In case 2187/2048 and fur­ther com­plex ratios of the same series were deemed unprac­ti­cal, the Indian mathematician/physicist (fol­low­ing the Āryabhaţīya) would replace them all with “16/15 āsan­na (near val­ue)”… This is exem­plary of Indian math­e­mat­ics designed for cal­cu­lus rather than proof con­struc­tion. In the Western Platonicist approach, math­e­mat­ics tar­get­ed “exact val­ues” as a sign of per­fec­tion, which led its pro­po­nents to fac­ing seri­ous prob­lems with “irra­tional” num­bers and even the log­ic under­ly­ing for­mal proof-making pro­ce­dures (Raju 2007 p. 387-389).

This dia­gram and the move­able gra­ma wheel that will be next intro­duced could be built with any size of the syn­ton­ic com­ma in range 0 to 56.8 cents (Bel 1988a). The two-vina exper­i­ment implies that L = M + C. Thus, the syn­ton­ic com­ma is also the dif­fer­ence between a lim­ma and a minor semi­tone. To build a frame­work of the flex­i­ble mod­el, just allow all har­mon­ic posi­tions to move by the same amount in the direc­tion of their Pythagorean enhar­mon­ic variants.

While major thirds would be 1 com­ma larg­er when opt­ing for a Pythagorean inter­val (e.g. G4, ratio 81/64) instead of a har­mon­ic one (G3, ratio 5/4), major fifths also dif­fer by 1 com­ma but the Pythagorean fifth (P4, ratio 3/2) is larg­er than the har­mon­ic one (P3, ratio 40/27). The lat­ter has been named wolf fifth as its use in melod­ic phras­es or chords is held to sound “out of tune” with a neg­a­tive mag­i­cal conotation.

No posi­tion of this mod­el requires more than 1 ascend­ing or descend­ing major third. This makes sense to instru­ment tuners who know that tun­ing per­fect fifths by ear is an easy task that can be repeat­ed on sev­er­al steps — here, max­i­mum 5 or 6 up and down. However, tun­ing a har­mon­ic major third requires a lit­tle more atten­tion. Therefore, imag­in­ing an accu­rate tun­ing pro­ce­dure based on a suc­ces­sion of major thirds would be unre­al­is­tic — even though, indeed, this can be achieved with the sup­port of elec­tron­ic devices.

On top of the dia­gram (posi­tion “fa#”) we notice that none of the two cycles of fifths clos­es on itself because of the pres­ence of a Pythagorean com­ma. The tiny dif­fer­ence (schis­ma, ratio 1.001129) between Pythagorean and syn­ton­ic com­mas is illus­trat­ed by two pairs of posi­tions: P1/M3 and P2/M4.

Another par­tic­u­lar­i­ty at the top of the pic­ture is the appar­ent dis­rup­tion of sequence L-C-M. However, remem­ber­ing that L = M + C indi­cates that the reg­u­lar­i­ty is restored by choos­ing between P1/M3 and P2/M4.

Approximations have no impli­ca­tion on the sound­ing of musi­cal inter­vals because no human ear would appre­ci­ate a schis­ma dif­fer­ence (2 cents). However, oth­er dif­fer­ences need to remain explic­it since inte­ger ratios denote the tun­ing pro­ce­dure by which the scale may be con­struct­ed. Thus, the replace­ment inte­ger ratio may be more com­plex than the “schis­mat­ic” one, as is the case with R1, ratio 256/243 instead of 135/128 because the lat­ter is built with a major third above D4 instead of belong­ing to the Pythagorean series.

Tuning Western instruments

The prob­lem of tun­ing fixed-pitch instru­ments (harp­si­chord, pipe organ, pianoforte…) has been doc­u­ment­ed in full detail by organ/harpsichord play­er, builder and musi­col­o­gist Pierre-Yves Asselin (Asselin 2000). In his prac­ti­cal approach, just into­na­tion is a back­ground mod­el that can only be approx­i­mat­ed on 12-grade scales via tem­pera­mentcom­pro­mis­ing the pure inter­vals of just into­na­tion to meet oth­er require­ments. Techniques of tem­pera­ment applic­a­ble to Bol Processor will be dis­cussed in a forth­com­ing page.

Source: Pierre-Yves Asselin (2000 p. 61)

The col­umn at the cen­tre of this pic­ture, with notes inside ellipses, is a series of per­fect fifths which Asselin termed “Pythagorean”.

Series of fifths are infi­nite. Selecting sev­en of them (in the cen­tral col­umn) cre­ates a scale called the “glob­al dia­ton­ic frame­work” (milieu dia­tonique glob­al, see Asselin 2000 p. 59). In this exam­ple, frame­works are those of “C” and “G” (“do” and “sol” in French).

Extending series of per­fect fifths beyond the sixth step cre­ates com­pli­cat­ed ratios that may be approx­i­mat­ed (with a schis­ma dif­fer­ence) to the ones pro­duced by har­mon­ic major thirds (ratio 5/4). Positions on the right (major third upward, first order) are one syn­ton­ic com­ma low­er than their equiv­a­lents in the cen­tral series, and posi­tions on the left (major third down­ward, first order) one syn­ton­ic com­ma higher.

It is pos­si­ble to cre­ate more columns on the right (“DO#-2”, “SOL#-2” etc.) for posi­tions cre­at­ed by 2 suc­ces­sive jumps of a har­mon­ic major third, and in the same way to the left (“DOb#+2”, “SOLb#+2” etc.) but these second-order series are only used for the con­struc­tion of tem­pera­ments — read page Microtonality.

This mod­el pro­duces 3 to 4 posi­tions for each note, a 41-grade scale that would 41 keys (or strings) per octave on a mechan­i­cal instru­ment! This is a rea­son for tem­per­ing inter­vals on mechan­i­cal instru­ments, which amounts to select­ing the most appro­pri­ate 12 posi­tions for a giv­en musi­cal repertoire.

This tun­ing scheme is dis­played on scale “3_cycles_of_fifths” in the “-cs.tryTunings” Csound resource of Bol Processor.

Series of names have been entered along with the frac­tion of the start­ing posi­tion to pro­duce cycles of per­fect fifths in the scale. Following Asselin’s nota­tion, the fol­low­ing series have been created:

  1. From 4/3 up: FA, DO, SOL, RE, LA, MI, SI, FA#, DO#, SOL#, RE#, LA#
  2. From 4/3 down: FA, SIb, MIb, LAb, REb, SOLb
  3. From 320/243 up: FA-1, DO-1, SOL-1, RE-1, LA-1, MI-1, SI-1, FA#-1, DO#-1, SOL#-1, RE#-1, LA#-1
  4. From 320/243 down: FA-1, SIb-1, MIb-1, LAb-1, REb-1, SOLb-1
  5. From 27/20 up: FA+1, DO+1, SOL+1, RE+1, LA+1, MI+1, SI+1, FA#+1, DO#+1, SOL#+1, RE#+1, LA#+1
  6. From 27/20 down: FA+1, SIb+1, MIb+1, LAb+1, REb+1, SOLb+1

This was more than suf­fi­cient to deter­mine the 3 or 4 posi­tions of each note, giv­en that sev­er­al ones may reach the same posi­tion at a schis­ma dis­tance. For instance, “REb” is at the same posi­tion as “DO#-1”. The IMAGE link dis­plays this scale with (sim­pli­fied) fre­quen­cy ratios:

The “3_cycles_of_fifths” scale: a graph­ic rep­re­sen­ta­tion of three series of per­fect fifths used for per­form­ing Western music in “just into­na­tion” accord­ing to Asselin (2000)

Compared with the mod­el advo­cat­ed by Arnold (1974, see pic­ture on top), this sys­tem accepts har­mon­ic posi­tions on both sides of Pythagorean posi­tions, imply­ing that Sa (“C” or “do”) may take three dif­fer­ent posi­tions just like all unal­tered notes. In Indian music, Sa is unique because it is the base note of every clas­si­cal per­for­mance of raga, fixed by the drone (tan­pu­ra) and tuned at the con­ve­nience of singers or instru­ment play­ers. We will see that trans­po­si­tions (mur­ccha­na-s) of the basic Indian scale(s) pro­duce some of these addi­tion­al positions.

A tun­ing scheme based on three (or more) cycles of per­fect fifths is a suit­able grid for con­struct­ing basic chords in just into­na­tion. For instance, a “C major” chord is made of its ton­ic “DO”, its dom­i­nant “SOL” a per­fect fifth high­er and “MI-1” at a har­mon­ic major third above “DO”. The first two notes may belong to a Pythagorean series (blue marks on the graph) and the last one to a har­mon­ic series (green marks on the graph). Minor chords are con­struct­ed in a sim­i­lar way that will be made explic­it later.

This does not entire­ly solve the prob­lem of play­ing tonal music in just into­na­tion. Sequences of chords must be prop­er­ly aligned. For instance, should one take the same “E” in “C major” and in “E major”? The answer is “no” but the rule needs to be made explicit.

How is it pos­si­ble to select the prop­er one among the 37 * 45 = 2 239 488 chro­mat­ic scales dis­played on this graph?

In the approach fol­lowed by Pierre-Yves Asselin (2000) — inspired by the work of Conrad Letendre in Canada — rules have been derived from options val­i­dat­ed by lis­ten­ers and musi­cians. Conversely, the gra­ma frame­work exposed below is a “top-down” approach — from a the­o­ret­i­cal mod­el to its assess­ment by practitioners.

The grama framework

Using Bharata’s mod­el (read The two-vina exper­i­ment), we can con­struct chro­mat­ic (12-grade) scales in which each tonal posi­tion (among 11) has two options: har­mon­ic or Pythagorean. This is a rea­son for say­ing that the frame­work is based on 22 shru­ti-s. In Indian musi­co­log­i­cal lit­er­a­ture, the term shru­ti is ambigu­ous since it either des­ig­nates a tonal posi­tion or an interval.

In Bol Processor BP3 this “gra­ma” frame­work is edit­ed as fol­lows in “-cs.12_scales”:

The 22-shruti frame­work as per Bharata’s mod­el with a syn­ton­ic com­ma of 22 cents

We use lower-case labels for R1, R2 etc. and append a ‘_’ after labels to dis­tin­guish enhar­mon­ic posi­tions from octave num­bers. Thus, “g3_4” means G3 in the fourth octave.

Two options for each of the 11 notes yields a set of 211 = 2048 chro­mat­ic scales. Among these, only 12 are “opti­mal­ly con­so­nant”, i.e. con­tain­ing only one wolf fifth (small­er by 1 syn­ton­ic com­ma). These 12 scales are the ones used in har­mon­ic or modal music to expe­ri­ence max­i­mum con­so­nance. The author(s) of Naya Shastra had this inten­tion in mind when describ­ing a basic 12-tone “opti­mal” scale named “Ma-grama”. This scale is named “Ma_grama” in Csound resource “-cs.12_scales”:

The “Ma-grama” basic chro­mat­ic scale built on the 22-shruti framework

Clicking link IMAGE on the “Ma_grama” page yields a graph­ic rep­re­sen­ta­tion of this scale:

The Ma-grama chro­mat­ic scale, Bol Processor graph­ic display

On this image, per­fect fifths are blue lines and the (unique) wolf fifth between C and G is a red line. Note posi­tions marked in blue (“Db”, “Eb” etc.) are Pythagorean and har­mon­ic posi­tions (“D”, “E” etc.) appear in green. Normally, a “Pythagorean” posi­tion, on this frame­work, is one in which nei­ther the numer­a­tor nor the denom­i­na­tor of the frac­tion is a mul­ti­ple of 5. Multiples of 5 indi­cate jumps of har­mon­ic major thirds (ratio 5/4 or 4/5). However, this sim­ple rule is bro­ken when com­plex ratios have been replaced with sim­ple equiv­a­lents at a dis­tance of a schis­ma. Therefore, the blue and green marks on Bol Processor images are main­ly for facil­i­tat­ing the iden­ti­fi­ca­tion of a posi­tion: a note appear­ing near a blue mark­ing might as well belong to the har­mon­ic series with a more com­plex ratio bring­ing it to the Pyythagorean position.

It will be impor­tant to remem­ber that all notes of the Ma-grama scale are in their low­est enhar­mon­ic posi­tions. Other scales will be cre­at­ed by rais­ing a few notes by a comma.

This Ma-grama is the start­ing point for gen­er­at­ing all “opti­mal­ly con­so­nant” chro­mat­ic scales. This is done by trans­po­si­tions of per­fect fifths (up or down). Visualizing trans­po­si­tions becomes clear if the base scale is drawn on a cir­cu­lar wheel allowed to move inside the out­er crown shown above. The fol­low­ing is Arnold’s com­plete mod­el show­ing Ma-Grama in the basic posi­tion pro­duc­ing the “Ma01″ scale:

The fixed and mov­able shru­ti wheels in posi­tion for the “M1” trans­po­si­tion of Ma-grama pro­duc­ing the “Ma01” scale

This posi­tion­ing of the inner wheel on the out­er wheel is called a “trans­po­si­tion” (mur­ccha­na).

Intervals are shown on the graph. For instance, R3 (“D” = “re”) is a per­fect fifth from D3 (“A” = “la”).

The “Ma01″ scale pro­duced by this M1 trans­po­si­tion pro­duces the “A minor” chro­mat­ic scale with the fol­low­ing intervals:

CDb c+m D c+l Eb c+m E c+l F c+m F# c+l GAb c+m A c+l Bb c+m B c+l C

  • m = minor semi­tone = 70 cents
  • l = lim­ma = 90 cents
  • c = com­ma = 22 cents
The “A minor” chro­mat­ic scale pro­duced by the M1 trans­po­si­tion of Ma-grama (i.e. “Ma01”)

This con­struc­tion of the “A minor” scale is com­pli­ant with the Western scheme for pro­duc­ing just-intonation chords: the basic note “A” (ratio 5/3) is “LA-1” on the “3_cycles_of_fifths” scale), locat­ed in the “major third upward” series as well as its dom­i­nant “MI-1”, where­as “C” (ratio 1/1) belongs to the series termed “Pythagorean”.

At first view, the scale con­struct­ed by this M1 trans­po­si­tion also resem­bles a “C major” scale, but there is a dif­fer­ence in the choice of R3 (har­mon­ic “D” ratio 10/9) in replace­ment of R4 (Pythagorean “D” ratio 9/8). To pro­duce the “C major” scale, “D” should be raised to its Pythagorean posi­tion, which means that R4 needs to replace R3 on Bharata’s mod­el. This is done using an alter­nate basic scale named “Sa-Grama” in which P4 replaces P3. 

P3 is named “cyu­ta Pa” mean­ing “Pa low­ered by one shru­ti” — here a syn­ton­ic com­ma. The wheel rep­re­sen­ta­tion sug­gests that oth­er low­ered posi­tions may lat­er be high­light­ed by the trans­po­si­tion process, name­ly cyu­ta Ma and cyu­ta Sa.

At the bot­tom of the “Ma01″ page on “-cs.12_scales”, all inter­vals of the chro­mat­ic scale are list­ed with sig­nif­i­cant inter­vals high­light­ed in col­or. The wolf fifth is col­ored in red. Remember that if the scale is opti­mal­ly con­so­nant only one cell will be col­ored in red.

Harmonic struc­ture of the “Ma01” trans­po­si­tion of Ma-grama
Ma01 tun­ing scheme

A tun­ing scheme is sug­gest­ed at the bot­tom of the “Ma01″ page. It is based on the (pure­ly mechan­i­cal) assump­tion that per­fect fifths will be tuned in pri­or­i­ty with­in the lim­it of 6 steps. Then har­mon­ic major thirds and minor sixths are high­light­ed, and final­ly Pythagorean thirds and minor sixths may also be tak­en into account.

Exporting a major chro­mat­ic scale with the sen­si­tive note raised by 1 comma

We may use “Ma01″ as a 23-grade micro­ton­al scale in Bol Processor pro­duc­tions because all notes rel­e­vant to the chro­mat­ic scale have been labelled. However it is more prac­ti­cal to extract a 12-grade scale with only labelled notes. This can be done on the “Ma01″ page. The image shows the expor­ta­tion of “Cmaj” scale con­tain­ing 12 grades and a raised posi­tion of D.

Using “Cmaj” for the name makes it easy to declare this scale in its spe­cif­ic har­mon­ic con­text. In the same man­ner, a 12-grade “Amin” can be export­ed with­out rais­ing “D”.

“D” (“re”) is there­fore the sen­si­tive note when switch­ing between the “C major” scale and its rel­a­tive “A minor”.

In all 12-grade export­ed scales it is easy to change the note con­ven­tion — English, Italian/Spanish/French, Indian or key num­bers. In the first three ones it is pos­si­ble to select diesis in replace­ment of flat and vice-versa, giv­en that the machine rec­og­nizes the alter­nate option.

Producing the 12 chromatic scales

A PowerPoint ver­sion of Arnold’s mod­el can be down­loaded here and used to check trans­po­si­tions pro­duced by Bol Processor BP3.

Creating “Ma02” as a trans­po­si­tion of “Ma01”

To cre­ate suc­ces­sive “opti­mal­ly con­so­nant” chro­mat­ic scales, the Ma-grama should be trans­posed by descend­ing or ascend­ing per­fect fifths.

For instance, pro­duce “Ma02″ by trans­pos­ing “Ma01″ of a per­fect fourth “C to F” (see pic­ture). Nothing else needs to be done. All trans­po­si­tions have been stored in Csound resource “-cs.12_scales”. Each of these scales can then be used to export a minor and a major chro­mat­ic scale. This pro­ce­dure is explained in detail on page Creation of just-intonation scales.

Enharmonic shift of the tonic

An inter­est­ing point raised by James Arnold in our paper L’intonation juste dans la théorie anci­enne de l’Inde : les appli­ca­tions aux musiques modale et har­monique (1985) is the com­par­i­son of minor and major scales of the same ton­ic, for instance mov­ing from “C major” to “C minor”.

To get the “C minor” scale, we need to cre­ate “Ma04″ via four suc­ces­sive descend­ing fifths (or ascend­ing fourths). Be care­ful that writ­ing “C to F” on the form will not always pro­duce a per­fect fourth trans­po­si­tion because the “F to C” inter­val might be a wolf fifth! This hap­pens when mov­ing from “Ma03″ to “Ma04″. In this case, select for instance “D to G”.

From “Ma04″ we export “Cmin”. Here comes a surprise:

The “C minor” scale derived from the “Ma04” trans­po­si­tion of Ma-grama

Intervals are the ones pre­dict­ed (see “A minor” above) but the posi­tions of “G”, “F” and “C” have been low­ered by a com­ma. This was expect­ed for “G” because of the replace­ment of P4 with P3. The bizarre sit­u­a­tion is that both “C” and “F” are locat­ed one com­ma low­er than what seemed to be their low­est (or unique) posi­tion in the 22-shru­ti mod­el. Authors of Natya Shastra had antic­i­pat­ed a sim­i­lar process when invent­ing terms “cyu­ta Ma” and “cyu­ta Sa”…

This shift of the base note can be made visu­al by mov­ing the inner wheel. After 4 trans­po­si­tions, posi­tion M1 of the inner wheel will match posi­tion G1 of the out­er wheel, yield­ing the fol­low­ing configuration:

The “Ma04” trans­po­si­tion of Ma-grama show­ing low­ered C, F and G

This shift of the ton­ic was pre­sent­ed as a chal­leng­ing find­ing in our paper (Arnold & Bel 1985). Jim Arnold had done exper­i­ments with Pierre-Yves Asselin play­ing Bach’s music on the Shruti Harmonium and both liked shifts of the ton­ic on minor chords.

Two options for tun­ing a “C minor” chord. Source: Asselin (2000)

Pierre-Yves him­self men­tions a one-comma low­er­ing of “C” and “G” in the “C minor” chord. However, this was one among two options pre­dict­ed by his the­o­ret­i­cal mod­el. He checked it play­ing the Cantor elec­tron­ic organ at the University, report­ing musi­cians rat­ed this option as more pun­gent“déchi­rant” — (Asselin 2000 p. 135-137).

The oth­er option (red on the pic­ture) was that each scale be “aligned” in ref­er­ence to its base note “C” (“DO”). This align­ment (one-comma rais­ing) can be done click­ing but­ton “ALIGN SCALE” on scale pages wher­ev­er the basic note (“C”) is not at posi­tion 1/1. Let us lis­ten to the “C major”/ “C minor” / “C major” sequence, first “non-aligned” then “aligned”:

“C major”/ “C minor” / “C major” sequence, first non-aligned then aligned

Clearly, the “non-aligned” ver­sion is more pun­gent than the “aligned” one. The choice is based on per­cep­tu­al expe­ri­ence, name­ly “pratyakṣa pramāṇa” in Indian epis­te­mol­o­gy — read The two-vina exper­i­ment. We fol­low an empir­i­cal approach rather than search­ing for an “axiomat­ic proof”. The ques­tion is not which of the two options shall be true, but which one pro­duces music that sounds cor­rect.

Checking the tuning system

Checking a chord sequence

The con­struc­tion of just into­na­tion using the grama-murcchana pro­ce­dure needs to be checked in typ­i­cal chord sequences such as the “I-IV-II-V-I” series dis­cussed by Pierre-Yves Asselin (2000 p. 131-135):

After try­ing five options sug­gest­ed by his the­o­ret­i­cal mod­el, the author select­ed the one pre­ferred by all musi­cians. They even spon­ta­neous­ly choose this into­na­tion when singing with­out any spe­cif­ic instruc­tion. In addi­tion, this ver­sion is com­pli­ant with Zarlino’s “nat­ur­al scale”.

The best option for a just-intonation ren­der­ing of the
“I-IV-II-V-I” har­mon­ic series (Asselin 2000 p. 134)

In the pre­ferred option, ton­ics “C”, “F” and “G” belong to the Pythagorean series of per­fect fifths, except “D” in the “D minor” chord which is one com­ma low­er than in “G major”.

On the pic­ture, tri­an­gles whose sum­mit points to the right are major chords, and the one point­ing to the left is the “D minor” chord.

Asselin’s con­clu­sion (2000 p. 137) is that the minor mode is one syn­ton­ic com­ma low­er than the major mode. Conversely, the major mode should be one syn­ton­ic com­ma high­er than the minor mode.

This is in full agree­ment with the mod­el con­struct­ed by grama-murcchana. Since minor chro­mat­ic scales are export­ed from trans­po­si­tions of Ma-grama with all its grades in the low­est posi­tion, their base notes are also dri­ven to the low­est posi­tions. However this requires a scale “adjust­ment” in the cas­es of “Ma10″, “Ma11″ and “Ma12″ so that no posi­tion is cre­at­ed out­side the basic Pythagorean/harmonic scheme of the Indian sys­tem. Looking at Asselin’s draw­ing (above), this means that no posi­tion would be picked up in the 2nd-order series of fifths in the right­most col­umn involv­ing two con­sec­u­tive ascend­ing major thirds result­ing in a low­er­ing of 2 syn­ton­ic com­mas. This process is fur­ther explained on page Creation of just-intonation scales.

Let us lis­ten to the pro­duc­tion of the “-gr.tryTunings” gram­mar:

S --> Temp - Just
Temp --> Cmaj Fmaj Dmin Gmaj Cmaj
Just --> _scale(Cmaj,0) Cmaj _scale(Fmaj,0) Fmaj _scale(Dmin,0) Dmin _scale(Gmaj,0) Gmaj _scale(Cmaj,0) Cmaj
Cmaj --> {C3,C4,E4,G4}
Fmaj --> {F3,C4,F4,A4}
Dmin --> {D3,D4,F4,A4}
Gmaj --> {G3,B3,D4,G4}

First we will hear the sequence of chords in equal-tempered into­na­tion, then in just-intonation.

The “I-IV-II-V-I” har­mon­ic series in equal-tempered and just-intonation

Identity of the last occur­rence with Asselin’s favorite choice is marked by fre­quen­cies in the Csound score: “D4” in the third chord (D minor) is low­er by one com­ma than “D4” in the fourth chord (G major), where­as all oth­er notes (for instance “F4”) have the same fre­quen­cies in the four chords.

; I - Cmaj
i1 6.000 1.000 130.815 90.000 90.000 0.000 0.000 0.000 0.000 ; C3
i1 6.000 1.000 261.630 90.000 90.000 0.000 0.000 0.000 0.000 ; C4
i1 6.000 1.000 327.038 90.000 90.000 0.000 0.000 0.000 0.000 ; E4
i1 6.000 1.000 392.445 90.000 90.000 0.000 0.000 0.000 0.000 ; G4

; IV - Fmaj
i1 7.000 1.000 174.420 90.000 90.000 0.000 0.000 0.000 0.000 ; F3
i1 7.000 1.000 261.630 90.000 90.000 0.000 0.000 0.000 0.000 ; C4
i1 7.000 1.000 348.840 90.000 90.000 0.000 0.000 0.000 0.000 ; F4
i1 7.000 1.000 436.050 90.000 90.000 0.000 0.000 0.000 0.000 ; A4

; II - Dmin
i1 8.000 1.000 145.350 90.000 90.000 0.000 0.000 0.000 0.000 ; D3
i1 8.000 1.000 290.700 90.000 90.000 0.000 0.000 0.000 0.000 ; D4
i1 8.000 1.000 348.840 90.000 90.000 0.000 0.000 0.000 0.000 ; F4
i1 8.000 1.000 436.050 90.000 90.000 0.000 0.000 0.000 0.000 ; A4

; V - Gmaj
i1 9.000 1.000 196.222 90.000 90.000 0.000 0.000 0.000 0.000 ; G3
i1 9.000 1.000 245.278 90.000 90.000 0.000 0.000 0.000 0.000 ; B3
i1 9.000 1.000 294.334 90.000 90.000 0.000 0.000 0.000 0.000 ; D4
i1 9.000 1.000 392.445 90.000 90.000 0.000 0.000 0.000 0.000 ; G4

; I - Cmaj
i1 10.000 1.000 130.815 90.000 90.000 0.000 0.000 0.000 0.000 ; C3
i1 10.000 1.000 261.630 90.000 90.000 0.000 0.000 0.000 0.000 ; C4
i1 10.000 1.000 327.038 90.000 90.000 0.000 0.000 0.000 0.000 ; E4
i1 10.000 1.000 392.445 90.000 90.000 0.000 0.000 0.000 0.000 ; G4
s

To sum­ma­rize, the ton­ic and dom­i­nant notes of every minor chord belongs to the “low­er” har­mon­ic series of per­fect fifths appear­ing in the right col­umn of Asselin’s draw­ing repro­duced above. Conversely, the ton­ic and dom­i­nant notes of every major chord belongs to the “Pythagorean” series of per­fect fifths in the cen­tral column.

Checking note sequences

Switches for enhar­mon­ic adjust­ments on Bel’s Shruti Harmonium (1980)

Rules set­ting the rel­a­tive posi­tions of major and minor modes (see above) only deal with the three notes defin­ing a major or minor chord. Transpositions (mur­ccha­na-s) of the Ma-grama pro­duce basic notes in the same posi­tions, but these are also chro­mat­ic (12-grade) scales. Therefore, they also set up the enhar­mon­ic posi­tions of all notes that would be played in this har­mon­ic con­text. Do these com­ply with just into­na­tion? In the­o­ry they do, because the 12 chro­mat­ic scales obtained by these trans­po­si­tions are “opti­mal­ly con­so­nant”: each of them con­tains no more than a wolf fifth.

In 1980, James Arnold did exper­i­ments to check this the­o­ret­i­cal mod­el with my Shruti Harmonium pro­duc­ing pro­grammed inter­vals in 1-cent accu­ra­cy. Pierre-Yves Asselin played clas­si­cal pieces while Jim was manip­u­lat­ing switch­es on the instru­ment to select enhar­mon­ic variants.

Listen to three ver­sions of an impro­vi­sa­tion based on Mozart’s musi­cal dice game. The first one is equal-tempered, the sec­ond one uses Serge Cordier’s equal-tempered scale with an extend­ed octave (1204 cents, see Microtonality) and the third one sev­er­al dif­fer­ent scales to ren­der just into­na­tion. To this effect, vari­ables point­ing at scales based on the har­mon­ic con­text have been insert­ed in the first gram­mar rules:

S --> _vel(80) Ajust Bjust
Ajust --> Cmaj A1 A2 Gmaj A3 Cmaj A4 Dmaj A5 Cmaj A6 Gmaj A7 A8 Cmaj A1 A2 Gmaj A3 Cmaj A4 Dmaj A5 Cmaj A6 Gmaj A7 A’8
Bjust --> Gmaj B1 Cmaj B2 Dmaj B3 Cmaj B4 Fmaj B5 B6 Gmaj B7 Cmaj B8 Gmaj B1 Cmaj B2 Dmaj B3 Cmaj B4 Fmaj B5 B6 Gmaj B7 Cmaj B8
Cmaj --> _scale(Cmaj,0)
Dmaj --> _scale(Dmaj,0)
Fmaj --> _scale(Fmaj,0)
Gmaj --> _scale(Gmaj,0)
… etc.

An exam­ple of Mozart’s musi­cal dice game, equal-tempered
The same exam­ple, equal-tempered scale with octave stretched at 1204 cents
The same exam­ple in just intonation

Scale comparison

At the bot­tom of pages “-cs.12_scales” and “-cs.Mozart”, all scales are com­pared for their inter­val­ic con­tent. The com­par­i­son is based on frac­tions where these have been declared, or floating-point fre­quen­cy ratios otherwise.

The com­par­i­son con­firms that the “Amin” chro­mat­ic scale is iden­ti­cal to “Fmaj”.

Raising “D” in “Ma01″ cre­at­ed “Sa01″, the first trans­po­si­tion of the Sa-grama scale. From “Sa01″ we can pro­duce “Sa02″ etc. by suc­ces­sive trans­po­si­tions (one fourth up). But the com­para­tor shows that “Sa02″ is iden­ti­cal to “Ma01″.

In a sim­i­lar way, trans­po­si­tions “Ma13″, “Ma14″ etc. are iden­ti­cal to “Ma01″, “Ma02″ etc. The series of chro­mat­ic scales is (as expect­ed) cir­cu­lar because “Ma13″ returns to “Ma01″.

Comparison of scales stored in “-cs.12_scales”

More details about fre­quen­cies, block keys etc. may be found on page Microtonality.

Overture

The goal of just into­na­tion is to pro­duce “opti­mal­ly con­so­nant” chords and note sequences, a legit­i­mate approach when con­so­nance is the touch­stone of the high­est achieve­ment in art music. This was indeed the case of sacred music aim­ing at a “divine per­fec­tion” ensured by the absence of “wolf tones” and oth­er irreg­u­lar­i­ties. However, from a broad­er view­point, music is also the field of both expec­ta­tion and sur­prise. In an artis­tic process, this may imply devi­a­tions from “rules” — the same way poet­ry requires a breach of seman­tic and syn­tac­tic rules of the language…

Even when chords are per­fect­ly con­so­nant and com­pli­ant with rules of har­mo­ny (per­ceived by the com­pos­er), note sequences might devi­ate from their the­o­ret­i­cal posi­tions in order to cre­ate a cer­tain degree or ten­sion or to man­age a bet­ter tran­si­tion to the next chord.

When Greek-French com­pos­er Iannis Xenakis — well-known for his for­mal­ized approach of tonal­i­ty — lis­tened to Bach’s First pre­lude for Well-Tempered Clavier played in just into­na­tion on the Shruti Harmonium, he told his pref­er­ence for the equal-tempered ver­sion! This made sense for a com­pos­er whose music has been praised by Tom Service for its “deep, pri­mal root­ed­ness in rich­er and old­er phe­nom­e­na even than musi­cal his­to­ry: the physics and pat­tern­ing of the nat­ur­al world, of the stars, of gas mol­e­cules, and the pro­lif­er­at­ing pos­si­bil­i­ties of math­e­mat­i­cal prin­ci­ples” (2013).

Our work is now focused on the imple­men­ta­tion of a con­vert­er from MusicXML files to Bol Processor data. This will make it pos­si­ble to play musi­cal scores with spec­i­fied Csound orches­tra and micro­ton­al scales, there­by check­ing scale mod­els and tun­ing pro­ce­dures against real Western musi­cal works.

Bernard Bel — Dec. 2020 / Jan. 2021

References

Arnold, E.J.; Bel, B. L’intonation juste dans la théorie anci­enne de l’Inde : ses appli­ca­tions aux musiques modale et har­monique. Revue de musi­colo­gie, JSTOR, 1985, 71e (1-2), p.11-38.

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

Bel, B. A Mathematical Discussion of the Ancient Theory of Scales accord­ing to Natyashastra. Note interne, Groupe Représentation et Traitement des Connaissances (CNRS), March 1988a.

Bel, B. Raga : approches con­ceptuelles et expéri­men­tales. Actes du col­loque “Structures Musicales et Assistance Informatique”, Marseille 1988b.

Rao, S.; Van der Meer, W. The Construction, Reconstruction, and Deconstruction of Shruti. Hindustani music: thir­teenth to twen­ti­eth cen­turies (J. Bor). New Delhi, 2010: Manohar.

Raju, C. K. Cultural foun­da­tions of math­e­mat­ics : the nature of math­e­mat­i­cal proof and the trans­mis­sion of the cal­cu­lus from India to Europe in the 16th c. CE. Delhi, 2007: Pearson Longman: Project of History of Indian Science, Philosophy and Culture : Centre for Studies in Civilizations.

Service, T. A guide to Iannis Xenakis’s music. The Guardian, 23 April 2013.

Microtonality

Just-intonation tun­ing sys­tem used in Western harmony

Microtonality is a top­ic addressed by many musi­cal sys­tems deal­ing with tonal inter­vals: the use of micro­tones—inter­vals small­er than a semi­tone, also called “microin­t­er­vals”. It may also be extend­ed to include any music using inter­vals not found in the cus­tom­ary Western tun­ing of twelve equal inter­vals per octave. In oth­er words, a micro­tone may be thought of as a note that falls between the keys of a piano tuned in equal tem­pera­ment (Wikipedia).

All exam­ples shown on this page are avail­able in the sam­ple set bp3-ctests-main.zip shared on GitHub. Follow instruc­tions on page Bol Processor ‘BP3’ and its PHP inter­face to install BP3 and learn its basic oper­a­tion. Download and install Csound from its dis­tri­b­u­tion page.

A brief presentation of a broad subject

On elec­tron­ic instru­ments such as the Bol Processor asso­ci­at­ed with Csound, micro­tonal­i­ty is the mat­ter of “micro­ton­al tun­ing”, here mean­ing the con­struc­tion of musi­cal scales alien to the con­ven­tion­al one(s).

Equal tem­pera­ment is an intu­itive mod­el divid­ing the octave (fre­quen­cy ratio 2/1) into 12 “equal” inter­vals called semi­tones. Each semi­tone is assigned a fre­quen­cy ratio of 2 1/12 = 1.059. Tonal inter­vals are gen­er­al­ly mea­sured on a log­a­rith­mic scale by which ratio 2/1 is assigned 1200 cents. Thus, each semi­tone mea­sures 100 cents in a con­ven­tion­al scale system. 

An equal-tempered scale is con­ve­nient for mak­ing a piece of music sound iden­ti­cal when trans­posed to a dif­fer­ent key. However, its inter­vals do not match the “nat­ur­al” ones con­struct­ed from inte­ger ratios using num­bers 3, 4, 5. These sim­ple ratios give an impres­sion of con­so­nance as the fre­quen­cies of upper par­tials (har­mon­ics) may coin­cide: if two strings vibrate at a fre­quen­cy ratio of 3/2 (a “per­fect fifth”) then the 3d har­mon­ic of the low­est vibra­tion is at the same fre­quen­cy as the 2nd har­mon­ic of the sharp­er one.

In an equal-tempered scale, the har­mon­ic major third (C - E) mea­sur­ing 400 cents yields a ratio of 1.26 instead of 1.25 (5/4). The major fifth (C -G) also sounds slight­ly “out of tune” with a ratio of 1.498 instead of 1.5 (3/2). These mis­match­es may pro­duce beats rat­ed unpleas­ant in some har­mon­ic contexts.

When tun­ing stringed instru­ments (for instance the piano) octaves may be stretched a lit­tle to com­pen­sate a slight inhar­monic­i­ty of upper par­tials pro­duced by vibrat­ing strings (in high­er octaves) as advo­cat­ed by Serge Cordier. A val­ue of 1204 cents sounds fair, with the addi­tion­al advan­tage of mak­ing fifths sound “per­fect” at the ratio of 3/2. In this set­ting, the fre­quen­cy ratio of stretched octaves is 2(1204/1200) = 2.0046. This effect can be repro­duced in elec­tron­ic instru­ments such as dig­i­tal pianos imi­tat­ing mechan­i­cal ones. We will see how to imple­ment it in Bol Processor BP3 + Csound.

Musicologists agree that equal tem­pera­ment has nev­er been accu­rate­ly achieved on clas­si­cal instru­ments such as pipe organs and harp­si­chords. Instrument tuners rather designed rules to ren­der the most pleas­ing inter­vals in spe­cif­ic musi­cal con­texts. In oth­er words, a mechan­i­cal instru­ment should be tuned in com­pli­ance with a style and reper­toire of music. Pierre-Yves Asselin (2000) pub­lished a detailed com­pi­la­tion of tun­ing tech­niques used by European musi­cians and instru­ment mak­ers over the past centuries.

The same flex­i­bil­i­ty should be pos­si­ble with music pro­duced by “algo­rithms”.

Outside Western clas­si­cal music, a myr­i­ad of tonal sys­tems are delib­er­ate­ly reject­ing 12-tone-in-one-octave tonal­i­ty. Arabic-Andalusian music is often described as a “quar­ter­tone” sys­tem divid­ing the octave in 24 inter­vals. Equal-tempered 7-grade scales have been iden­ti­fied on var­i­ous tra­di­tion­al African instru­ments. The grama-murcchana the­o­ret­i­cal mod­el of tonal music in India claims the use of 22 shru­ti-s, pre­sum­ably microin­t­er­vals of unequal sizes (see below).

The scale() operator in Bol Processor BP3 + Csound

Csound scores are flex­i­ble in terms of rep­re­sent­ing tonal posi­tions. A com­mon con­ven­tion is octave point pitch-class. For instance, note “A4” would be assigned tonal posi­tion “8.09”, which means that it is the 9th note locat­ed in the 8th octave (in English con­ven­tion). This val­ue yields a note at the dia­pa­son fre­quen­cy (usu­al­ly 440 Hz) on a basic Csound instrument.

It is also pos­si­ble to spec­i­fy the note posi­tion by its fre­quen­cy in cycles per sec­ond (cps mode). This allows a high accu­ra­cy since fre­quen­cies are expressed in float­ing point. In this for­mat, “A4” would be assigned “440.000”.

As explained on page Csound tun­ing in BP3, it is pos­si­ble to send to the same Csound instru­ment notes in octave point pitch-class and and cps for­mat. Microtonal scales will indeed use exclu­sive­ly cps. The cps mode is also acti­vat­ed on BP3 when­ev­er the dia­pa­son fre­quen­cy is not exact­ly 440 Hz. To ren­der all fre­quen­cies vis­i­ble, set it for instance to “400.00001”…

Let us take a sim­ple exam­ple to demon­strate the use of sev­er­al scales. The gram­mar is:

-se.tryScales
-cs.tryScales
ORD
S --> _scale(0,0) C4 E4 A4 {8,{C4,E4,G4,C5}} {8,{C4,Eb4,G4,C5}} - _scale(piano,C4) C4 E4 A4 {8,{C4,E4,G4,C5}}{8,{C4,Eb4,G4,C5}} - _scale(just into­na­tion,C4) C4 E4 A4 {8,{C4,E4,G4,C5}} {8,{C4,Eb4,G4,C5}}

In this gram­mar, the same sequence is repeat­ed three times with dif­fer­ent tunings:

  • _scale(0,0) is the default tun­ing = Twelve-tone equal-tempered
  • _scale(piano, C4) is the one men­tioned for the piano
  • _scale(just into­na­tion, C4) is a (so-called) “just-intonation” scale

Note “C4” appear­ing in these oper­a­tors is the block key, here mean­ing the key that should match its equal-tempered val­ue in the tun­ing con­struct­ed by the scale.

It may be nec­es­sary to hear sev­er­al times the sound ren­der­ing to grasp minute differences:

A musi­cal sequence repeat­ed 3 times in equal-tempered, stretched octave and “just intonation”

The sound is pro­duced by Csound instru­ment “new-vina.orc” designed by Srikumar Karaikudi Subramanian to imi­tate the Sarasvati vina, a long-stringed instru­ment played in South India — lis­ten to his demo: Sarasvati vina. This type of instru­ment is able to stress minute tonal subtleties.

Beats are audi­ble on the equal-tempered ver­sion, yet a lit­tle less on the piano ver­sion and almost absent of the just-intonation ren­der­ing. Looking at the Csound score makes an easy check of the­o­ret­i­cal models:

f1 0 256 1 “vina-wave-table.aiff” 0 4 0

t 0.000 60.000
i1 0.000 1.000 8.00 90.000 90.000 0.000 0.000 0.000 0.000 ; C4
i1 1.000 1.000 8.04 90.000 90.000 0.000 0.000 0.000 0.000 ; E4
i1 2.000 1.000 8.09 90.000 90.000 0.000 0.000 0.000 0.000 ; A4
i1 3.000 8.000 8.00 90.000 90.000 0.000 0.000 0.000 0.000 ; C4
i1 3.000 8.000 8.04 90.000 90.000 0.000 0.000 0.000 0.000 ; E4
i1 3.000 8.000 8.07 90.000 90.000 0.000 0.000 0.000 0.000 ; G4
i1 3.000 8.000 9.00 90.000 90.000 0.000 0.000 0.000 0.000 ; C5
i1 11.000 8.000 8.00 90.000 90.000 0.000 0.000 0.000 0.000 ; C4
i1 11.000 8.000 8.03 90.000 90.000 0.000 0.000 0.000 0.000 ; Eb4
i1 11.000 8.000 8.07 90.000 90.000 0.000 0.000 0.000 0.000 ; G4
i1 11.000 8.000 9.00 90.000 90.000 0.000 0.000 0.000 0.000 ; C5

i1 20.000 1.000 261.630 90.000 90.000 0.000 0.000 0.000 0.000 ; dop3
i1 21.000 1.000 329.915 90.000 90.000 0.000 0.000 0.000 0.000 ; mip3
i1 22.000 1.000 440.585 90.000 90.000 0.000 0.000 0.000 0.000 ; lap3
i1 23.000 8.000 261.630 90.000 90.000 0.000 0.000 0.000 0.000 ; dop3
i1 23.000 8.000 329.915 90.000 90.000 0.000 0.000 0.000 0.000 ; mip3
i1 23.000 8.000 392.445 90.000 90.000 0.000 0.000 0.000 0.000 ; solp3
i1 23.000 8.000 524.463 90.000 90.000 0.000 0.000 0.000 0.000 ; dop4
i1 31.000 8.000 261.630 90.000 90.000 0.000 0.000 0.000 0.000 ; dop3
i1 31.000 8.000 311.340 90.000 90.000 0.000 0.000 0.000 0.000 ; mibp3
i1 31.000 8.000 392.445 90.000 90.000 0.000 0.000 0.000 0.000 ; solp3
i1 31.000 8.000 524.463 90.000 90.000 0.000 0.000 0.000 0.000 ; dop4

i1 40.000 1.000 261.630 90.000 90.000 0.000 0.000 0.000 0.000 ; Cj4
i1 41.000 1.000 327.038 90.000 90.000 0.000 0.000 0.000 0.000 ; Ej4
i1 42.000 1.000 436.137 90.000 90.000 0.000 0.000 0.000 0.000 ; Aj4
i1 43.000 8.000 261.630 90.000 90.000 0.000 0.000 0.000 0.000 ; Cj4
i1 43.000 8.000 327.038 90.000 90.000 0.000 0.000 0.000 0.000 ; Ej4
i1 43.000 8.000 392.445 90.000 90.000 0.000 0.000 0.000 0.000 ; Gj4
i1 43.000 8.000 523.260 90.000 90.000 0.000 0.000 0.000 0.000 ; Cj5
i1 51.000 8.000 261.630 90.000 90.000 0.000 0.000 0.000 0.000 ; Cj4
i1 51.000 8.000 313.956 90.000 90.000 0.000 0.000 0.000 0.000 ; Dj#4
i1 51.000 8.000 392.445 90.000 90.000 0.000 0.000 0.000 0.000 ; Gj4
i1 51.000 8.000 523.260 90.000 90.000 0.000 0.000 0.000 0.000 ; Cj5
s

In the Csound score, note names have been auto­mat­i­cal­ly replaced with their trans­la­tions in the def­i­n­i­tions of scales piano and just into­na­tion (see below). For instance, in the piano scale of this exam­ple, ‘C4’, ‘D4’, ‘E4’… have been replaced with ‘do3’, ‘re3’, ‘mi3’ and a mark­er ‘p’ has been insert­ed: ‘dop3’, ‘rep3’, ‘mip3’… Similarly, just into­na­tion notes are labelled ‘Cj4’, ‘Dj4’, ‘Ej4’ etc. This renam­ing is option­al since all these scales are made of 12 grades with iden­ti­cal key posi­tions, but it is used here to make the Csound score more explicit.

The use of “C4” as a block key results in that it is always ren­dered at fre­quen­cy 261.630 Hz. Consequently, “A4” is at 440 Hz in the first occur­rence and a bit high­er in the piano ver­sion due to the octave stretch­ing with ratio 524.463 / 261.630 = 2.0046 = 1204 cents.

Finally, we notice that, as pre­dict­ed by the mod­el, the per­fect major fifth (C - G) yields equal posi­tions (392.445 Hz) in the piano and just into­na­tion scales.

➡ In real­i­ty, the “just into­na­tion” frag­ment in this exam­ple would be out of tune if we fol­low the frame­work of tonal­i­ty sug­gest­ed by Asselin (2000) and con­firmed by an exten­sion of the ancient grama-murcchana sys­tem in India. In the last “C minor” chord, notes “C” and “G” should be low­ered by a syn­ton­ic com­ma. This means that play­ing just into­na­tion in Western har­mo­ny demands more than a sin­gle just-intonation scale: each har­mon­ic con­text requires its own spe­cif­ic tun­ing, which indeed can­not be achieved on key­board instru­ments. A method for build­ing just-intonation scales and using them in Bol Processor music is exposed on page Just into­na­tion: a gen­er­al frame­work.

Looking at two scales

From the gram­mar page “-gr.tryScales” we can fol­low the Csound resource file “-cs.tryScales” con­tain­ing scale and instru­ment def­i­n­i­tions. The same file con­tains instruction 

f1 0 256 1 “vina-wave-table.aiff” 0 4 0

telling the Csound instru­ment to use the “vina” waveform.

Below is a rep­re­sen­ta­tion of the piano scale (Cordier’s equal temperament):

The “piano” scale: 12-tone equal-tempered with an octave stretch­ing of 4 cents

All inter­vals have been set in a sin­gle click after enter­ing “1204” as the size of the octave in cents, which fixed the last ratio to 2.004 (approx­i­mat­ed as 501/250). Then but­ton “INTERPOLATE” was clicked to cal­cu­late inter­me­di­ate ratios.

The scale is dis­played as a cir­cu­lar graph click­ing the “IMAGE” link:

The “piano” scale as sug­gest­ed by Serge Cordier. Beware that the size of the whole cir­cle is 1204 cents, not 1200!

The dis­play con­firms that the posi­tion of “G” (“solp”) is ratio 3/2 or 702 cents. However, the tonal dis­tance between “G” (“solp”) and “D” (“rep”) is slight­ly small­er (699 cents), which means that this scale is not a pure cycle of fifths as the lat­ter would have end­ed up, after 12 steps, with an octave stretched by one Pythagorean com­ma (scale “twelve_fifths” in “-cs.tryScales”):

Cycle of 12 per­fect fifths end­ing with “last C” high­er by a Pythagorean com­ma (approx­i­mat­ed to 81/80 = 22 cents)

The basekey is the key aimed at pro­duc­ing base­freq. Here base­freq is set to 261.630 Hz for key #60 which is usu­al­ly the “mid­dle C” on a piano key­board. Parameter base­freq has an effect on the pitch which is fur­ther adjust­ed by the val­ue of the dia­pa­son entered in “-se.tryScales”. If the dia­pa­son were set to 430 Hz, the fre­quen­cy of “C4” would be 261.630 x 430 / 440 = 255.68 Hz.

Parameter baseoc­tave is not stored in the Csound func­tion table, but it is required by Bol Processor to name notes prop­er­ly. This scale uses the French note con­ven­tion by which key #60 is named “do3” instead of “C4”. Therefore baseoc­tave = 3.

Temperament

At the bot­tom of the “Scale” page is a form for con­struct­ing scales in mean­tone tem­pera­ment. The range of this pro­ce­dure is larg­er than usu­al because the inter­face makes it pos­si­ble to mod­i­fy any series of inter­vals, not only fifths and fourths.

Bol Processor pro­ce­dures for the pro­duc­tion of tem­pered scales (and all scales in gen­er­al) may be used both for visualizing/hearing inter­vals and chords derived from a the­o­ret­i­cal descrip­tion of the scale, and for check­ing that a pro­ce­dure for tun­ing mechan­i­cal instru­ment is com­pli­ant with its the­o­ret­i­cal descrip­tion. Below is an exam­ple of both approach­es applied to Zarlino’s mean­tone temperament.

The long sto­ry of tem­pera­ment in European music is exposed in Pierre-Yves Asselin’s the­sis (2000 p. 139-150). During the 16th and 17th cen­turies, European musi­cians tend­ed to pre­fer “pure” major thirds (fre­quen­cy ratio 5/4) at the cost of com­pro­mis­ing the size of fifths. This was named “pure third mean­tone tem­pera­ment”, gen­er­al­ly achieved by decreas­ing the size of cer­tain fifths by a frac­tion of the syn­ton­ic com­ma. After this peri­od there was anoth­er fash­ion of using per­fect fifths (fre­quen­cy ratio 3/2) and com­pro­mis­ing the size of major thirds in the same way. Both options — and many more — are imple­ment­ed on Bol Processor’s inter­face. Algorithmic tun­ing is indeed eas­i­er to achieve than the tun­ing of mechan­i­cal instruments!

Zarlino, theory

Let us try Zarlino’s mean­tone tem­pera­ment (Asselin 2000 p. 85-87) which became pop­u­lar in the 16th-17th cen­turies. It is made of 12 fifths start­ing from “E♭” (“mi♭”) up to “G#” (“sol#”) dimin­ished by 2/7 of a syn­ton­ic com­ma — that is 6 cents.

This should not be con­fused with Zarlino’s “nat­ur­al scale” which is an instance of just into­na­tion.

In the­o­ry, this is achieved in two steps from the posi­tion of “C” which is known in advance.

First we enter the start note “do” and the sequence of fifths “do, sol, re…, sol#”, spec­i­fy­ing ratios equal to 3/2 with a mod­i­fi­ca­tion of -2/7 com­ma (see picture).

Then we do the same with fourths (descend­ing fifths) start­ing from “do” (“C”) down to “mi♭” (“E♭”).

The result is shown by click­ing the IMAGE link:

Zarlino’s mean­tone tem­pera­ment (source Asselin 2000 p. 85)

In this tem­pera­ment, har­mon­ic major thirds (green con­nec­tions on the graph) are equal and slight­ly small­er (384 cents) than the “pure” ones (ratio 5/4 or 386 cents). Semitones between plain and altered notes are equal (71 cents). All major tones are equal (192 cents) except “do#-mi♭” and “sol#-sib” (242 cents).

Noticeable dis­so­nance is found in the “sol#-mi♭” fifth (746 cents, i.e. an extra 2 + 1/7 com­mas = 44 cents) and major thirds such as “sol#-do”, “do#-fa”, “fa#-sib” and “si-mi♭” which are larg­er (433 cents) than Pythagorean major thirds (408 cents). Evidently, these inter­vals are not sup­posed to be used in the musi­cal reper­toire to which this tun­ing is applied…

Zarlino mean­tone tem­pera­ment, table of inter­vals (in cents)

Comparison

A lay per­son may won­der whether small tonal adjust­ments — often less than the quar­ter of a semi­tone — pro­duce notice­able effects on the musi­cal works using these tun­ing sys­tems. Comparative exper­i­ments are easy on Bol Processor.

Let us for instance play one (among the bil­lion vari­a­tions) of Mozart’s musi­cal dice game with tun­ing options select­ed by acti­vat­ing a first rule in “-gr.Mozart”:

// gram#1[1] S --> _vel(80)_tempo(3/4) _scale(0,0) A B // Equal tem­pera­ment
// gram#1[2] S --> _vel(80) _tempo(3/4) _scale(piano,0) A B // Equal tem­pera­ment (Cordier)
// gram#1[3] S --> _vel(80) _tempo(3/4) _scale(Zarlino_temp,0) A B // Zarlino’s tem­pera­ment
// gram#1[4] S --> _vel(80) _tempo(3/4) Ajust Bjust // Just intonation

Musical pro­duc­tions are list­ed below. The ran­dom seed has been set to 998 (in “-se.Mozart”) as this vari­a­tion con­tains a greater num­ber of chords, and the per­for­mance has been slowed down by “_tempo(3/4)”.

It is impor­tant to remem­ber that among these options only the first three ones (tem­pera­ments) are acces­si­ble to fixed-pitch instru­ments with 12-grade key­boards. The last one (just into­na­tion) requires a “retun­ing” of each har­mon­ic con­tent — read Just into­na­tion: a gen­er­al frame­work.

The first option (equal tem­pera­ment) is the tun­ing by default of most elec­tron­ic instruments:

Equal tem­pera­ment on Mozart’s dice game

The sec­ond option is an equal tem­pera­ment with octaves stretched by 4 cents, as advo­cat­ed by Serge Cordier (see above):

Equal tem­pera­ment with stretched octaves (Cordier)

The third option is Zarlino’s temperament:

Zarlino’s tem­pera­ment

The last option is “just intonation”:

Just into­na­tion

Zarlino, a simulation of the physical tuning

Tuning mechan­i­cal instru­ments (such as a harp­si­chord) demands pro­ce­dures dif­fer­ent from the pro­gram­ming of “meantone-tempered” scales on Bol Processor. However, using the com­put­er makes it pos­si­ble to quick­ly ver­i­fy that the mechan­i­cal pro­ce­dure would yield the expect­ed result. Let us demon­strate it with Zarlino’s temperament.

On the com­put­er we had pro­grammed a series of 7 ascend­ing fifths dimin­ished by 2/7 com­ma from“do” to “do#”. This is impos­si­ble to achieve “by ear” on a mechan­i­cal instru­ment. Pierre-Yves Asselin (2000 p. 86) revealed the method illus­trat­ed below.

1st step

From “do”, tune two suc­ces­sive major thirds. This pro­duces a “sol#” posi­tioned at fre­quen­cy ratio 25/16 (773 cents) above “do”.

This “sol#” is actu­al­ly “SOL#+2” of the 2nd-order har­mon­ic fifths down­ward series in Asselin’s tun­ing frame­work (2000 p. 62) — read Just into­na­tion: a gen­er­al frame­work. It is not exact­ly the one expect­ed on Zarlino’s mean­tone tem­pera­ment, although close to it. It will be labeled “sol2#”.

2nd step

From “sol2#” tune down a per­fect fifth yield­ing “do#”.

Beware to pro­gram a per­fect fifth spec­i­fied as “add 0/1 com­ma” on the form. There is also a form for cre­at­ing series of per­fect fifths that can be used for this step.

The result­ing “do#” (ratio 1.04166) is exact­ly 52/3/23, the one expect­ed in Zarlino’s mean­tone tem­pera­ment (Asselin 2000 p. 194).

3d step

Tune 7 equal fifths between “do” and “do#”. Equalizing fifths is a typ­i­cal pro­ce­dure for tun­ing mechan­i­cal instru­ments. A gen­er­al pro­ce­dure is avail­able on Bol Processor to equal­ize inter­vals over a series of notes. Here we spec­i­fy that these inter­vals should be close to frac­tion 3/2, even though we know that they will end up as fifths dimin­ished by 2/7 comma.

Missing notes “sol, re ‚la, si, fa#” are cre­at­ed. For note “mi” which is already exist­ing, the machine checks that its cur­rent posi­tion is close to the one pre­dict­ed by the approx­i­mate fraction.

The graph reveals that the cal­cu­lat­ed posi­tion of “mi” (ratio 1.248) is slight­ly off its pre­vi­ous posi­tion (1.25) but this dif­fer­ence is neg­li­gi­ble. We keep both posi­tions on the graph, know­ing that only one occurs on a phys­i­cal tuning.

4th step

Now tune down 3 fifths dimin­ished by 2/7 com­ma from “do” to “mi♭”. This can be done by repro­duc­ing “by ear” inter­vals cre­at­ed in the pre­vi­ous step. Another method is to tune “mi♭” one major third below “sol” as shown on the form.

5th step

Once “mi♭” has been tuned we can tune three equal (in fact dimin­ished by 2/7 com­ma) fifths between “mi♭” and “do”. Again the “equal­ize inter­vals” pro­ce­dure is used to this effect. At this stage, the posi­tions of “si♭” and “fa” are created.

The result is shown on the fol­low­ing graph:

Zarlino’s mean­tone tem­pera­ment con­struct­ed as a sim­u­la­tion of phys­i­cal tuning

On this graph, ratio 1.563 for “sol#” is close (with­in 7 cents) to 1.557 of Zarlino’s tem­pera­ment. On a mechan­i­cal instru­ment, since “mi” tuned by equal­iz­ing fifths (3d step) was at posi­tion 1.248, adjust­ing the “mi-sol#” major third to a 5/4 ratio would set “sol#” at a bet­ter ratio (1.56).

More temperaments

All mean­tone tem­pera­ments list­ed in Asselin’s the­sis can be eas­i­ly pro­grammed on the Bol Processor. Let us take for exam­ple the clas­si­cal mean­tone tun­ing (Asselin 2000 p. 77) pop­u­lar in the 16th-17th cen­turies. It aimed at pro­duc­ing “pure thirds” (ration 5/4). It is made of a series of fifths from “mi♭” (“E♭”) to “sol#” (“G#”) dimin­ished by 1/4 com­ma. The prob­lem is that the tun­ing scheme — unlike Zarlino’s mean­tone — does not start from “do” (“C”). There are two solutions.

The first solu­tion is to break the series of fifths in two parts: first cre­ate the “do, sol, re, la, mi, si, fa#, do#, sol#” series of ascend­ing fifths, then the “do, fa, si♭, mi♭” series of descend­ing fifths.

In the sec­ond solu­tion we direct­ly cre­ate the “mi♭, si♭, fa, do, sol, re, la, mi, si, fa#, do#, sol#” series of ascend­ing fifths, yield­ing the fol­low­ing graph:

Classical mean­tone tun­ing posi­tioned on mi♭

This tun­ing is cor­rect but it can­not be used by the Bol Processor con­sole because of the dis­place­ment of the ref­er­ence. Complicated pro­ce­dures would be required to set the dia­pa­son (A4 fre­quen­cy) to the desired stan­dard and assign prop­er key num­bers to notes of the scale.

Fortunately, the prob­lem is solved in a sin­gle click by reset­ing the base of the scale to note “do”, which amounts to a rota­tion of the graph.

We take this oppor­tu­ni­ty to replace the Italian/French with the English note convention.

The result is the clas­si­cal mean­tone scale tun­ing which is remark­able for its large num­ber of har­mon­ic major thirds (cir­ca 5/4):

The same meth­ods can be used to imple­ment anoth­er tem­pera­ment pop­u­lar at the same time (16th-17th c.) which aims at enhanc­ing pure minor thirds (Asselin 2000 p.83). It can also be described as a series of ascend­ing fifths from “mi♭” to “sol#” with a dif­fer­ent adjust­ment: fifths are dimin­ished by 1/3 comma.

In this tun­ing, minor thirds are sized 316 cents (har­mon­ic minor third, fre­quen­cy ratio 6/5) with the excep­tion of “A#-C#”, “D#-F#” and “F-G#” all sized 352 cents:

Pure minor-third mean­tone temperament
Source: Asselin (2000 p. 101)

The BACH tem­pera­ment designed by Johann Peter Kellner for 18th cen­tu­ry music (Asselin 2000 p. 101-103) con­tains two vari­eties of fifths (see tun­ing scheme).

It can be pro­grammed in 3 steps:

  1. A series of descend­ing fifths from “do-sol-re-la-mi”, dimin­ished by 1/5 comma;
  2. A series of ascend­ing per­fect fifths from “do” to “sol♭”;
  3. An ascend­ing per­fect fifth from “mi” to “si”.

The last inter­val is a remain­ing fifth “si-sol♭” (“B-G♭”) exact­ly dimin­ished by 1/5 com­ma (i.e. 697 cents).

The result is close to Werkmeister III (1691) (Asselin 2000 p. 94) with all posi­tions close to the Pythagorean/harmonic series used for just into­na­tion.

“BACH tem­pera­ment” designed by Johann Peter Kellner (18th century)

Let us com­pare these var­i­ous cre­ations on ascend­ing plain and descend­ing altered scales…

Equal-tempered tun­ing, 20th century
Classical mean­tone tem­pera­ment, 16th-17th century
Meantone tem­pera­ment, pure minor thirds, 16th-17th century
BACH tem­pera­ment (Kellner) 18th century

Eighteen tem­pera­ments described by Pierre-Yves Asselin (2000) have been pro­grammed in the “-cs.trTunings” Csound resource.

As Schlick’s mean­tone tem­pera­ment was not ful­ly doc­u­ment­ed, we set up “do-la♭” as a pure major third and “mi-sol#” as a major third increased by 2/3 com­ma. Consequently, “sol#” and “la♭” remain distinct.

Tartini-Vallotti mean­tone tem­pera­ment (Asselin 2000 p. 104)

No imple­men­ta­tion of mean­tone tem­pera­ments in the Bol Processor may be tak­en as ref­er­ence because (1) errors might have occurred and (2) it is impor­tant to know for which musi­cal reper­toire each tem­pera­ment has been designed. Also read in detail chap­ter VIII Musique et tem­péra­ments (Asselin 2000 p.139-180) expos­ing the his­to­ry of tem­pera­ment along with many musi­cal exam­ples dis­cussed in terms of instru­ment tuning.

Tartini-Vallotti mean­tone tem­pera­ment: the inter­val list

Circular graphs dis­play notice­able inter­vals — per­fect fifths, wolf fifths, har­mon­ic and Pythagorean major thirds — in a broad range of incer­ti­tude. For exam­ple, in the Tartini-Vallotti tem­pera­ment shown above, “C-E” is list­ed as a har­mon­ic major third (green seg­ment) although it is a lit­tle larg­er (+7 cents) than a “pure” major third (ratio 5/4). The safe pro­ce­dure for check­ing the com­pli­ance of this tun­ing with its descrip­tion is to read devi­a­tions in the inter­val list (see picture).

D’Alembert-Rousseau mean­tone tem­pera­ment with series of slight­ly larger/smaller fifths

In a few mean­tone tem­pera­ments, the sizes of fifths are not explic­it­ly giv­en as the instru­ment tuner is instruct­ed to tune slight­ly larg­er (than per­fect) or slight­ly small­er fifths. This is the case with D’Alembert-Rousseau tem­pera­ment (Asselin 2000 p. 119) in which the series “do, fa, sib, mi♭, sol#” is expect­ed to be slight­ly larg­er and “sol#, do#, fa#, si, mi” slight­ly small­er… In addi­tion, the frame­work should be “com­plete”, which implies the absence of a left-over frac­tion of com­ma when clos­ing the cycle of fifths.

In this exam­ple, con­di­tions were met increas­ing by 1/12 com­ma (+2 cents) the slight­ly larg­er fifths “do, fa, sib, mi♭, sol#”. To close the cycle appro­pri­ate­ly, the last series “sol#, do#, fa#, si, mi” was set to equal­ized inter­vals. This result­ed in slight­ly small­er fifths dimin­ished by 2 cents reflect­ing the slight­ly larg­er ones. Incidently, this adjust­ment of -1/12 com­ma is also the one required for con­struct­ing an equal-tempered scale.

The entire process of build­ing scales is auto­mat­i­cal­ly record­ed in the Comments area of the scale page, for instance “meantone_d_alembert_rousseau”:

D’Alembert-Rousseau mean­tone tem­pera­ment (Asselin 2000 p. 119)
Created 2021-01-16 19:04:44
Created mean­tone upward notes “do,sol,re,la,mi” frac­tion 3/2 adjust­ed -1/4 com­ma (2021-01-16 19:12:08)
Created mean­tone down­ward notes “do,fa,sib,mib,sol#” frac­tion 3/2 adjust­ed 1/12 com­ma (2021-01-16 19:17:25)
Equalized inter­vals over series “sol#,do#,fa#,si,mi” approx frac­tion 2/3 adjust­ed 2.2 cents to ratio = 0.668 (2021-01-16 19:19:34)

It took about 8 min­utes to under­stand the pro­ce­dure and anoth­er 8 min­utes to tune this scale as per D’Alembert-Rousseau…

A com­par­i­son of mean­tone tem­pera­ments applied to Baroque music is avail­able for lis­ten­ing on page Comparing tem­pera­ments.

More than 12 grades

We will use a mod­el of ancient Indian musi­col­o­gy to demon­strate divi­sions of more than 12 grades per octave. This mod­el is an inter­pre­ta­tion of the descrip­tion of basic scales (gra­ma) and their trans­po­si­tions (mur­ccha­na) in Bharata Muni’s Natya Shastra, a trea­tise dat­ing back to a peri­od between 400 BCE and 200 CE — read The two-vina exper­i­ment.

The inner wheel of Arnold’s mod­el, anal­o­gous to the “Ma-grama” of Natya Shastra

The grama-murcchana mod­el and its appli­ca­tion to Western har­mo­ny are described on page Just into­na­tion: a gen­er­al frame­work. Its appli­ca­tion to Hindustani music is pre­sent­ed on page Raga into­na­tion.

E.J. Arnold (1982) had designed a device for demon­strat­ing the trans­po­si­tion of scales in Bharata’s mod­el. The actu­al divi­sion of the octave is 23 steps, yet this amounts to hav­ing 22 option­al posi­tions (shru­ti-s) giv­en that the base note has only one option.

The result may be described as 11 pairs of note posi­tions yield­ing 211 = 2048 pos­si­ble chro­mat­ic scales. Among these, only 12 are “opti­mal­ly con­so­nant”, i.e. with only one “incor­rect” major fifth (short by 1 syn­ton­ic com­ma = 22 cents). These 12 scales are the ones that may be used in har­mon­ic or modal music to expe­ri­ence the best consonance.

Below is an image of the “gra­ma” scale as dis­played by the edi­tor of BP3:

A frame­work for just-intonation chro­mat­ic scales based on the grama-murcchana mod­el in ancient Indian musicology

In this scale we use the Indian sargam con­ven­tion­al nota­tion: sa, re, ga, ma , pa, dha, ni, trans­lat­ed as “C”, “D”, “E”, “F”, “G”, “A”, “B”. Note “re” (“D”), for instance, may be found at four posi­tions: r1 and r2 are the two options for “D♭”, the first one (256/243) being called “Pythagorean” (derived from five descend­ing fifths) and the sec­ond one (16/15) “har­mon­ic” (derived from a descend­ing fifth and a descend­ing major third). Positions r2 and r3 are “D♮” (nat­ur­al) with r3 har­mon­ic (10/9) and r4 Pythagorean (9/8).

Tanpura: the drone of Indian musi­cians
(man­u­fac­tured in Miraj)

There are par­tic­u­lar cas­es (vis­i­ble on the wheel mod­el) as m3 is almost super­posed with p1 and m4 with p2, their dif­fer­ence being an inaudi­ble schis­ma (32805 / 32768 = 1.00112 = 1.9 cents). We use m3p1 and m4p2 to des­ig­nate these merged positions.

Intervals dis­played in cents are the ones iden­ti­fied by Western musi­col­o­gists: the Pythagorean lim­ma (256/243 = 90 cents), the syn­ton­ic com­ma (81/80 = 22 cents) and the minor semi­tone (25/24 = 70 cents). This reveals that a shru­ti as described by Bharata may be of 3 dif­fer­ent sizes. However, in its appli­ca­tion to Indian music, this mod­el should be ren­dered “flex­i­ble” with a mea­sure of the syn­ton­ic com­ma (pramāņa ṣru­ti) between 0 and 56.8 cents — read The two-vina exper­i­ment.

Clicking the IMAGE link yields a cir­cu­lar graph­ic rep­re­sen­ta­tion of the “gra­ma” scale:

The “gra­ma” scale, an inter­pre­ta­tion of the ancient Indian the­o­ry of musi­cal scales

Let us play a dia­ton­ic scale fol­low­ing the grama-murcchana mod­el, an occur­rence of Western just-intonation scales and the piano stretched-octave tun­ing, again with “C4” (or “sa_4”) as the block key. The gram­mar is named “-gr.tryShruti”:

S --> _tempo(2) _scale(grama, sa_4) sa_4 r4_4 g3_4 m1_4 p4_4 d3_4 n3_4 sa_5 _scale(just into­na­tion, C4) C4 D4 E4 F4 G4 A4 B4 C5 _scale(piano, C4) do4 re4 mi4 fa4 sol4 la4 si4 do5

Diatonic scale in grama-murcchana, just-intonation and tem­pered stretched-octave tunings

Differences are hard­ly notice­able for a sim­ple rea­son: the first two ones are iden­ti­cal since this just into­na­tion scale is a par­tic­u­lar instance of grama-murcchana, where­as the piano scale is a fair approx­i­ma­tion of the for­mer ones. This is clear in the fol­low­ing Csound score:

f1 0 256 1 “vina-wave-table.aiff” 0 4 0

t 0.000 60.000
i1 0.000 0.500 261.630 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 0.500 0.500 294.334 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; r4_4
i1 1.000 0.500 327.038 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; g3_4
i1 1.500 0.500 348.753 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; m1_4
i1 2.000 0.500 392.445 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; p4_4
i1 2.500 0.500 436.137 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; d3_4
i1 3.000 0.500 490.556 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; n3_4
i1 3.500 0.500 523.260 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_5

i1 4.000 0.500 261.630 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; Cj4
i1 4.500 0.500 294.334 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; Dj4
i1 5.000 0.500 327.038 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; Ej4
i1 5.500 0.500 348.753 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; Fj4
i1 6.000 0.500 392.445 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; Gj4
i1 6.500 0.500 436.137 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; Aj4
i1 7.000 0.500 490.556 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; Bj4
i1 7.500 0.500 523.260 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; Cj5

i1 8.000 0.500 261.630 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; do4
i1 8.500 0.500 293.811 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; re4
i1 9.000 0.500 329.916 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; mi4
i1 9.500 0.500 349.538 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; fa4
i1 10.000 0.500 392.445 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sol4
i1 10.500 0.500 440.585 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; la4
i1 11.000 0.500 494.742 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; si4
i1 11.500 0.500 524.464 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; do5
s

Let us now lis­ten to the 22 shru­tis against a drone (“C” and “G” trans­lat­ed as sa and p4):

S --> scale(grama,sa_4) {9 Full_scale _ _ _ , Drone} - - tempo(3/4) {_retro Full_scale} _ _ _
Full_scale --> sa_4 r1_4 r2_4 r3_4 r4_4 g1_4 g2_4 g3_4 g4_4 m1_4 m2_4 m3p1_4 m4p2_4 p3_4 p4_4 d1_4 d2_4 d3_4 d4_4 n1_4 n2_4 n3_4 n4_4 sa_5
Drone --> _volume(30) Droneseq Droneseq Droneseq Droneseq Droneseq Droneseq Droneseq Droneseq
Droneseq --> {_legato(300) p4_3 sa_4 sa_4 sa_3}

Time struc­ture of the drone sequence (played 2 times)

Note the usage of the _retro per­for­mance tool to reverse the order of the Full_scale sequence. The _legato(300) instruc­tion extends the dura­tion of notes up to 3 times their cur­rent dura­tion. This pro­duces a Droneseq sound struc­ture akin to that of the Indian tan­pu­ra.

In the sound ren­der­ing of this exam­ple, a 279 Hz sam­ple wave­form of a Miraj tan­pu­ra has been used to feed the Karplus-Strong algo­rithm.

The 22 shrutis of Bharata’s grama-murcchana mod­el inter­pret­ed as “just intonation”

f1 0 0 1 “tanpura_waveform.aiff” 0 4 0

t 0.000 60.000
i1 1.125 1.125 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 0.000 4.500 196.223 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; p4_3
i1 2.250 3.375 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 5.625 1.125 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 3.375 4.500 130.815 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_3
i1 4.500 4.500 196.223 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; p4_3
i1 9.000 1.000 261.630 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 6.750 3.375 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 10.000 1.000 275.496 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; r1_4
i1 10.125 1.125 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 11.000 1.000 279.159 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; r2_4
i1 7.875 4.500 130.815 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_3
i1 12.000 1.000 290.671 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; r3_4
i1 9.000 4.500 196.223 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; p4_3
i1 13.000 1.000 294.334 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; r4_4
i1 11.250 3.375 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 14.000 1.000 310.032 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; g1_4
i1 14.625 1.125 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 15.000 1.000 313.956 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; g2_4
i1 12.375 4.500 130.815 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_3
i1 16.000 1.000 327.038 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; g3_4
i1 17.000 1.000 331.224 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; g4_4
i1 13.500 4.500 196.223 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; p4_3
i1 18.000 1.000 348.753 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; m1_4
i1 15.750 3.375 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 19.000 1.000 353.201 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; m2_4
i1 19.125 1.125 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 20.000 1.000 367.852 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; m3p1_4
i1 16.875 4.500 130.815 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_3
i1 21.000 1.000 372.038 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; m4p2_4
i1 18.000 4.500 196.223 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; p4_3
i1 22.000 1.000 387.474 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; p3_4
i1 20.250 3.375 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 23.000 1.000 392.445 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; p4_4
i1 23.625 1.125 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 24.000 1.000 413.375 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; d1_4
i1 21.375 4.500 130.815 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_3
i1 25.000 1.000 418.608 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; d2_4
i1 26.000 1.000 436.137 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; d3_4
i1 22.500 4.500 196.223 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; p4_3
i1 27.000 1.000 441.632 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; d4_4
i1 24.750 3.375 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 28.000 1.000 465.178 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; n1_4
i1 28.125 1.125 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 29.000 1.000 470.934 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; n2_4
i1 25.875 4.500 130.815 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_3
i1 30.000 1.000 490.556 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; n3_4
i1 27.000 4.500 196.223 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; p4_3
i1 31.000 1.000 496.574 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; n4_4
i1 29.250 3.375 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 32.625 1.125 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 30.375 4.500 130.815 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_3
i1 32.000 4.000 523.260 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_5
i1 31.500 4.500 196.223 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; p4_3
i1 33.750 4.500 261.630 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
i1 38.000 1.333 523.260 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_5
i1 34.875 4.500 130.815 30.000 30.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_3
i1 39.333 1.333 496.574 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; n4_4
i1 40.666 1.334 490.556 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; n3_4
i1 42.000 1.333 470.934 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; n2_4
i1 43.333 1.333 465.178 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; n1_4
i1 44.666 1.334 441.632 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; d4_4
i1 46.000 1.333 436.137 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; d3_4
i1 47.333 1.333 418.608 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; d2_4
i1 48.666 1.334 413.375 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; d1_4
i1 50.000 1.333 392.445 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; p4_4
i1 51.333 1.333 387.474 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; p3_4
i1 52.666 1.334 372.038 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; m4p2_4
i1 54.000 1.333 367.852 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; m3p1_4
i1 55.333 1.333 353.201 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; m2_4
i1 56.666 1.334 348.753 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; m1_4
i1 58.000 1.333 331.224 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; g4_4
i1 59.333 1.333 327.038 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; g3_4
i1 60.666 1.334 313.956 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; g2_4
i1 62.000 1.333 310.032 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; g1_4
i1 63.333 1.333 294.334 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; r4_4
i1 64.666 1.334 290.671 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; r3_4
i1 66.000 1.333 279.159 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; r2_4
i1 67.333 1.333 275.496 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; r1_4
i1 68.666 5.334 261.630 90.000 90.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 ; sa_4
s

Listening to this sequence makes it clear that treat­ing a sequence of shrutis as a “scale” is icon­o­clas­tic to the aes­thet­ics of Hindustani music: most of these notes sound out of tune when played in ref­er­ence to a drone (the tan­pu­ra). As dis­cussed on page The two-vina exper­i­ment, the pres­ence of a drone makes it unlike­ly that mutu­al con­so­nance in melod­ic inter­vals always pre­vails over con­so­nance with the drone’s upper par­tials. If the grama-murcchana sys­tem is of any rel­e­vance to the per­for­mance of clas­si­cal ragas — read Raga into­na­tion — at least the mod­el should be ren­dered flex­i­ble to meet the prop­er into­na­tion in melod­ic movements.

The syntactic model

Settings in “-se.tryOneScale”

The fol­low­ing are guide­lines for a cor­rect and use­ful imple­men­ta­tion of micro­ton­al scales in BP3. We fol­low sim­ple sequences list­ed in “-gr.tryOneScale”. This gram­mar is linked with “-cs.tryOneScale” host­ing a unique scale just into­na­tion with its notes labelled “Cj”, “Cj#”, “Dj” etc. In “-se.tryOneScale”, the Note con­ven­tion has been set to 0 (English), the ‘C4’ key num­ber to 60 and the Default block key to 60. All these para­me­ters are impor­tant to repro­duce the same effects.

Rule #1: If only 1 micro­ton­al scale is loaded with the gram­mar, it is used by default in all productions.

Example: Let us play:

S --> C4 A4 G4

It pro­duces the fol­low­ing Csound score:

i1 0.000 1.000 261.630 90.000 90.000 0.000 0.000 0.000 0.000 ; Cj4
i1 1.000 1.000 436.137 90.000 90.000 0.000 0.000 0.000 0.000 ; Aj4
i1 2.000 1.000 392.445 90.000 90.000 0.000 0.000 0.000 0.000 ; Gj4

The dis­play of “Cj4” etc. makes it clear that just into­na­tion has been used. This is fur­ther con­firmed by ratio 436.137/261.630 = 1.666 = 5/3.

Why not use note labels “Cj4”, “Aj“ ‘ and “Gj4” in the gram­mar? This will only work if the scale is spec­i­fied, for instance:

S --> _scale(just into­na­tion, Cj4) Cj4 Aj4 Gj4

This will yield the same Csound score because the block key is “Cj4” rat­ed to 261.630 Hz in the scale def­i­n­i­tion. Using “Aj4” as the block key would yield:

S --> _scale(just into­na­tion, Aj4) Cj4 Aj4 Gj4

and a sight­ly dif­fer­ent Csound score:

i1 0.000 1.000 263.952 90.000 90.000 0.000 0.000 0.000 0.000 ; Cj4
i1 1.000 1.000 440.007 90.000 90.000 0.000 0.000 0.000 0.000 ; Aj4
i1 2.000 1.000 395.928 90.000 90.000 0.000 0.000 0.000 0.000 ; Gj4

Here, “Aj4” has been set to 440 Hz which is the dia­pa­son fre­quen­cy in “-se.tryOneScale”. Ratios are unchanged, for instance 440.007/263.952 = 5/3.

How can we play equal-tempered inter­vals using this gram­mar? This is achieved by spec­i­fy­ing the default scale: _scale(0,0):

S --> _scale(0,0) C4 A4 G4

yield­ing the fol­low­ing Csound score:

i1 0.000 1.000 8.00 90.000 90.000 0.000 0.000 0.000 0.000 ; C4
i1 1.000 1.000 8.09 90.000 90.000 0.000 0.000 0.000 0.000 ; A4
i1 2.000 1.000 8.07 90.000 90.000 0.000 0.000 0.000 0.000 ; G4

Frequencies are not explic­it because the default Csound score for­mat uses the octave point pitch-class rep­re­sen­ta­tion, for instance “A4” is the 9th pitch-class or the 8th octave (on a stan­dard MIDI instru­ment). To make them explic­it, just set the dia­pa­son to a tiny dif­fer­ent val­ue in “-se.tryOneScale”, for instance 440.0001 Hz. This will produce:

i1 0.000 1.000 261.626 90.000 90.000 0.000 0.000 0.000 0.000 ; C4
i1 1.000 1.000 440.000 90.000 90.000 0.000 0.000 0.000 0.000 ; A4
i1 2.000 1.000 391.996 90.000 90.000 0.000 0.000 0.000 0.000 ; G4

We could expect 261.630 Hz for the fre­quen­cy of “C4” but the 261.626 Hz val­ue dif­fers due to round­ing. The ratio of the dif­fer­ence is 261.630/261.626 = 1.000015 = 0.026 cents!

Rule #2: When pars­ing a sequence of notes, if a micro­ton­al scale has been spec­i­fied the pars­er first attempts to match the note against labels in the cur­rent micro­ton­al scale. In case no match­ing exists, it will try to inter­pret it as per the Note con­ven­tion spec­i­fied in settings.

For instance:

S --> _scale(just into­na­tion, Cj4) Cj4 Aj4 Gj4 D4 F4 E4

Notes in sequence “D4 F4 E4” will be trans­lat­ed to match­ing posi­tions in the just into­na­tion scale. The result is vis­i­ble on the Csound score as well as on the graph­ic display.

This prac­tice is only rel­e­vant to 12-grade tonal scales in which posi­tions are equiv­a­lent — although with slight­ly dif­fer­ing fre­quen­cy ratios. Since the match­ing is based on key num­bers, for instance feed­ing the “gra­ma” (23-grade) micro­ton­al scale (see above) with “C4 D4 E4” would pro­duce “sa_4 r2_4 r4_4″ in which r2_4 is close to “C#4” and r4_4 almost “D4”. This makes sense because the key sequence is 60-62-64. There is cur­rent­ly no gener­ic way of map­ping note posi­tions in scales with dif­fer­ent divi­sions. An addi­tion­al dif­fi­cul­ty would be scales in which the inter­val is dif­fer­ent from 2/1.

We will show lat­er that rule #2 pro­vides a flex­i­bil­i­ty that makes it very easy to insert enhar­mon­ic cor­rec­tions in a musi­cal score by select­ing one among 12 just-intonation chro­mat­ic scales — read Just into­na­tion: a gen­er­al frame­work.

Rule #3: If the pars­er fails to iden­ti­fy a note in the cur­rent micro­ton­al scale and against the note con­ven­tion, it will try oth­er micro­ton­al scales pre­vi­ous­ly loaded in the sequence.

Top of the “-gr.tryScales” grammar

This can be demon­strat­ed in “-gr.tryScales”. On top of the gram­mar are list­ed the scales that will be sent to the con­sole along with the gram­mar and instruc­tions. Each scale becomes “active” in the gram­mar once a _scale() oper­a­tor has declared it.

Let us try to produce:

S --> _scale(piano,dop4) fap3 _scale(just intonation,69) C4 rep4

Active scales are piano, then just into­na­tion. There are no prob­lems with note “fap3” belong­ing to the piano scale, nor with “C4” which is known in the English note con­ven­tion. As pre­dict­ed by rule #2, note “C4” will be trans­lat­ed to its equiv­a­lent “Cj4” and per­formed in just intonation.

Since the baseoc­tave of scale piano is 3 (see image above), the pitch of “fap3” will be close to that of “F4”.

What will hap­pen to note “rep4”? If scale piano had not been acti­vat­ed, this note would be reject­ed as a syn­tax error. However, fol­low­ing rule #3, the pars­er finds it in the piano scale. This yields key num­ber 74 since baseoc­tave = 3.

The note will be inter­pret­ed as key #74 in the just into­na­tion scale, dis­played as “Dj5”. This is vis­i­ble in the Csound score below and on the graphic.

i1 0.000 1.000 349.538 90.000 90.000 0.000 0.000 0.000 0.000 ; fap3
i1 1.000 1.000 263.952 90.000 90.000 0.000 0.000 0.000 0.000 ; Cj4
i1 2.000 1.000 593.891 90.000 90.000 0.000 0.000 0.000 0.000 ; Dj5

Consequently, notes found in a sequence are always inter­pret­ed as belong­ing to the scale declared at the imme­di­ate left, even if their label belongs to anoth­er scale or to the note convention.

Therefore, it is not a good idea to mix notes belong­ing to dif­fer­ent scales with­out declar­ing the scale pri­or to their occur­rence. A “_scale()” dec­la­ra­tion will best be placed in the begin­ning of each sequence, notably at the begin­ning of the right argu­ment of a rule.

References

Arnold, E.J. A Mathematical mod­el of the Shruti-Swara-Grama-Murcchana-Jati System. Journal of the Sangit Natak Akademi, New Delhi 1982.

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

Continuous parameters in Csound scores

The fol­low­ing are sim­ple exam­ples explain­ing the design of Csound scores con­tain­ing instruc­tions to con­trol para­me­ters that may vary con­tin­u­ous­ly. We will use sim­ple notes (no sound-object) and no Csound instru­ments file so that all scores may be eas­i­ly con­vert­ed to sound files using the “default.orc” orches­tra file sup­plied with BP3.

Consider the fol­low­ing gram­mar with a metronome set­ting of 60 beats/mn:

S --> _pitchcont _pitchrange(200) C5 _pitchbend(0) D5 _ _pitchbend(120) _ _pitchbend(-150) _ _ _pitchbend(0) E5

The graph­ic dis­play does not show pitch­bend controls:

Pianoroll and object dis­play of “C5 D5 E5”

Instruction _pitchcont in the begin­ning instructs the inter­preter to inter­po­late pitch­bend val­ues in the whole sequence. This process may be inter­rupt­ed by _pitchstep.

Instruction _pitchrange(200) indi­cates that the pitch may vary between -200 and +200 units, respec­tive­ly mapped to MIDI stan­dard val­ues 0 and +16383 (both log­a­rith­mic). This is the range required by “default.orc” in which inter­vals are mea­sured in cents. There are 1200 cents in one octave. Thus, _pitchbend(100) would raise the fol­low­ing note by a semitone.

Note ‘C5’ is not assigned a pitch­bend val­ue. Default “0” val­ue will be assigned. Notes ‘D5’ and ‘E5’ are pre­ced­ed with _pitchbend(0) assign­ing a “0” val­ue. All pitch­bend vari­a­tions are assigned dur­ing the pro­lon­ga­tion of ‘D5’. How will it be tak­en care of?

The MIDI out­put is decep­tive. Such pitch­bend assign­ments are not tak­en into account in this format:

“C5 D5 E5” in the MIDI output

However, the Csound out­put has tak­en into account all parameters:

“C5 D5 E5” (with pitch­bend assign­ments) in the Csound output

How does Csound process this phrase? Let us look at the Csound score:

t 0.000 60.000
i1 0.000 1.000 9.00 90.000 90.000 0.000 0.000 0.000 0.000 ; C5
f101 1.000 256 -7 0.000 102 120.000 51 -150.000 103 0.000
i1 1.000 5.000 9.02 90.000 90.000 0.000 0.000 0.000 101.000 ; D5
i1 6.000 1.000 9.04 90.000 90.000 0.000 0.000 0.000 0.000 ; E5
s
e

A table (Function Table Statement, read doc­u­men­ta­tion) labeled f101 has been cre­at­ed by Bol Processor and insert­ed above ‘D5’ to spec­i­fy vari­a­tions of the pitch­bend para­me­ter. This table is called by the 10th argu­ment of line ‘D5’. Arguments 8 and 9 con­tain the start and end val­ues of pitch­bend accord­ing to “default.orc”. These are 0 for all three notes.

The sec­ond argu­ment of the table is the dura­tion of its valid­i­ty, here 1.000 sec­onds. The third argu­ment (256) is its size — always a pow­er of 2. The fourth argu­ment “-7” des­ig­nates the GEN rou­tine that Csound will use for its inter­po­la­tion (read doc­u­men­ta­tion). By default, GEN07 (lin­ear inter­po­la­tion) is used.

Numbers high­light­ed in red indi­cate the val­ues of pitch­bend dur­ing the vari­a­tion: 0, 120, -150, 0. Values in black indi­cate the time inter­vals between two val­ues. Note that 102 + 51 + 103 = 256.

All con­tin­u­ous para­me­ters are han­dled in this same way by Bol Processor when pro­duc­ing Csound scores. This includes stan­dard MIDI con­trols (vol­ume, pres­sure, mod­u­la­tion, panoram­ic, pitch­bend) and any addi­tion­al para­me­ter defined in the Csound instru­ments file. See for exam­ple Sarasvati Vina.

Note

There is a workaround for play­ing the same piece with cor­rect pitch­bend changes in MIDI. Change the rule to:

S --> _pitchcont _pitchrange(200) {C5 D5 _ _ _ _ E5, - _pitchbend(0) - _ _pitchbend(120) - _pitchbend(-150) - _ _pitchbend(0) -}

This is the same piece in a poly­met­ric struc­ture adding a line of silences ‘-‘ put at the right places to receive pitch­bend mod­i­fi­ca­tions. Since pitch­bend mod­i­fies all sounds on the cur­rent MIDI chan­nel it will also mod­i­fy ‘D5’ dur­ing its pro­lon­ga­tion. The fol­low­ing is a MIDI ren­der­ing on PianoTeq — at a high­er speed so that ‘D5’ remains audible:

C5 D5 E5 in the MIDI for­mat with pitch­bend effects on D5

Csound tuning in BP3

This page deals with Bol Processor BP3 mak­ing use of an updat­ed ver­sion of Csound orches­tra file “default.orc”. Now, mod­i­fi­ca­tions of the dia­pa­son (‘A4’ fre­quen­cy) in the Settings have an influ­ence on the pro­duc­tion of Csound scores.

In the revised Csound orches­tra file, a few lines have been added to mod­i­fy the val­ue of icps (fre­quen­cy of the oscil­la­tor) accord­ing to that of argu­ment p4:

if (p4 < 15.0) then
icps = cpspch(p4)
else icps = p4
endif

By default, this instru­ment receives the pitch val­ue (argu­ment p4) in the octave point pitch-class for­mat — read doc­u­men­ta­tion. In this case, the fre­quen­cy depends exclu­sive­ly on the dia­pa­son set up in the Csound orches­tra, or 440 Hz by default, mean­ing cpspch(8.09) = 440.

In order to “tune” the Csound instru­ment to the dia­pa­son cho­sen for the project in Bol Processor BP3, if the base fre­quen­cy is not exact­ly 440 Hz then p4 will con­tain the actu­al fre­quen­cy of the note (cps for­mat) instead of its octave point pitch-class val­ue. Orchestra file “default.orc” is able to decide which for­mat has been used because (1) no note is ever sent beyond the 14th octave and (2) fre­quen­cies are nev­er low­er than 15 Hz. Thus, the val­ue of p4 auto­mat­i­cal­ly makes the deci­sion in “default.orc”.

Let us try for example:

S --> A4 B4 C5

When the dia­pa­son is 440 Hz we get the stan­dard Csound score output:

i1 0.000 1.000 8.09 90.000 90.000 0.000 0.000 0.000 0.000 ; A4
i1 1.000 1.000 8.11 90.000 90.000 0.000 0.000 0.000 0.000 ; B4
i1 2.000 1.000 9.00 90.000 90.000 0.000 0.000 0.000 0.000 ; C5

On the first line, ‘A4’ is set to 8.09 in the octave point pitch-class format.

Once we set the dia­pa­son to 435 Hz the Csound score will become:

i1 0.000 1.000 435.00 90.000 90.000 0.000 0.000 0.000 0.000 ; A4
i1 1.000 1.000 488.27 90.000 90.000 0.000 0.000 0.000 0.000 ; B4
i1 2.000 1.000 517.31 90.000 90.000 0.000 0.000 0.000 0.000 ; C5

This score dis­plays actu­al fre­quen­cies of notes, for instance ‘A4’ = 435 Hz. This tonal sequence will sound slight­ly low­er than the pre­ced­ing one.

If the dia­pa­son is rad­i­cal­ly dif­fer­ent from 440 Hz, the names of notes will not dif­fer. Only fre­quen­cies will be mod­i­fied accord­ing­ly. See for instance the Csound score pro­duced with ‘A4’ = 300 Hz:

i1 0.000 1.000 300.00 90.000 90.000 0.000 0.000 0.000 0.000 ; A4
i1 1.000 1.000 336.74 90.000 90.000 0.000 0.000 0.000 0.000 ; B4
i1 2.000 1.000 356.76 90.000 90.000 0.000 0.000 0.000 0.000 ; C5

Let us now exam­ine changes of dia­pa­son when deal­ing with Csound objects. Take for instance object “a” in “-gr.tryCsoundObjects”. The Csound score of its pro­to­type (as shown in “-mi.tryCsoundObjects”) is a mix of 3 instruments:

t 0 120
i1 0 0.5 4.05 ; F0
i2 1.5 0.5 5.05 ; F1
i3 1.5 0.2 643.5 1 ; D#5
e

Instruments i1 and i2 use the octave point pitch-class for­mat where­as instru­ment i3 uses the direct cps for­mat. This score has been cre­at­ed with ‘A4’ = 440 Hz which explains why 643.5 Hz is labelled D#5. The label­ing of notes is of minor impor­tance as it will be revised when cre­at­ing the per­for­mance Csound score.

When ‘A4’ = 440 Hz the Csound score of a per­for­mance of “a” reflects pre­cise­ly the score in its prototype:

t 0.000 60.000
i1 0.000 0.250 4.05 90.000 90.000 0.000 0.000 0.000 0.000 ; F0
i2 0.750 0.250 5.05 0.000 0.000 90.000 90.000 0.000 0.000 0.000 ; F1
i3 0.750 0.100 643.50 1.000 ; D#5
s
e

If the dia­pa­son is set to 500 Hz the Csound score of the per­for­mance will be:

t 0.000 60.000
i1 0.000 0.250 24.80 90.000 90.000 0.000 0.000 0.000 0.000 ; F0
i2 0.750 0.250 49.61 0.000 0.000 90.000 90.000 0.000 0.000 0.000 ; F1
i3 0.750 0.100 643.50 1.000 ; C#5
s
e

Pianorolls with A4 = 440 Hz (left) and 500 Hz (right)

All pitch­es are now spec­i­fied in the cps for­mat. The pitch­es of notes F0 and F1 would be mod­i­fied in the sound out­put. However, the pitch of instru­ment i3 would stay at 643.50 Hz as this had been set up in the sound-object’s pro­to­type. Consequently, giv­en the change of ref­er­ence, the name of the note pro­duced by i3 would now be ‘C#5’. This change is reflect­ed in the pianorolls (see picture).

Important…

This auto­mat­ic selec­tion of the pitch for­mat does not work when attempt­ing to send a fre­quen­cy low­er than 15 Hz, as it would be the case for ‘F0’ in the pre­ced­ing exam­ple if the dia­pa­son was set to 300 Hz. However this should nor­mal­ly nev­er hap­pen because 15 Hz is below the range of audi­ble sounds.

At the oppo­site end, octaves beyond 14 are way beyond the musi­cal range since ‘C15’ is already more than 535 KHz…

This might have an inci­dence on Csound scores being used for pro­duc­ing any­thing else than music, although in this case the use of octave point pitch-class for­mat is very unlikely.

Changing middle C key number

“Middle C”, or ‘C4’ in the English con­ven­tion, des­ig­nates the key at the mid­dle of a piano key­board. By con­ven­tion, its MIDI key num­ber is 60, but this val­ue can be mod­i­fied in the settings.

For instance, set­ting ‘C4’ to key #48 results in all notes one octave (12 semi­tones) low­er on a MIDI device. However, this does not mod­i­fy the Csound sound out­put. Playing “A4 B4 C5″ with ‘C4’ dif­fer­ent from 60 pro­duces the same sound out­put and the same Csound score, yet in the cps pitch format:

t 0.000 120.000
i1 0.000 1.000 440.00 90.000 90.000 0.000 0.000 0.000 0.000 ; A4
i1 1.000 1.000 493.88 90.000 90.000 0.000 0.000 0.000 0.000 ; B4
i1 2.000 1.000 523.25 90.000 90.000 0.000 0.000 0.000 0.000 ; C5
s
e

When applied to Csound objects, chang­ing ‘C4’ to a key num­ber dif­fer­ent from 60 also does not change note names nor their actu­al fre­quen­cies, but the cps pitch for­mat is used. For instance, the per­for­mance of “a” yields the fol­low­ing Csound score:

t 0.000 60.000
i1 0.000 0.250 21.83 90.000 90.000 0.000 0.000 0.000 0.000 ; F0
i2 0.750 0.250 43.65 0.000 0.000 90.000 90.000 0.000 0.000 0.000 ; F1
i3 0.750 0.100 643.50 1.000 ; D#5
s
e

Misc. grammar controls

The fol­low­ing short exam­ples illus­trate the usage of spe­cif­ic con­trols of the infer­ence mech­a­nism in gram­mars of Bol Processor (BP2 and BP3).

_destru

This instruc­tion is use­ful in pat­tern gram­mars con­tain­ing rep­e­ti­tion and pseudo-repetition mark­ers. For instance, the fol­low­ing gram­mar cre­ates a sequence of two occur­rences of vari­able “X” which may fur­ther be derived as “abc” or “de”.

S --> (= X)(: X)
X --> abc
X --> de

In the first rule, (= ) is called a mas­ter paren­the­sis and (: ) a slave paren­the­sis — con­tain­ing a copy of the for­mer. This master-slave depen­den­cy is main­tained through­out sub­se­quent derivations.

The only eli­gi­ble final deriva­tions would be “abcabc” or “dede”. However, the final string would be dis­played for instance “(= abc)(: abc)”. To obtain a usable string in which ‘a’, ‘b’, ‘c’ may be fur­ther instan­ti­at­ed as sound-objects, it is nec­es­sary to remove struc­tur­al mark­ers. The Bol Processor does it auto­mat­i­cal­ly once the final string has been cre­at­ed, i.e. there are no more can­di­date rules for fur­ther deriva­tions. However, the user may want to dis­play strings with­out their mark­ers. Instruction _destru is used to this effect.

Let us con­sid­er for instance “-gr.tryDESTRU”:

-se.tryDESTRU
-ho.abc
// This gram­mar pro­duces var­i­ous pat­terns on alpha­bet …

RND
gram#1[1] <2-1> S --> (= (= X) S (:X)) (: (= X) S (:X))
gram#1[2] <2-1> X --> Y
gram#1[3] <2-1> X --> Y S Z
gram#1[4] <2-1> X --> Z

ORD
gram#2[1] LEFT S --> lamb­da [This is an eras­ing rule]

LIN
_destru
gram#3[1] X X --> abca
gram#3[2] Z Y --> abc
gram#3[3] Y Z --> cba
gram#3[4] Y Y --> cbbc
gram#3[5] Z Z --> lamb­da [This is an eras­ing rule]

The first rule in sub­gram­mar #1 cre­ates a self-embedding pat­tern in which the start sym­bol S is cre­at­ed again recur­sive­ly. This recur­siv­i­ty might pro­duce unlim­it­ed strings. To avoid this, each rule in sub­gram­mar #1 is assigned ini­tial weight “2” decreased by “1” once the rule has been fired. Therefore, no rule may be used more than 2 times. Subgrammar #2 con­tains a sin­gle rule delet­ing the left-over “S”.

Subgrammar #3 destroys the struc­ture by eras­ing all paren­the­ses and master/slave mark­ers, then it rewrites vari­ables “X”, “Y”, “Z” as strings of ter­mi­nal sym­bols. Tracing the pro­duc­tion shows for instance that workstring

(=(= Z)(=(= Y)(: Y))(:(= Y)(: Y))(: Z))(:(= Z)(=(= Y)(: Y))(:(= Y)(: Y))(: Z))

is replaced with “Z Y Y Y Y Z Z Y Y Y Y ZZ Y Y Y Y Z Z Y Y Y Y Z”.

Rewriting is then done strict­ly from left to right due to the LIN instruction.

The fol­low­ing is a series of 10 items pro­duced by this grammar:

abc­cb­bc­cbaabc­cb­bc­c­ba
cbacbacbacbacbacbacbacbacbacbacbac­ba
abc­cb­bc­cbaabc­cb­bc­c­ba
cbaabc­cbaabc
cbacbacbacbacbacbacbacbacbacbacbac­ba
abcab­cab­cab­cab­cab­cab­cabc
abcab­cab­cab­cab­cab­cab­cabc
cbb­cab­cab­cabc­cb­b­cab­cab­cabc­cb­b­cab­cab­cabc­cb­b­cab­cab­cabc
cbacbacbac­ba
cbbc­cb­bc­cbacb­bc­cb­bc­cbacb­bc­cb­bc­cbacb­bc­cb­bc­c­ba

Complex pat­terns are vis­i­ble on the fol­low­ing sound ren­der­ing of the first item using “-mi.abc” sound-object prototypes.

Item “abc­cb­bc­cbaabc­cb­bc­c­ba” cre­at­ed by -gr.tryDESTRU