Images of tempered scales created by the Bol Processor
The following are Bol Processor + Csound interpretations of J.-S. Bach's Prelude 1 in C major (1722) and François Couperin's Les Ombres Errantes (1730) — both near the end of the Baroque period — using temperament scales (Asselin 2000). The names and tuning procedures follow Asselin's instructions (p. 67-126). Images of the scales have been created using the Bol Processor.
The construction of these scales with the Bol Processor is explained in detail on the Microtonality page. The complete set of scale images is available on this page.
We hope to be able to release better sound demos upon receipt of a set of well-designed C-sound instruments. ("orc" files). My apologies to harpsichord players, tuners and designers!
Let us begin by listening to the piece in equal temperament, the popular tuning of instruments in the electronic age. Unlearned musicians believe that "well-tempered" is the equivalent of "equal-tempered."
Don't hesitate to click on the "Image" links to see circular graphical representations of scale intervals highlighting consonance and dissonance.
The following are traditional temperaments, each of which was designed at a particular time to meet the specific requirements of the musical repertoire en vogue (Asselin 2000 p. 139-180).
H.A. Kellner's BACH in 1975 (p. 101) ImageBarca in 1786 (p. 106) ImageBethisy in 1764 (p. 121) ImageChaumont in 1696 (p. 109) ImageCorrette in 1753 (p. 111) ImageD'Alambert-Rousseau 1752-1767 (p. 119) ImageKirnberger II in 1771 (p. 90) ImageKirnberger III in 1779 (p. 93) ImageMarpurg in 1756 (p. 117) ImagePure minor thirds in 16th century (p. 82) ImageRameau en do in 1726 (p. 113) ImageRameau en sib in 1726 (p. 115) ImageSauveur in 1701 (p. 80) ImageTartini-Vallotti in mid. 18th century (p. 104) ImageWerckmeister III in 1691 (p. 194) ImageWerckmeister IV in 1691 (p. 96) ImageWerckmeister V in 1691 (p. 199) ImageZarlino in 1558 (p. 85) Image
The previous example was Zarlino's temperament, not to be confused with the popular "natural scale" of Zarlino, an example of just intonation:
J.S. Bach's disciple Johann Kirnberg (1721-1783) - (source)
J.S. Bach's Well-Tempered Clavier (BWV 846–893) is a collection of two sets of preludes and fugues in all 24 major and minor keys, dated 1722. To judge the validity of a tuning scheme it would be necessary to listen to all the pieces. Readers impatient to know more may be interested in a "computational" approach to the subject, read Bach well-tempered tonal analysis and listen to the results on the page The Well-tempered Clavier.
Fortunately, there are historical clues as to the optimal choice: Friedrich Wilhelm Marpurg received information from Bach's sons and pupils and Johann Kirnberger, one of these pupils, designed tunings that he claimed represented his master's idea of "well-tempered".
On the page Tonal analysis of musical items we show that the analysis of tonal intervals tends to suggest the choice of Kirnberger III rather than Kirnberger II. However, the temperament devised by the French physician Joseph Sauveur in 1701 also seemed to fit better in terms of melodic intervals — and indeed it sounds beautiful… This, in turn, can be challenged by the systematic matching of all the works in books I and II with the tuning schemes implemented on the Bol Processor — see page Bach well-tempered tonal analysis.
François Couperin's Les Ombres Errantes (1730)
Again, my apologies to harpsichord players, tuners and manufacturers!
This piece is from François Couperin's Quatrième livre published in 1730 read the full score (Creative Commons licence CC0 1.0 Universal). We used it to illustrate the interpretation of mordents when importing MusicXML files.
First, listen to an (excellent) interpretation of this work by the harpsichord player Iddo Bar-Shaï (source: https://youtu.be/DCwkMSTFV_E).
Despite its artistic quality, this performance has some dissonant effects, which are partly masked by the abundance of melodic ornamentation: mordents, trills, etc. Such a departure from the theme of the 'Ombres errantes' cannot be attributed to either the composer or the performer. It is therefore legitimate to question the tuning of the instrument. To do this, we must focus our attention on tonality, even if the sound synthesis seems artificial to listeners whose attention is focused on temporality, ornamentation and sound quality.
As some of the following temperaments were invented (or documented?) after 1730, it is unlikely that the composer used them. Let's try them all anyway, and find the winner!
Equal temperament ImageH.A. Kellner's BACH (p. 101) ImageBarca in 1786 (p. 106) ImageBethisy in 1764 (p. 121) ImageChaumont in 1696 (p. 109) ImageCorrette in 1753 (p. 111) ImageD'Alambert-Rousseau 1752-1767 (p. 119) ImageKirnberger II in 1771 (p. 90) ImageKirnberger III in 1779 (p. 93) ImageMarpurg in 1756 (p. 117) ImagePure minor thirds in 16th century (p. 82) ImageRameau en do in 1726 (p. 113) ImageRameau en sib in 1726 (p. 115) ImageSauveur in 1701 (p. 80) ImageTartini-Vallotti in mid. 18th century (p. 104) ImageWerckmeister III in 1691 (p. 194) ImageWerckmeister IV in 1691 (p. 96) ImageWerckmeister V in 1691 (p. 199) ImageZarlino in 1558 (p. 85) ImageZarlino's “natural scale” Image
Matching harmonic intervals of "Le Petit Rien" with “Rameau en do” temperament (see full image)
The best temperament for this piece might be Rameau en sib, which was devised by Couperin's contemporary Jean-Philippe Rameau for musical works with flats in the key signature (Asselin, 2000 p. 149) — such as the present one. See the Tonal analysis of musical items page for a description of a systematic (automated) analysis that confirms this choice.
We might end up with listening to François Couperin's Le Petit Rien (Ordre 14e de clavecin in D major, 1722), which has two sharps in the key signature, suggesting the use of a Rameau en do temperament.
François Couperin's “Le Petit Rien” (1722), mm = 80, with a “Rameau en do” temperament Image Source: MusicXML score by Yvan43
Bernard Bel — 2022
Work in progress
Chapter VIII of Pierre-Yves Asselin's book (2000 p. 139-180) contains examples of musical works that illustrate the relevance of specific temperaments. As the scores of many baroque and classical masterpieces are available in the digital format MusicXML, we hope to use Bol Processor's Importing MusicXML scores to transcode them and play these fragments with the suggested temperaments.
Despite the limitations of comparing temperaments on only two musical examples, the aim of this page is to illustrate the notion of "perfection" in sets of tonal intervals — and in music in general. Read the discussion: Just intonation: a general framework. If nothing else, we hope to convince the reader that "equal temperament" is not the "perfect" solution!
Musicians interested in continuing this research and related development can use the beta version of the Bol Processor BP3 to process musical works and create new tuning procedures. Follow the instructions on the Bol Processor ‘BP3’ and its PHP interface page to install BP3 and learn its basic operation. Download and install Csound from its distribution page.
References
Asselin, P.-Y. Musique et tempérament. Paris, 1985, republished in 2000: Jobert. Soon available in English.
MusicXML is a very popular XML-based file format for representing western musical notation. It is designed for the exchange of scores between music notation software and other musical devices.
Inside a MusicXML file…
A MusicXML file contains all the information needed to represent a musical score in western music notation. It also contains data that can be processed by a sound device to "play" the score. The basic representation may sound mechanical, lacking control over volume, velocity, tempo, etc., which are not accurately represented on printed scores. As such, it can be used as a tool for checking the representation of a musical work, or as a teaching aid for deciphering scores.
In addition to its use as an exchange format between score editors, many MusicXML files are edited by groups of musicians — such as the MuseScore community — to embed intensity and tempo information. Sound examples are given below.
Importing scores from music archives into the Bol Processor makes it possible to use them (or fragments of them) in grammars that produce variations, for example Mozart's musical dice game. Thanks to the Csound interface, these musical works can even be played with specific tunings, as explained on the Microtonality page. The latter was an incentive to implement the MusicXML conversion, which makes it possible to compare works from the Baroque and Classical repertoires with the variety of meantone temperaments documented by historians.
The MusicXML to Bol Processor converter is fully functional on the PHP interface of BP3. Follow the instructions on the Bol Processor ‘BP3’ and its PHP interface page to install BP3 and learn its basic operation.
Bol Processor's data format
The Bol Processor has its own data format for representing musical items that are intended to produce sound via its MIDI or Csound interface. This format is displayed and stored as plain text.
The syntax of Bol Processor data is based on polymetric structures — read the tutorial on Polymetric structures. A few elementary examples will illustrate this concept:
{A4 B4 C5} is a sequence of three notes "A4", "B4", "C5" played at the metronomic tempo
{A4, C5, E5, A5} is a A minor chord
{la3, do4, mi4, la4} is the same chord in Italian/Spanish/French notation
{dha4, sa5, ga5, dha5} is the same chord in Indian notation
{C4 G4 E4, F3 C4} is a two-level structure calling for the juxtaposition and time alignment of sequences "C4 G4 E4" and "F3 C4", which yields a polyrhythmic structure that may be expanded to {C4_ G4_ E4_, F3__ C4__} in which ‘_’ are prolongations of the preceding notes.
{5, A4 Bb4 C5} is sequence "A4 Bb4 C5", 3 note played over 5 beats. Their durations are therefore multiplied by 5/3.
{7/16, F#3 G3} is sequence "F#3 G3" played over 7/16 beats. The duration of each note is multiplied by (7/16) / 2 = 7/32.
Unlike conventional western musical scores, polymetric structures can be recursively embedded with no limit to their complexity (except the machine). Some complex structures are discussed on the page Harm Visser's examples. All timings calculations are performed on integer ratios to achieve the best accuracy compatible with the system.
Why do we need to import scores?
The Bol Processor's data format is overall compact, computable and humanly comprehensible. However, its compactness makes it difficult to edit complex polymetric structures. In practice, these are created by generative grammars…
A grammar that produces pieces of tonal music may require "building blocks" extracted from existing musical works. So far (in Bol Processor BP1 and BP2) it has been possible to map the computer keyboard to arbitrary characters representing drum strokes (see the initial project), or to capture notes using common music notation — three different conventions: Italian/Spanish/French, English and Indian. Sound-objects can also contain Csound scores and/or sequences of instructions imported from MIDI files.
Things get complex when dealing with polyphonic tonal music. Work is in progress on a method of capturing MIDI events in real time. Since musical material exists on scores in Western notation, and these scores have been digitised in interchange formats such as MusicXML, an import procedure that captures the full complexity of the score is a great asset. Mozart's Musical dice game is a good example of this need.
In practice you can pick up and rework fragments of the very large musical repertoire available in MusicXML format, or create your own building blocks with a score editor such as Werner Schweer's MuseScore — a public domain program that works on Linux, Mac and Windows. MuseScore recognises many input/output formats and it can capture music via MIDI or Open Sound Control.
Exporting music produced by the Bol Processor to MusicXML scores is not yet on our agenda. The reason for this is that the model for timing musical events in the Bol Processor (polymetric structures) is more sophisticated (and compact) than that used by score representations derived from Western frameworks. Charles Ames wrote (Exporting to External Formats, 2013):
Of the two formats, MIDI operates at (or below) the level of performance gestures while MusicXML operates note-by-note. Accelerations and ritards, ramped dynamics, pitch bend, and other continuous controls are musical features that MIDI handles well. MusicXML handles these same features clumsily or not at all. Such limitations make it difficult to consider MusicXML as a viable intermediary for MIDI, at least for the foreseeable future.
Importing and converting a MusicXML score
A few public domain MusicXML scores can be found in the "xmlsamples" of the bp3-ctests-main.zip sample set shared on GitHub. Most of them are fragments used to illustrate the format. We start with a very short fragment of "MozartPianoSonata.musicxml", which also has a graphical score:
Mozart's piano sonata, an excerpt in common western music notation
First create a data file, for example "-da.musicXML". The default settings will suffice for this example, but a "-se.musicXML" file may be declared in the data window and you will be prompted to create it. Leave the default settings as they include the graphic display.
To import the MusicXML file, click the Choose File button at the top of the editing form, select the file and click IMPORT.
The machine displays the list of "parts" contained in the score. Each part can be assigned to an instrument, including human voices. This score contains a unique part to be played on an Acoustic Grand Piano, which would be played on channel 1 of a MIDI device. This MIDI channel information appears in the Bol Processor score and can later be mapped to a Csound instrument.
Clicking on CONVERT THEM (or IT) is all that remains to be done!
This will create the following Bol Processor data:
// MusicXML file ‘MozartPianoSonata.musicxml’ converted // Score part ‘P1’: instrument = Acoustic Grand Piano — MIDI channel 1
Imported scores can be played, expanded, exploded and imploded
This may look uncomfortable to read, but remember that a layman would not even be able to make sense of scores in Western music notation! Fortunately, there is now a PLAY button to listen to the piece. By default, it is also saved as a MIDI file, which can be interpreted by a MIDI soft synthesiser such as PianoTeq:
Excerpt of Mozart's piano sonata played by Bol Processor with PianoTeq
The same process can be invoked in the Csound environment. If Csound is installed and responsive, selecting the Csound output format will produce a Csound score immediately converted to an AIFF sound file displayed on the process window:
Playing the same piece via Csound. Note that the duration is 12 seconds (instead of 10) because a silence of 2 seconds (by default) is appended at the end of the track.
Understanding the conversion process
Let us compare the score in common Western notation with its conversion to Bol Processor data. This may be helpful in understanding the features and limitations of MusicXML files. Remember that this format is a complete description of a graphical representation of the musical work. It is up to the musician to add implicit information necessary for a correct (and artistic) rendering of the piece…
Scores of classical works are divided into bars (measures) marked by vertical lines. This score contains 5 measures of equal duration. The MusicXML file contains data indicating that the duration of each measure is 2 beats, i.e. 2 seconds, if the metronome is beating at 60 beats per minute. However, the _tempo(2) doubles the speed, resulting in measures that last 1 second. The third measure contains a chord {2, F#5, A5, D6} of half notes (minims) lasting 2 beats.
The Bol Processor score also shows the five measures, each of which is interpreted as a polymetric structure. At the beginning of each measure, a MIDI channel instruction has been automatically inserted to indicate which part it belongs to.
Let us read the first measure and compare it with its conversion on the score:
The ‘2’ (green colour) is the total duration of the polymetric expression (i.e. the measure). The first two lines are the upper score (in the G key on the picture) while the third line (in the F key on the picture) is the lower score. At the top of the upper score is a half note C#6 interpreted as {2, C#6}. A comma (in red colour) indicates a new field of the polymetric structure that needs to be superimposed on the first field. It contains a chord {C#5, E5, A5} of quarter notes (crotchets) of 1 beat, followed by a rest of 1 beat notated "-".
In the printed score there is an arpeggio on the chord which is ignored for the moment to make the explanations easier. Arpeggios will be considered below.
To complete the field, we need a rest of 1 beat, which is not indicated in the graphical score, although the gap is mentioned in the MusicXML file. In Bol Processor notation, rests can be written as '-' or as integer numbers/ratios. For example, a rest of 3 beats could be notated “---” or {3, -} or {3}, while a rest of 3/4 beats should be notated {3/4, -} or {3/4}.
The lower score contains a sequence that is difficult for a machine to process: three grace notes "A2 C#3 E3". Grace notes have no explicit duration in MusicXML files, so we follow the practice of giving this sequence a duration half that of the following main note, here the first occurrence of "A3", which is declared as eight notes of 1/2 beat. Consequently, the stream of grace notes has a total duration of 1/4 beat and is notated {1/4, A2 C#3 E3}. This is followed by A3 whose length is reduced by one half, so {1/4, A3}. The following 3 occurrences of A3 have a total duration of 3/2 beats, so {3/2, A3 A3 A3}.
The structure of this first measure is made clear in the graphic display. Note that, unlike the piano roll display, this object display does not position sound-objects vertically according to pitch values:
The first measure of the Mozart sonata's sample
The rest of the score can be deciphered and explained in the same way. Bol Processor notation is based on very simple (and multicultural) principles, but it is difficult to create by hand… So it is best created by grammars or extracted from MusicXML scores.
Note that it is easy to change the tempo of this piece. For example, to slow it down, insert the instruction _tempo(1/2) at the beginning:
Exploding scores
Clicking the EXPLODE button segments the musical work into individual measures, making it easier to analyse the conversion or reuse fragments:
The five measures of Mozart's sonata exploded on the Data window
Each measure can be played (or expanded) separately. Segments are labelled [item 1], [item 2] etc. for easy identification.
The IMPLODE button reconstructs the original work from its fragments.
A more complex example
Let us try DichterLiebe (op. 48) Im wunderschönen Monat Mai by Robert Schumann. The MusicXML score is in the "xmlsamples" folder distributed in the sample set "bp3-ctests-main.zip", which is available on GitHub, together with its graphic score (read the PDF file).
The Bol Processor score is more complex:
"Im wunderschönen Monat Mai" (Robert Schumann)
Im wunderschönen Monat Mai (Robert Schumann) interpreted by the Bol Processor on a PianoTeq vibrophone
The correct rendering of this piece on the Bol Processor is obtained with its (default) quantization set to 10 milliseconds. Quantization is a process of merging the timing of events when they are less than a certain value apart: a human would not notice a 10 millisecond timing error, but merging "time streaks" is an efficient way of saving memory when building a phase diagram of events. In this particular piece, setting the quantization to 30 ms would already produce a noticeable error in synchronisation. This gives an idea of the accuracy expected from human performers, which their trained auditory and motor systems can easily handle.
Note that this MusicXML score has 2 parts, one for voice and the second one for piano. These are sent on MIDI channels 1 and 2 respectively. These channels should in turn activate different Csound instruments. If several instruments are not available, it is possible to listen to their parts separately by importing selected parts of the score.
As the first measure is incomplete (1/4 beat), the piano roll is not aligned with the background streaks (numbered 0, 1, 2…):
This problem can be solved by inserting a silence of 3/4 beats duration before the score:
3/4 {_chan(1){1/4,{{1/4,-}}},_chan(2){1/4,{{1/4,C#5},{1/4,-}}}} … etc.
which yields:
Piano roll aligned to the time streaks
The musical work can be interpreted at different speeds after inserting a "_tempo()" instruction in the beginning. For example, given that the metronome is set to 60 beats per minute, inserting _tempo(3/4) would set the tempo to 60 * 3 / 4 = 45 beats per minute. To produce a sound rendering of this particular piece we inserted a performance control _legato(25), which extends the duration of all notes by 25% without modifying the score. We also added some reverberation on the PianoTeq vibrophone. The resulting piano roll was:
Same piece with _legato(25) extending note durations by 25%
Time-reversed Bach?
The _retro tool also produces bizarre transformations, most of which would sound "unmusical". In fact, some of them are quite interesting. Consider, for example, Bach's Goldberg Variation No. 5 played on Bol Processor + Csound with (Bach's presumably favourite) Kirnberger II temperament — see the page Comparing temperaments:
Bach's Goldberg VariationNr. 5 (Kirnberger II temperament) — MuseScore transcription by crashbangzoom808
Listen to the same piece after applying the _retro tool:
Time-reversed version of Bach's Goldberg Variation Nr. 5— Kirnberger II temperament
In Bol Processor scores created by importing MusicXML files, many (musically meaningful) modifications can be made, such as inserting variables and sending the data to a grammar that will produce completely different pieces. To achieve this, the grammar — for example "-gr.myTransformations" — must be declared above the data window.
The claim for "well-tempered tuning" for the interpretation of Baroque music can be further assessed by comparing the following versions of J.-S. Bach's Brandenburg Concerto Nr 2 in F major (BWV1047) part 3:
J.-S. Bach's Brandenburg Concerto Nr 2 in F major (BWV1047) part 3 — Kirnberger II temperamentJ.-S. Bach's Brandenburg Concerto Nr 2 in F major (BWV1047) part 3 — Equal-tempered tuning
Complex structures
At the time of writing, BP3 was able to import and convert all the MusicXML files in the "xmlsamples" folder. However, it may not be possible to play or expand pieces classified as "too complex" due to overflow. Since it is possible to isolate measures after clicking the EXPLODE button, a PLAY safe button has been created to pick up chunks and play them in a reconstructed sequence. The only drawback is that the graphics are disabled, but this is less important given the complexity of the work.
For example, listen to Lee Actor's Prelude to a Tragedy (2003), a musical work consisting of 22 parts assigned to various instruments via the 16 MIDI channels — read the graphic score.
Lee Actor's "Prelude to a Tragedy" (2003) with incorrect assignment of some instruments, played by the Bol Processor using its Javascript MIDIjs player
Instrument mapping is incorrect, with most channels being played as piano instead of flute, oboe, English horn, trumpet, viola, etc. Parts mapped to channels 10 and 16 are fed with drum sounds. All these instruments were synthesised by the Javascript MIDIjs player installed on the BP3's interface. A better solution would be to feed the "prelude-to-a-tragedy.mid" MIDI file into a synthesiser capable of imitating the full set of instruments, such as MuseScore.
Score part ‘P1’: instrument = Picc. (V2k) — MIDI channel 1 Score part ‘P2’: instrument = Fl. (V2k) — MIDI channel 2 Score part ‘P3’: instrument = Ob. (V2k) — MIDI channel 3 Score part ‘P4’: instrument = E.H. (V2k) — MIDI channel 4 Score part ‘P5’: instrument = Clar. (V2k) — MIDI channel 5 Score part ‘P6’: instrument = B. Cl. (V2k) — MIDI channel 5 Score part ‘P7’: instrument = Bsn. (V2k) — MIDI channel 7 Score part ‘P8’: instrument = Hn. (V2k) — MIDI channel 8 Score part ‘P9’: instrument = Hn. 2 (V2k) — MIDI channel 8 Score part ‘P10’: instrument = Tpt. (V2k) — MIDI channel 9 Score part ‘P11’: instrument = Trb. (V2k) — MIDI channel 11 Score part ‘P12’: instrument = B Trb. (V2k) — MIDI channel 11 Score part ‘P13’: instrument = Tuba (V2k) — MIDI channel 12 Score part ‘P14’: instrument = Timp. (V2k) — MIDI channel 13 Score part ‘P15’: instrument = Splash Cymbal — MIDI channel 10 Score part ‘P16’: instrument = Bass Drum — MIDI channel 10 Score part ‘P17’: instrument = Harp (V2k) — MIDI channel 6 Score part ‘P18’: instrument = Vln. (V2k) — MIDI channel 14 Score part ‘P19’: instrument = Vln. 2 (V2k) — MIDI channel 15 Score part ‘P20’: instrument = Va. (V2k) — MIDI channel 16 Score part ‘P21’: instrument = Vc. (V2k) — MIDI channel 16 Score part ‘P22’: instrument = Cb. (V2k) — MIDI channel 16
Lee Actor's "Prelude to a Tragedy" (2003) interpreted by MuseScore
Remember, however, that these are raw interpretations of musical scores based on a few quantified parameters. For a better representation, you should add performance parameters to the Bol Processor score to control volume, panoramic, etc. on a MIDI device, or an unlimited number of parameters with Csound.
Stylistic limitations are evident in transcriptions of jazz music, as opposed to musical works originally composed in writing. A transcription of improvised material is only a fixed image of one of its myriad variations. As a result, its score may convey a pedagogical rather than an artistic vision of the piece. The following is a transcription of Oscar Peterson's Watch What Happens from a MusicXML score:
Oscar Peterson's "Watch What Happens" interpreted by Bol Processor on PianoTeq, mm = 136 bpm Source: MusicXML score by jonasgssin the MuseScore community
The Bol Processor score of this transcription is as follows. The metronome has been increased to 136 beats per minute — notated _tempo(136/60) — to match an estimated performance speed. This is easy with a machine! Below is an excerpt from the piano roll display and the full Bol Processor score:
Excerpt of piano roll for Oscar Peterson's "Watch What Happens"
In a very different style, Tchaikovsky's famous June Barcarole in G minor (1875):
Tchaikovsky's “June Barcarole” in G minor interpreted by the Bol Processor with the Pianoteq physical-model synthesiser
Another complex example is Beethoven's Fugue in B flat major (opus 133). As we could not obtain the piano four hands transcription, we used the string quartet version.
Again, the Javascript MIDIjs player could not synthesise the two violins, viola and cello tracks (MIDI channels 1 to 4). So the MIDI file was sent to PianoTeq to get a fair piano rendering of the mixed channels.
Beethoven's Fugue in B flat major — a piano version interpreted by the Bol Processor with the Pianoteq physical-model synthesiser
Played as a single chunk (on MacOS), this piece takes no less than 372 seconds to calculate, whereas PLAY safe delivers the same in 33 seconds. In addition, single chunk playback requires 30 ms quantization on a machine with 16 GB of memory.
Another emblematic example of complex structure is La Campanella, originally composed by Paganini for the violin and transcribed for piano by Franz Liszt:
La Campanella — Liszt's piano version interpreted by the Bol Processor with the Pianoteq physical-model synthesiser Source: MusicXML score by Heavilon in the MuseScore community
The Bol Processor score of this piece (a single polymetric expression) consists of only 37268 bytes. Dynamics are interpreted as velocities :
In this Bol Processor score, the pedal start/end commands are translated to _switchon(64,1) and _switchoff(64,1), and a 20 milliseconds randomisation of dates is applied as per the instruction _rndtime(20) — see Pedals and Randomisation below.
According to Wikipedia : "La Campanella" (Italian for "The little bell") is the nickname given to the third of Franz Liszt's six Grandes études de Paganini, S. 141 (1851). Its melody comes from the final movement of Niccolò Paganini's Violin Concerto No. 2 in B minor, where the melody is metaphorically amplified by a 'little handbell'. After listening to Liszt's piano version interpreted by the Bol Processor — and its human performance by Romuald Greiss on the Wikipedia page — I recommend watching the outstanding violin performance of Paganini's original work by maestro Salvatore Accardo in 2008 (video).
Measure #96 of Liszt's “La Campanella”
Measure #96 of Liszt's “La Campanella” Bol Processor score (top left), MuseScore display, piano roll (bottom left) and sound-objects
In measure #96 (image above), the locations of vertical blue lines are irrelevant because of the varying tempi listed below (green arrows). Note that these are the metronome values given for the performance (tags sound tempo), which are slightly different from those given in the printed score (tags per-minute). However, if the MusicXML score is well designed, there is no significant difference between importing only performance metronome values and including printed score values ; this point is discussed below, see Tempo interpretation: prescriptive versus descriptive.
Ahead with grammars
Before we look in more detail at material imported from MusicXML files, let us consider the issue of using fragments of this material to create music in the Bol Processor task environment.
After importing/converting a MusicXML score, clicking EXPLODE will split it into separate items, one per measure, according to the MusicXML structure:
The EXPLODE button on the Data page.
The data has been chunked into units item 1, item 2 etc. Note that it is possible to play each measure separately and display its sound-objects or its piano roll.
The CREATE GRAMMAR button will now start converting this data into a grammar:
The CREATE GRAMMAR button
The new grammar is displayed in a pop-up window and can be copied to a Grammar page:
The new grammar has been created
This is a basic transformation. Playing this grammar would simply reconstruct the musical work as it was imported. However, as each measure is now labelled as a variable M001, M002 etc., these variables can be used as the "building bricks" of a new compositional work.
Performance controls
MusicXML files contain descriptive information for use by mechanical players that is not displayed on the graphic score. For example, where the score says "Allegretto" the file contains a quantitative instruction such as "tempo = 132".
Trills in measure 10 of Beethoven's Fugue in B flat major
Trills as encoded in the MusicXML file
Another notable case is the representation of trills (see image above). In some (but not all) MusicXML scores, they appear explicitly as sequences of fast notes. Consequently, they are rendered correctly by the interpreter of the MusicXML file. In other cases they have to be constructed — see Ornamentation below.
In the same measure #10, a fermata appears on top of the crotchet rest. Its duration is not specified as it is at the discretion of the performer or conductor, but the Bol Processor follows a common practice of making it twice the duration of the marked rest.
MusicXML files contain information about sound dynamics which the Bol Processor can interpret as either _volume(x) or _vel(x) commands. The latter (velocity) is appropriate for instruments such as piano, harpsichord etc.
In the absence of a numerical value, a graphical representation of the dynamics (ffff to pppp) will be used. This value is estimated according to the MakeMusic Finale dynamics convention.
Options for importing a MusicXML file
Some prescriptive information that appears on the graphical score is not (currently) interpreted. The first reason is that it would be difficult to translate performance controls to the Bol Processor - for example, stepwise/continuous volume control, acceleration, etc. The second reason is that the aim of this exercise is not to produce the "best interpretation" of a score. Score editing programs can do that better! Our only intention is to capture musical fragments and rework them with grammars or scripts.
It would be difficult to reuse a musical fragment packed with strings of performance controls relevant to its particular context in the musical work. To this end, the user is offered options to ignore volume, tempo and channel assignments in any imported MusicXML score. These can later be deleted or remapped with a single click (see below).
Remapping channels and instruments
MusicXML digital scores contain specifications for individual parts/instruments. These parts are visible in the Bol Processor score after conversion and can be mapped to the sound output device(s) — read below.
Each part can also be assigned a MIDI channel. These channels can be used to match instruments available on a MIDI synthesiser, and _ins() instructions are needed to call instruments available in the Csound orchestra.
The remapping of MIDI channels is easily done at the bottom of the Data or Grammar pages:
The default note convention when importing MusicXML scores is English ("C", "D", "E"…). This form allows it to be converted with a single click to the Italian/Spanish/French ("do", "re", "mi"…) or Indian ("sa", "re", "ga"…) conventions.
Clicking on the MANAGE _chan() AND _ins() button displays a form listing all occurrences of MIDI channels and Csound instruments found in the score. Here, for example, we want to keep MIDI channels and in the same time insert _ins() commands to call Csound instruments described in a "-cs" Csound resource file:
Error corrections
MuseScore's correction of the defective sequence (top score)
MuseScore reported an error in measure 142 of the MusicXML score for Beethoven's Fugue: the total timing of the notes in part 1 (the uppermost score) is 3754 units, which is 3.66 beats (instead of 4) based on a division of 1024 units per quarter note. MuseScore has corrected this error by stretching this sequence to 4 beats with an erroneous silence marker at the end.
The Bol Processor behaves differently. Its notion of "measure" as a polymetric structure is not based on counting beats. It takes the top line of the structure as the timing reference, so "measures" can be of variable duration. Its interpretation of this measure is as follows: the ratio 3755/1024 denotes exactly the (presumably incorrect) duration of this measure according to the MusicXML score:
The graphic rendering of this measure shows that the four sequences are perfectly synchronised.
To correct the error, simply replace "3755/1024" with "4".
Error notification while converting Beethoven's Fugue
At the time of writing, the Bol Processor has been able to import and play most MusicXML scores correctly. Errors can still occur with very complicated files, particularly due to inconsistencies (or rounding errors) in the MusicXML code. For example, the measure numbering in Liszt's 14th Hungarian Rhapsody looks confusing (due to implicit measures) and some values of are incorrect. These details are detected and the errors are corrected when the file is converted.
Tempo interpretation: prescriptive versus descriptive
MusicXML scores contain tempo markings of two kinds: (1) metronome prescriptive markings available on conventional printed scores and (2) their descriptive modifications for proper mechanical interpretation.
In the prescriptive setting, tempo controls (sound tempo tags) type within measures are discarded. Only per-minute tags are interpreted. This results in a "robotic" rendering: acceleration/deceleration lacks the passion and subtlety of human interpretation. However, since the transcription reflects the plain printed score, its fragments are more suitable for a reuse. Assuming that this is exactly the version published by the composer (which is indeed debatable) we can take the following interpretation as reflecting the music that Liszt "had in mind" regardless of the performer's interpretation.
Liszt's 14th Hungarian Rhapsody imported by the Bol Processor and played on PianoTeq with only “prescriptive” tempo controls. Source: ManWithNoName in the MuseScore community
In a detailed interpretation, all tempo indications are converted, including the "non-printing" ones (sound tempo tags), which we call descriptive. Global rendering is more pleasant when these tags make musical sense. For example, this is Liszt's 14th Hungarian Rhapsody with all tempo markings. Note that the total duration has increased by 15 seconds:
Liszt's 14th Hungarian Rhapsody with all "descriptive" tempo controls. Source: ManWithNoName in the MuseScore community
The options of relying on exclusively prescriptive, or exclusively descriptive, tempo markings should be considered when there is an inconsistency between the printed score (per-minute tags) and the performance details (sound tempo tags). The former are intended for use by a human performer, whereas the latter are intended for use by machines…
Multiple versions of the same piece of music can be found in shared repositories. Below is an interpretation of the same 14th Hungarian Rhapsody based on the MusicXML score customised by OguzSirin:
Liszt's 14th Hungarian Rhapsody imported by the Bol Processor and played on PianoTeqwith all "descriptive" tempo controls. Source: OguzSirinin the MuseScore community
Excerpts of piano roll for Liszt's 14th Hungarian Rhapsody transcribed by OguzSirin
The entire work is contained in a single polymetric expression (see code below) which must be "expanded" to fill a "phase diagram" of sound-objects. Its full expansion would produce no less than 7 x 1023 symbols… more than the estimated 400 billion (4 x 1011) stars in the Milky Way! Fortunately, polymetric representations can be compressed into a comprehensive format (see code below) and processed to produce the expected sequence of sound objects. The compression rate for this item is greater than 5 x 1022, so a Bol Processor score can be obtained without any loss of data.
Despite the limitations (and potential errors), the detailed virtuosity engraved in Liszt's score supports Alfred Brendel's idea of interpreting a musical work:
If I belong to a tradition, it is a tradition that makes the masterpiece tell the performer what to do, and not the performer telling the piece what it should be like, or the composer what he ought to have composed.
Focus on tempo and fermatas
This section is intended for readers familiar with standard western music notation. We illustrate the interpretation of (non-printed) metronome markings within measures and fermatas (unmeasured prolongations) using a typical example: measure #6 of Liszt's 14th Hungarian Rhapsody. The source material is the MusicXML code of this measure on which tempo annotations are highlighted in red and fermatas in green colour.
This measure is displayed in the printed score as follows. Invisible tempo markings have been added in red at the exact locations specified by the MusicXML score. Three fermatas are printed above/below the note or silence to which they apply.
Measure 6 of Liszt's 14th Hungarian Rhapsody
The symbolic duration of this measure is 6 beats. Due to rounding errors, the Bol Processor displays it as 1441/240 = 6.004 beats. This tiny discrepancy is caused by rounding off the durations of the 14 notes Ab2 C3 F3 Ab3 C4 F4 Ab4 C5 F5 Ab5 C6 F6 Ab6 C7, a sequence that should last exactly 3/8 of a measure. Each beat is divided into 480 parts — the division given at the beginning of the score. So the sequence should last 480 x 3/8 = 180 units, and each note should last 180/14 = 12.85 units. Since durations are represented as integers in a MusicXML score, this value has been rounded to 13. This explains the small difference visible in the Bol Processor score, but unnoticeable to the human ear.
Below is the complete Bol Processor transcription of this measure. First, the graphic representation of sound-objects labeled as simple notes:
Measure 6 of Liszt's 14th Hungarian Rhapsody displayed as sound-objects by the Bol Processor
Note that all sound-objects in the first 2.5 seconds are duplicated. The MusicXML score is redundant, fortunately with no inconsistencies between duplicate occurrences, which explains why they are not visible in the printed score.
The same polymetric expression is available in piano roll format:
Measure 6 of Liszt's 14th Hungarian Rhapsody displayed as piano roll by the Bol Processor
We will further explain how this transcription has been obtained.
On the Data window the 6th measure is displayed as a polymetric structure: {duration, field 1, field2, field 3, field4}. After importing the MusicXML score, click the EXPLODE button on the right side to display measures as separate items. Since measure numbering in this score starts with 0, measure #6 will be displayed as item #7.
To facilitate reading, each field is on a separate line:
Integers and integer ratios represent rests. For example, 667/480 in the third field is a rest of 667/480 = 1.389 beats. Dates and durations are treated by the Bol Processor as integer ratios, thereby allowing perfect time accuracy. The ratio 1/2 in the first field can be interpreted as a 1/2 beat rest or the symbolic duration of the expression {1/2,F7}.
Redundancy in the MusicXML score is visible as expressions such as {Ab2,C3}{2,F3} and {F1,C2}{2,F2} appear in two fields (at the same date and speed).
Tempo markings in red reflect MusicXML score annotations. Each field starts with a metronome of 80 bpm (beats per minute). The _tempo(13/20) instruction before the polymetric structure sets the metronome to 60 x 13/20 = 39 bpm. At the beginning of each field it is multiplied by 80/39, so 60 x 13/20 x 80/39 = 80 bpm, as expected. The following instructions produce 16 bpm and 52 bpm in their respective places.
This interpretation of a MusicXML score as a polymetric structure is not easy to work out with respect to metronome annotations. The main problem is that these annotations only appear on the top line of the graphic score (i.e. the first field of the structure) and should be inserted at the same date in other fields. For example, _tempo(4/3) is on the 4.5th beat, before {1/2,F7} in the first field, and therefore before {1/2,Ab6} in the second field. This is easy to calculate.
The rest 481/240 (about 2 beats), which appears in green on the Bol Processor score, has been added after the second field to calibrate its duration to that of the measure. This calibration is not mandatory on printed scores or in MusicXML files: where no note is shown, musicians understand that there is an implicit rest, which they insert spontaneously to anticipate the synchronisation of upcoming notes in the next measure. However, a machine should be instructed to do so.
However, _tempo(16/39), which precedes the Ab2 C3 F3… sequence in the first field, falls within a 1/2 beat rest in the second field. This pause is actually coded as a forward instruction, as it does not appear on the printed score. To synchronise tempo changes, the_tempo(16/39) instruction must be placed in the first quarter of this rest. The result is:
1/8 _tempo(16/39) 3/8
Similarly, a forward of 2.5 beats in the fourth field must be broken in order to insert the _tempo(8/27) and _tempo(26/27) statements, which would yield the following:
1/8 _tempo(16/39) 91/240 _tempo(4/3) 480/240
However, the calibration of the duration of this fourth field requires an additional pause of 1/2 beat, suggesting that 480/240 be replaced by 600/240. An additional 1/240 gap is required to compensate for rounding errors. This gives:
Another problem with measure 6 of Liszt's 14th Hungarian Rhapsody is the appearance of three fermatas (see printed score). Like metronome markings, fermatas are not repeated on every line of the score, as they apply to all parts (voices) simultaneously. The durations must therefore be adjusted accordingly in order to maintain synchronisation in a machine performance.
The first fermata (coloured green in the MusicXML score) is on note "F3" of the first field. Its duration is therefore 2 beats instead of 1. This extension is propagated to subsequent fields at the same date, namely "F3", "F2", "F2".
The second fermata is placed on an eighth (quaver) rest that appears in the printed score, and its duration is extended by 1/2 beat. This ends by extending by 1/2 beat the rests that occur at the same date in subsequent fields.
To facilitate similar analyses, an option is provided to track transformations when importing/converting MusicXML scores. The part relevant to measure #6 (item #7) reads as follows:
• Measure #6 part [P1] starts with current period = 0.75s, current tempo = 4/3, default tempo = 4/3 (metronome = 80) mm Measure #6 part P1 field #1 metronome set to 80 at date 0 beat(s) f+ Measure #6 part P1 field #1 note ‘F3’ at date 1 increased by 1 beat(s) as per fermata #1 mm Measure #6 part P1 field #1 metronome set to 16 at date 3 beat(s) mm Measure #6 part P1 field #1 metronome set to 16 at date 25/8 beat(s) mm Measure #6 part P1 field #1 metronome set to 52 at date 1513/480 beat(s) mm Measure #6 part P1 field #1 metronome set to 52 at date 841/240 beat(s) f+ Measure #6 part P1 field #1 note ‘-’ at date 961/240 increased by 1/2 beat(s) as per fermata #2 + measure #6 field #1 : physical time = 7.98s • Rounding part P1 measure 6 field #2, neglecting ‘backup’ rest = 1/240 mm Measure #6 part P1 field #2 metronome set to 80 at date 0 beat(s) f+ Measure #6 part P1 field #2 note ‘F3’ at date 1 increased by 1 beat(s) to insert fermata #1 mm Measure #6 part P1 field #2 metronome set to 80 at date 1 beat(s) mm Measure #6 part P1 field #2 metronome set to 16 during rest starting date 3 beat(s) mm Measure #6 part P1 field #2 metronome set to 52 at date 7/2 beat(s) + measure #6 field #2 : physical time = 5.08s Error in measure 6 part P1 field #3, ‘backup’ rest = -1/2 beat(s) (fixed) mm Measure #6 part P1 field #3 metronome set to 80 at date 0 beat(s) f+ Measure #6 part P1 field #3 note ‘F2’ at date 1 increased by 1 beat(s) to insert fermata #1 mm Measure #6 part P1 field #3 metronome set to 80 at date 1 beat(s) mm Measure #6 part P1 field #3 metronome set to 16 at date 25/8 beat(s) mm Measure #6 part P1 field #3 metronome set to 16 at date 1513/480 beat(s) f+ Measure #6 part P1 field #3 silence at date 961/240 increased by 1/2 to insert fermata #2 mm Measure #6 part P1 field #3 metronome set to 52 during rest starting date 841/240 beat(s) + measure #6 field #3 : physical time = 9.28s • Rounding part P1 measure 6 field #4, neglecting ‘backup’ rest = 1/240 mm Measure #6 part P1 field #4 metronome set to 80 at date 0 beat(s) f+ Measure #6 part P1 field #4 note ‘F2’ at date 1 increased by 1 beat(s) to insert fermata #1 f+ Measure #6 part P1 field #4 silence at date 961/240 increased by 1/2 to insert fermata #2 mm Measure #6 part P1 field #4 metronome set to 16 during rest starting date 3 beat(s) mm Measure #6 part P1 field #4 metronome set to 52 during rest starting date 3 beat(s) +rest Measure #6 part P1 field #2 added rest = 481/240 beat(s) +rest Measure #6 part P1 field #4 added rest = 1/240 beat(s) + measure #6 field #4 : physical time = 7.77s Measure #6 part [P1] physical time = 9.28s, average metronome = 49, final metronome = 39
Changing tempo
There are several methods for changing the tempo of imported MusicXML scores. After the conversion it is obviously possible to edit the _tempo(x) statements individually. Clicking on the EXPLODE button allows each measure to be modified and checked visually/audibly.
Inserting a _tempo(x) instruction in front of the musical work changes the average metronome value. The effect is identical to changing the metronome in the settings file (which we did for Oscar Peterson's work). For example, the following Bol Processor score would play Liszt's 14th Hungarian Rhapsody at half speed:
// MusicXML file ‘Hungarian_Rhapsody_No._14.musicxml’ converted // Score part ‘P1’: instrument = Piano — MIDI channel 1 -se.Hungarian_Rhapsody
Beginning of Liszt's 14th Hungarian Rhapsody at half speed
Despite the Bol Processor's systematic treatment of symbolic time as integer ratios, a floating-point argument x is acceptable in a _tempo(x) instruction. For example, _tempo(1.68) is automatically converted to _tempo(168/100) and simplified to _tempo(42/25).
Advanced tempo adjustment is possible when importing the MusicXML score.
The current average, minimum and maximum metronome values are displayed. Yellow boxes show the default values, e.g. set average to 60 bpm, minimum to 10 bpm and maximum to 180 bpm.
All metronome values are modified using a quadratic regression of the mapping of values. A linear regression can be used to replace the polynomial form if it is not monotonous. For this example (14th Hungarian Rhapsody) the new average would be 63 bpm instead of the expected 60 bpm. The discrepancy depends on the statistical distribution of the values.
Changing volume or velocity
When converting a MusicXML score, there is an option to interpret sound dynamics as volume or velocity controls. The latter may be preferable for sound synthesis that imitates plucked or struck string instruments.
Whatever you choose, you can later adjust the volume and velocity controls for the entire musical work. For example, click Modify _vel() at the bottom of the Data page.
This will display a form showing the current average, minimum and maximum values of _vel(x) statements in the score. Enter the desired values in the yellow cells and click APPLY.
The mapping uses a quadratic regression (if monotonous), as explained in relation to tempo (see above). For the same reason, the averages obtained are generally not exactly the desired ones.
Ornamentation
Western musical scores can contain many types of ornamentation with names and styles of interpretation depending on the historical period. The MusicXML format includes some of these, which can produce sound effects similar to those produced by human performers.
The following ornaments are transcribed into Bol Processor scores when MusicXML files are imported. The accuracy of these interpretations is not a big deal, since the main object is to import musical fragments that will be transformed and reused in different contexts. Nevertheless, it is fun to design a good interpretation… Before importing a MusicXML file, options are given to discard one of the following types of ornaments. The option is only displayed if at least one occurrence is found in the file.
Mordents
There is a wide variety of mordents with meanings that have changed over the years. The interpretation in Bol Processor is close to the musical practice of the 19th century, yet acceptable for the interpretation of Baroque works.
The MusicXML tags for mordents are mordent and inverted-mordent which correspond to the more comprehensible terms of lower mordent and upper mordent respectively. We will illustrate their use in François Couperin's work Les Ombres Errantes (1730), using a MusicXML file arranged by Vinckenbosch from the MuseScore community. Let us look at and listen to the first three measures:
Beginning of François Couperin's Les Ombres Errantes (MuseScore) read full score (Creative Commons licence CC0 1.0 Universal)
Beginning of François Couperin's “Les Ombres Errantes” interpreted by the Bol Processor + Csound with a “Rameau en sib” temperament
There are eight mordents in the first three measures of Les Ombres Errantes. Those numbered 1, 2, 3, 7 and 8 are of the upper type. Mordents #4, #5 and #6 are of the lower type. In addition, the marks of all the upper mordents are longer than standard, which makes them long. Their MusicXML tag is therefore <inverted-mordent long="yes"/>.
Each mordent is interpreted as a series of notes on a rhythmic pattern, which may be short or long. For example, note B4 (the first longupper mordent) is interpreted as
{1/4,C5 B4 C5}{3/4,B4}
which indicates that it has been embellished by a short step down from the next higher note C5. The fourth mordent is of the short lower type on note C5, which yields:
{1/8,C5 B4}{7/8,C5}
The full list of mordents in these three measures is:
{1/4,C5 B4 C5}{3/4,B4}
{1/4,Eb5 D5 Eb5}{3/4,D5}
{1/4,C5 B4 C5}{3/4,B4}
{1/8,C5 B4}{7/8,C5}
{1/8,Eb4 D4}{7/8,Eb4}
{1/8,Eb4 D4}{7/8,Eb4}
{1/4,C4 B3 C4}{3/4,B3}
{1/4,C4 B3 C4}{3/4,B3}
While creating rhythmic patterns of mordents is fairly straightforward, a difficulty lies in choosing the note above or below the final note at a tonal distance of 1 or 2 semitones. The default choice is a note that belongs to the diatonic scale, which can be modified by changes earlier in the measure. An option to interpret mordents, turns and trills as"chromatic" is offered, see below.
With two flats in the key signature, i.e. Bb and Eb, the global diatonic scale of this piece reads as B flat major (or G minor) scale = "C D Eb F G D Bb". However, in the second measure, Bb is altered to B by a natural sign. Therefore, in the following mordent #4, the note B4 must be used instead of Bb4 as the lower note leading to C5.
Mordents sound acceptable in this interpretation, as can be heard in the full recording with microtonal adjustments on a Pianoteq synthesiser:
François Couperin's “Les Ombres Errantes” (1730) with “Rameau en sib” temperament (1726) interpreted by the Bol Processor on a Pianoteq synthesiser. More tunings and Csound version on the page Comparing temperaments
Turns
A turn is similar to a mordent, except that it picks up both the next high and low notes in the scale. If it is linked to a mordent, it can borrow its attributes (see above): upper/lower and long/short. If the turn is not associated with a mordent, it will use the long + upper attributes. This is a design option that can be revised or made optional.
A specific attribute of turns is beats, similar to trill-beats (see below). These are defined (read the source) as "The number of distinct notes during playback, counting the starting note but not the two-note turn. It is 4 if not specified."
Examples of turns can be found in François Couperin's Les Ombres Errantes. They are all four beats long and embedded in long/upper mordents, for example, the note Ab3 in measure #12:
{1, Ab3 {2, A3 Ab3 G3} Ab3}
The complete measure #12 (with the turn highlighted) is:
Note that the result would be unchanged if the turns in this piece were interpreted as "chromatic" in this piece: this option picks up the next higher and lower notes in the chromatic scale underlying the tuning of the piece — see image of the Rameau en sib meantone temperament.
Turns not associated with mordents are found in François Couperin’s Le Petit Rien:
François Couperin's “Le Petit Rien” (1722) with a “Rameau en do” temperament interpreted by the Bol Processor on a Pianoteq synthesiser Source: MusicXML score by Yvan43
Trills
Trills are marked with the trill-mark tag. There is an option to ignore this if the detailed note sequences are already encoded in the MusicXML file. (This is not easy to guess!) Let us see the construction of trills when the option is not checked.
The treatment of trills is similar to that of mordents (see above). There are many ways to interpret a trill, depending on the style and personal preference of the performer. By default, trills in the Bol Processor start with the reference note and end with the altered note, which is one step higher in the scale. However, if the starting note has a tie, the order of the notes is reversed, so that the stream ends with the tied note.
Among the available options of the trill-mark tag, we pick up trill-beats (read the documentation), whose value is "3" by default. Its definition is a little obscure: "The number of distinct notes during playback, counting the starting note but not the two-note turn. It is 3 if not specified." Our provisional interpretation is that the total number of jumps is trill-beats + 1.
Examples of the two types in Liszt's 14th Hungarian Rhapsody:
Arpeggios are also converted into polymetric structures. Below is a chord {F1,C2,F3} of 1/2 beat duration, followed by its interpretation as an arpeggio:
The piano roll of this sequence makes it clear. The chord is divided into two parts. The duration of the first part is determined by a minimum value of the delay between each arpeggio note and the following one, here set to 1/20th of a beat. The total duration must not exceed half of the duration of the chord.
Notes are tied (symbol '&') so that their durations are merged, as expected, between the arpeggio part and the pure chord part: for instance, "F1&" is tied to "&F1" — read page Tied notes for details.
Slurs
Slurs are translated into the Bol Processor score as _legato(x) statements, where "x" is the percentage by which note durations are increased. This option is set by default to x = 20% and can be deselected before importing the MusicXML file.
Slurs on the first notes of François Couperin's “Les Ombres Errantes”
The notes used for stretching are those associated with slurs in the score: C5 , Eb5 and C5. Other notes, even the sequence {1/2,Eb4}{5/2,G4 D4 F4 C4 Eb4},Eb4 D4 C4}}, are not modified because they do not appear at the same level of the polymetric structure.
With staccato or spiccato, the duration is halved. For example, C4 is replaced by {1, C4 -}.
Staccatissimo reduces the duration by three quarters. For example, C4 is replaced by {1, C4 ---}.
Pedals
Pedal commands are captured from the MusicXML file and can be interpreted as MIDI controller commands. (These are ignored when generating a Csound output.)
A controller setting is suggested for each part of the score where a pedal command has been found. By default, controller #64 is used along with the MIDI channel assigned to the part. The performance controls _switchon() and _switchoff() are used according to the Bol Processor syntax.
Below are the settings for pedals, trills, etc., and the extra duration of the last measure for a piece with pedals in a single part. Numbers in yellow cells can be modified:
For example, the first three measures of Liszt's La Campanella are interpreted as follows:
Breath of 1/4 quarter note in measure #3 of “Les Ombres Errantes”
Breath marks are "grace rests" analogous to the commas in written languages. On the Bol Processor, they are optionally interpreted as short silences lasting a fraction of a quarter note.
Look at measure #3 of François Couperin's Les Ombres Errantes (see conventional score above). The image shows the effect of breaths set to a 1/4 quarter note — that is, an eighteenth.
In the Bol Processor score, breaths can be tagged with any sequence of symbols. For example, in measure #3 of Les Ombres Errantes, the breaths are tagged with [] which actually contains a Unicode character compatible with BP syntax. Note that the breaths after D4 and B3 are 1/4 beats because these beats are quarter beats, whereas the breath after F4 is 1/2 beats because each beat is an eighth.
When importing this piece, we used 1/6th quarter note silence as it sounded more acceptable. In addition, we randomised the timing by 20 ms (see below).
Previewing ornamentation and setting options
Previewing ornamentation and setting options before importing a MusicXML file
Before importing a MusicXML file, options are displayed for selecting or ignoring any ornaments detected in the file. Here, for example, mordents and turns. Selecting an option implies that the ornament was described only as a graphic mark in the printed score, so we expect the algorithm to construct the note sequences according to the rules shown above. If the ornament has been embedded in the file as a sequence of notes, it is necessary to ignore its statement.
This decision can be difficult to make, as it requires analysis of the MusicXML code. To do this, the buttons open windows showing only the bars in which the selected ornament occurs. The ornament code is displayed in green and preceded by a red arrow.
Mordents, turns and trills can also be interpreted as chromatic. See their checkboxes on the picture.
Another button (at the top of the window) displays the complete MusicXML code in a pop-up window with coloured lines for measures and notes.
There are several "trace" options available. With a long file, it may not be easy to trace the entire process. It is therefore possible to focus on a number of measures. Other restricted options are the management of tempo and ornamentation.
Measure and part numbers
An option (see image above) allows the measure numbers to be displayed on the imported score, as shown below:
These become more visible after clicking the EXPLODE button, which fragments the score into one item per measure. Measure numbers (which appear on the printed score) do not always correspond to item numbers in the exploded view.
If the score contains several parts, their labels are also optionally displayed as "_part()" commands in the resulting score. This makes it easier to match the BP score with the printed one. For example:
In real-time MIDI, each part can be mapped to a specific MIDI output and fed to a specific digital instrument as indicated on the score — see the method.
Randomisation
Many performance controls can be applied to the imported score to change its global tempo, dynamics etc. These include the "random" operators "_rndvel(x)" and "_rndtime(x)".
The first changes the velocities by a random value between 0 and x, where x < 64. It can be placed at the beginning of a sequence of notes and followed by "_rdnvel(0)" when the randomisation is no longer desired. If it is placed before a polymetric structure it will apply to all notes in the structure.
The performance control "_rndtime(x)" follows the same syntax. Its effect is to randomly shift each note by ± x milliseconds.
Randomisation is not intended to "humanise" digital music, but rather to compensate for unwanted effects when multiple digitally synthesised sounds are superimposed. This is the case, for example, when notes in a synthesiser are attacked to imitate plucked instruments. Attacking several notes (in a chord) at the same time can sound very harsh. In general, placing a "_rndtime(20)" instruction at the beginning of the piece will solve the problem. However, the musical score may consist of several parts with instruments that benefit from different randomisations; therefore, several instructions must be placed in from of each part (one per bar). To avoid this editorial work, an option is given to insert "_rndtime(x)" with the correct values of x on each part/instrument.
Compare the beginning of Les Ombres Errantes without, then with, a time randomisation of 20 milliseconds — i. e. much less than what would be perceived as a "wrong timing". To get the right effect, the time resolution of the Bol Processor must be much lower than 20 ms. Here it is set to 1 ms, which means that the timing offsets can randomly pick up 40 different values within the ± 20 ms interval.
However, be careful not to reduce the time quantization to less than 10 milliseconds, as this could increase memory usage to the point where the MAMP or XAMPP driver hangs without warning. For example, on a Mac with 16 GB memory, Beethoven's Fugue in B flat major will only play in a single chunk at 30 ms quantization.
Non-randomized beginning of “Les Ombres Errantes”20-millisecond randomized beginning of “Les Ombres Errantes”
Let us compare the sizes of the files able to deliver the same interpretation of the 14th Hungarian Rhapsody:
Sound file in AIFF 16-bit 48 Khz produced by PianoTeq = 200 MB
MusicXML file = 3.9 MB
Graphic + audio score produced by MuseScore = 141 KB
Graphic score exported as PDF by MuseScore = 895 KB
Csound score produced by Bol Processor = 582 KB
MIDI file produced by Bol Processor = 75 KB
Bol Processor data = 64 KB
This comparison supports the idea that Bol Processor data is arguably the most compact and altogether comprehensive (text) format for representing digital music. Below is the complete data of this musical work (with measure numbers):
// MusicXML file ‘Hungarian_Rhapsody_No._14.musicxml’ converted // Reading metronome markers // Including slurs = _legato(20) // Including trills // Including fermatas // Including mordents // Including arpeggios
Velocities have been remapped to average 78 and maximum 110.
Take-away
The interpretation of complex musical works packaged in digitised musical scores highlights important features of the Bol Processor model:
Any musical work that can be scored digitally can be encapsulated in a singlepolymetric expression;
The timings of polymetric expressions are symbolic, here meaning human-understandable integers (or integer ratios) that count beats rather than milliseconds;
The simple syntax of polymetric expressions makes them amenable to reuse and transformation by human editors (or formal grammars);
The limitations of this modelling are only "physical": memory size and computation time;
The temporal accuracy (typically 10 ms) is not affected by the size of the data.
Return to humanity
The examples will hopefully convince the reader that the Bol Processor format is capable of emulating scores in common Western notation, and even correcting some irregularities in their timing… Let us admit that it has come a long way from its original dedication to the beautiful poetry created by drummers in India!
These are indeed interpretations of musical scores. To remember the added value of human artists playing real instruments, we might end up listening to the same Beethoven Fugue played by the Alban Berg Quartet:
A framework for tuning just-intonation scales via two series of fifths Image created by Bol Processor based on a model by Pierre-Yves Asselin
For more than twenty centuries, musicians, instrument makers and musicologists have devised scale models and tuning procedures to create tonal music that embodies the concept of "consonance".
This does not mean that every style of tonal music aims to achieve consonance. This concept is most explicit in the design and performance of North Indian raga and Western harmonic music.
There was a common idea that the octave and the major fifth (interval 'C' to 'G') were the building blocks of these models, and the harmonic major third (interval 'C' to 'E') has recently played an important role in European music.
Computer-controlled electronic instruments are opening up new avenues for the implementation of microtonality, including just intonation frameworks that divide the octave into more than 12 degrees - see the Microtonality page. For centuries, Indian art music claimed to adhere to a division of 22 intervals (the ṣruti-swara system) theorised in the Nāṭyaśāstra, a Sanskrit treatise dating from between 400 BCE and 200 CE. Since consonance (saṃvādī) is the basis of both ancient Indian and European tonal systems, we felt the need for a theoretical framework that encompassed both models.
Unfortunately, the subject of "just intonation" is presented in a wholly confusing and reductive manner (read Wikipedia), with musicologists focusing on integer ratios that reflect the distribution of higher partials in periodic sounds. While these speculative models of intonation may support beliefs in the magical properties of natural numbers — as claimed by Pythagoreanists — they have rarely been teste against undirected musical practice. Instrument tuners rely on their own auditory perception of intervals rather than on numbers, despite the availability of "electronic tuners"…
Interestingly, the ancient Indian theory of natural scales did not rely on arithmetic. This may be surprising given that in Vedic times mathematicians/philosophers had laid out the foundations of calculus and infinitesimals which were much later exported from Kerala to Europe and borrowed/appropriated by European scholars — read C.K. Raju's Cultural Foundations of Mathematics: the nature of mathematical proof and the transmission of the calculus from India to Europe in the 16th c. CE. This epistemological paradox was an incentive to decipher the model presented by the author(s) of the Nāṭyaśāstra by means of a thought experiment: the two-vina experiment.
Earlier interpretations of this model, mimicking the Western habit of treating intervals as frequency ratios, failed to explain the intervalic structure of ragas in Hindustani classical music. In reality, the implicit model of the Nāṭyaśāstra is a 'flexible' one because the size of the major third (or equivalently the pramāņa ṣruti) is not predetermined. Read the page on Raga intonation and listen to the examples to understand the connection between the theory and practice of intonation in this context.
In Europe, the harmonic major third was finally accepted as a "heavenly interval" after the Council of Trent (1545-1563), ending the ban on polyphonic singing in religious gatherings. Major chords— such as {C, E, G} — are vital elements of Western harmony, and playing a major chord without unwanted beats requires the simplest frequency ratio (5/4) for the harmonic major third {C, E}.
A keyboard with 19 keys per octave (from “A” to “a”) keyboard designed by Gioseffo Zarlino (1517-1590) (source)
With the development of fixed-pitch keyboard instruments, the search for consonant intervals gave way to the elaboration of theoretical models (and tuning procedures) that attempted to perform this interval in "pure intonation". Theoretically, this is not possible on a chromatic scale (12 degrees), but it can be worked out and applied to Western harmony if more degrees (29 to 41) are allowed. Nevertheless, the choice of enharmonic positions suitable for a harmonic context remains an uncertain proposition.
Once again, the Indian model comes to the rescue, because it can be extended to produce a consistent series of twelve "optimally consonant" chromatic scales, corresponding to chord intervals in western harmony. Each scale contains 12 degrees, which is more than the notes of the chords to which it applies. Sound examples are provided to illustrate this process — see the Just intonation: a general framework page.
The tuning of mechanical keyboard instruments (church organ, harpsichord, pianoforte) to 12-degree scales made it necessary to distribute unwanted dissonances (the syntonic comma) over series of fifths and fourths in an acceptable manner. From the 16th to the 19th centuries, many tempered tuning systems were developed in response to the constraints of particular musical repertoires, with an emphasis on either "perfect fifths" or "pure major thirds".
These techniques have been extensively documented by the organist and instrument builder Pierre-Yves Asselin, along with methods for achieving intonation on a mechanical instrument such as the harpsichord. His book Musique et tempérament (Paris: Jobert, 2000, to be published in English) served as a guide for implementing a similar approach in the Bol Processor — see the pages Microtonality, Creation of just-intonation scales and Comparing temperaments. This framework should make it possible to listen to Baroque and classical workson Csound instruments in the tunings intended by their composers, according to historical sources.
Sadly, Pierre-Yves Asselin left this world on 4 December 2023. We hope that the English translation of his groundbreaking work will be completed soon.
From left to right: 1st-order descending-third series, "Pythagorean" series and 1st-order ascending-third series (Asselin 2000 p. 61)
As indicated on the page Just intonation: a general framework, just-intonation chromatic scales can be derived from a basic framework made of two cycles of perfect fifths (frequency ratio 3/2).
These produce the 22-shruti framework of Indian musicologists (read Raga intonation) or the series called "Pythagorean" and "1st-order ascending-third" ("LA-1", "MI-1" etc.) in the approach of western musicologists (see picture on the side).
We have found that the "1st-order descending-third cycle" ("LAb+1", "MIb+1" etc.), in which all notes are higher by a syntonic comma may not be necessary for the creation of just-intonation chords.
These cycles of fifths are represented graphically (scale "2_cycles_of_fifths" in the tonality resource "-to.tryTunings"):
There are some differences between this 29-degree division of the octave and the Indian framework, notably the creation of "DO-1" and "FA-1", two positions one syntonic comma lower than "DO" ("C" = "Sa" in the Indian convention) and "FA" ("F" = "Ma"). Interestingly, these positions appear in ancient texts under the names "cyuta Sa" and "cyuta Ma". Other additional positions are "REb-1", "MIb-1", "SOLb-1", "LAb-1" and "SIb-1".
The rule we follow when creating chromatic scales from transpositions of Ma-grama is that only the positions shown on this graph are considered valid. When exporting a minor or major chromatic scale from a transposition of Ma-grama, it may happen that a note position is not part of this framework. In all cases of this procedure, the invalid position is one syntonic comma too low. Therefore the exported scale is "aligned" by raising all its positions by one comma.
The term "Pythagorean series" is confusing because any cycle of perfect fifths is Pythagorean by definition. Whether a position in a scale "is" or "is not" Pythagorean depends on the starting note of the series that was announced as "Pythagorean". In Asselin's work the starting point of the series in the middle column is "FA". In the Indian system, the basic frameworks (Ma-grama and Sa-grama) start from "Sa" ("C" or "do") and the Pythagorean/harmonic status of a position is determined by factors of its frequency ratio with respect to "Sa". If a factor "5" is found in the numerator or the denominator, the position is harmonic or, conversely, Pythagorean.
For example, "DO#" in Asselin's "Pythagorean" series (two perfect fifths above "SI") is evaluated as a harmonic position (marked in green) on the Bol Processor graph and its ratio is 16/15. In reality, "DO#" in Asselin's series has a frequency ratio of 243/128 * 9/16 = 2187/1024 = 1.068 which is very close to 16/15 = 1.067. "DO#-1" in Asselin's series is two perfect fifths above "SI-1" which gives a frequency ratio of 15/8 * 9/16 = 135/128 = 1.054 which is close to 256/243 = 1.053 and marked "Pythagorean" on the Indian scheme. Thus, "DO#" and "DO#-1" have exchanged their properties, each being the superposition of two very close positions belonging to different series.
Ignoring schisma differences inn order to take the simplest ratios creates this confusion. For this reason, we still prefer to use comma indications — e.g. "FA" and "FA-1" — to identify positions where the first instance belongs to the series called "Pythagorean" in Asselin's work.
Transposition table
This table summarises a quick procedure for creating all the murcchana-s of the Ma-grama chromatic scale and exporting minor and major chromatic scales from them.
Open the scale "Ma_grama" in the "-to.12_scales" tonality resource, and select the Murcchana procedure. To create "Ma01", move note "F" to note "C" and click on TRANSPOSITION.
F moved to
Murcchana
Minor scale
Raise
Major scale
Identical scale
Adjust
C
Ma01
Amin
D
Cmaj
=
Emin
1/1
F
Ma02
Dmin
G
Fmaj
=
Amin
1/1
Bb
Ma03
Gmin
C
Bbmaj
=
Dmin
1/1
Eb
Ma04
Cmin
F
Ebmaj
=
Gmin
1/1
Ab
Ma05
Fmin
Bb
Abmaj
=
Cmin
1/1
Db
Ma06
Bbmin
Eb
Dbmaj
=
Fmin
1/1
F#
Ma07
Ebmin
Ab
F#maj
=
Bbmin
1/1
B
Ma08
Abmin
Db
Bmaj
=
Ebmin
1/1
E
Ma09
Dbmin
F#
Emaj
=
Abmin
1/1
A
Ma10
F#min
B
Amaj
=
Dbmin
81/80
R3
Ma11
Bmin
E
Dmaj
=
F#min
81/80
G3
Ma12
Emin
A
Gmaj
=
Bmin
81/80
For example, this is the "Ma04" murcchana obtained by placing "F" (M1 on the Indian scale model) of the moving wheel on "Eb" (G1 of the outer crown):
The resulting "Ma04" scale is:
The "Ma04" scale, which is a transposition of the "Ma-grama" chromatic scale
Scale adjustment
In the last column of the table, "Adjust" indicates the fraction by which the note ratios may need to be multiplied so that no position is created outside the Pythagorean and harmonic cycles of fifths according to the Indian system. Practically this is the case when the frequency ratio contains a multiple of 25 in either its numerator or denominator, as this indicates that the position has been constructed by at least two successive major thirds (up or down).
A warning is displayed if this is the case, and a single click on ADJUST SCALE fixes the positions:
In this example, the warning signals an out-of-range position of "B" (50/27) on the "Ma10" scale. Note also that "F#" has a multiple of 25 in its numerator.
After clicking on ADJUST SCALE, the scale "Ma10" is completed with "B" in position 15/8. This has been done by raising all the notes by one syntonic comma (81/80) :
This procedure is known in Indian musicology as sadja-sadharana, which means that all the notes of the scale are raised by a shruti — here, a syntonic comma (Shringy & Sharma 1978). In this model, it is also invoked for the scales "Ma11" and "Ma12". The result is (as expected) a circular model because "Ma13" is identical to "Ma01" as shown by the scale comparator at the bottom of page "-to.12_scales".
This circularity is a property of the set of murcchana-s which has no effect on exported minor and major scales, since their positions are aligned according to the basic rule explained in the first section.
Exporting and aligning minor scales
The "Ma04" murcchana produces "Cmin" by exporting notes facing the marks on the inner wheel.
The "Cmin" chromatic scale exported from the "Ma04" transposition
As explained on page Just intonation: a general framework, the tonic and dominant notes of each minor chord should belong to the "minus-1" position. In this example, "C" and "G" are one comma lower in a "C minor" chord than in a "C major" chord (corresponding to "DO-1" and "SOL-1" on the "2_cycles_of_fifths" scale), a fact predicted and experimentally verified by Pierre-Yves Asselin (2000 p. 137).
All chromatic minor scales exported from the murchana-s of the Ma-grama are correctly positioned with respect to the enharmonic positions of the main notes in just-intonation chords. This can be easily checked by comparing the ratios with those associated with the western series on "2_cycles_of_fifths" (top of this page). This confirms that a tuning system using only two series of perfect fifths is suitable for the construction of a just-intonation framework.
Exporting and aligning major scales
The "Ma04" murcchana produces "Ebmaj" by exporting notes facing the marks on the inner wheel and raising "F":
The "Ebmaj" chromatic scale exported from the "Ma04" transposition
According to a rule explained on the page Just intonation: a general framework, the root of each major chord should be both in the high position and in the Pythagorean series (blue markings). This is true for the chord "Eb major" taken from the chromatic scale "Ebmaj", but not for the scales "F#maj", "Bmaj" and "Emaj" shown in bold on the table.
For example, let us look at "Emaj", which was exported from "Ma09" without any precautions:
Scale "Emaj" exported from "Ma09", before its alignment
The note "E" has a frequency ratio of 5/4, which is labelled "MI-1" on the scale "2_cycles_of_fifths" (top of this page). Since "MI-1" belongs to a harmonic series, it cannot be taken as a the tonic of an "E major chord". The Pythagorean "MI" (ratio 81/64) should be used instead.
After its adjustment — raising all notes by 1 syntonic comma — the final "Emaj" scale is obtained:
Scale "Emaj" exported from "Ma09", after its alignment
This alignment of exported major scales is done automatically by the Bol Processor when exporting a major chromatic scale.
References
Asselin, P.-Y. Musique et tempérament. Paris, 1985, republished in 2000: Jobert. Soon available in English.
Tanpura: the drone of Indian musicians — manufactured in Miraj (read paper)
This article demonstrates the theoretical and practical construction of microtonal scales for the intonation of North Indian ragas, using tools available with the Bol Processor (BP3).
This raga intonation exercise demonstrates BP3's ability to handle sophisticated models of micro-intonation and to support the fruitful creation of music embodying these models.
Theory versus practice
To summarise the background, the framework for constructing 'just intonation' scales is a deciphering of the first six chapters of the Nāṭyaśāstra, a Sanskrit treatise on music, dance and drama dating from a period between 400 BC and 200 AD. For convenience, we call it "Bharata's Model", although there is no historical record of a single author by that name.
Using exclusive information driven from the text and its description of the Two-vina experiment, an infinite number of valid interpretations of the ancient theory are possible, as shown in A Mathematical Discussion of the Ancient Theory of Scales according to Natyashastra (Bel 1988a). Among these, the one advocated by many musicologists — influenced by western acoustics and scale theories — is that the frequency ratio of the harmonic major third would be 5/4. This is equivalent to setting the frequency ratio of the syntonic comma at 81/80.
Although this interpretation provides a consistent model for just intonation harmony - see Just intonation, a general framework — it would be a stretch to claim that the same applies to raga intonation. Accurate assessment of raga performance using our Melodic Movement Analyser (MMA) in the early 1980s revealed that melodic structures derived from statistics (using selective tonagrams, see below) often differ significantly from the scales predicted by the "just intonation" interpretation of Bharata's model. Part of the explanation may be the strong harmonic attraction of drones (tanpura) played in the background of raga performances.
Speaking of grama-s (scale frameworks) in the ancient Indian theory, E.J. Arnold wrote (1982 p. 40):
Strictly speaking the gramas belong to that aspect of nada (vibration) which is anahata ("unstruck"). That means to say that the "grama" can never be heard as a musical scale [as we did on page Just intonation, a general framework]. What can be heard as a musical scale is not the grama, but any of its murcchanas.
Once electronic devices such as the Shruti Harmonium (1979) and the Melodic Movement Analyser (1981) became available, the challenge for raga intonation research was to reconcile two methodologies: a top-down approach, testing hypothetical models against data, and a data-driven bottom-up approach.
The "microscopic" observation of melodic lines (now easily rendered by software such as Praat) has confirmed the importance of note treatment (ornamentation, alankara) and temporal dimensions of raga that are not taken into account by scale theories. For example, the rendering of the note 'Ga' in raga Darbari Kanada (Bel & Bor 1984; van der Meer 2019) and the typical treatment of notes in other ragas (e.g. Rao & Van der Meer 2009; 2010) have been discussed at length. The visual transcription of a phrase from raga Asha illustrates this:
A brief phrase of raga Asha transcribed by the MMA and in western conventional notation
Non-selective tonagram of raga Sindhura sung by Ms. Bhupender Seetal
To extract scale information from this melodic continuum, a statistical model was implemented to show the distribution of pitch over an octave. The image shows the tonagram of a 2-minute sketch (chalana) of raga Sindhura taught by Pandit Dilip Chandra Vedi.
The same recording of Sindhura on a selective tonagram
The same melodic data was processed again after filtering through 3 windows that attempted to isolate 'stable' parts of the line. The first window, typically 0.1 seconds, would eliminate irregular segments, the second (0.4 seconds) would discard segments outside a rectangle of 80 cents height, and the third was used for averaging. The result is a "skeleton" of the tonal scale, displayed as a selective tonagram.
These results would often not match the scale metrics predicted by the 'just intonation' interpretation of Bharata's model. Continuing with this data-driven approach, we produced the (non-selective) tonagrams of 30 ragas (again, chalana-s) to compute a classification based on their tonal material. Dissimilarities between pairs of graphs (computed using Kuiper's algorithm) were approximated as distances, from which a 3-dimensional classical scaling was extracted:
A map of 30 North-Indian ragas constructed by comparing tonagrams of 2-minute sketches (chalana-s) of sung performances (Bel 1988b)
This experiment suggests that contemporary North-Indian ragas are amenable to meaningful automatic classification on the basis of their (time-independent) intervalic content alone. This approach is analogous to human face recognition techniques, which are able to identify related images from a limited set of features.
Setup of Bel's Melodic Movement Analyser MMA2 (black front panel) on top of the Fundamental Pitch Extractor at the National Centre for the Performing Arts (Mumbai) in 1983
This impressive classification has been obtained by statistical analysis of static representations of raga performance. This means that the same result would be obtained by playing the sound file in reverse, or even by slicing it into segments reassembled in a random order… Music is a dynamic phenomenon that cannot be reduced to tonal "intervals". Therefore, subsequent research into the representation of the melodic lines of raga — once it could be efficiently processed by 100% digital computing — led to the concept of Music in Motion, i.e. synchronising graphs with sounds so that the visuals reflect the music as it is being heard, arguably the only appropriate"notation" for raga (Van der Meer & Rao 2010; Van der Meer 2020).
This graph model is probably a great achievement as an educational and documentary tool, indeed the environment I dreamed of when designing the Melodic Movement Analyser. However, to promote it as a theoretical model is the continuation of a western selective bias. As far as I know, no Indian music master has ever attempted to describe the intricacies of raga using hand-drawn melograms, although they could. The fascination with technology — and western 'science' in general — is no indication of its relevance to ancient Indian concepts.
Music is judged by ears. Numbers, charts and graphs are merely tools for interpreting and predicting sound phenomena. Therefore, a theory of music should be judged by its ability to produce musical sounds via predictive model(s). This approach is called analysis by synthesis in Daniel Hirst's book on speech prosody. (Hirst, 2022, forthcoming, p. 137):
Analysis by synthesis involves trying to set up an explicit predictive model to account for the data which we wish to describe. A model, in this sense, is a system which can be used for analysis — that is deriving a (simple) abstract underlying representation from the (complicated) raw acoustic data. A model which can do this is explicit but it is not necessarily predictive and empirically testable. To meet these additional criteria, the model must also be reversible, that is it must be possible to use the model to synthesise observable data from the underlying representation.
This is the raison d'être for the following investigation.
Microtonal framework
The "flexible" model derived from the theoretical model of Natya Shastra (see The Two-vina experiment) rejects the claim of a precise frequency ratio for the harmonic major third classified in ancient literature as anuvadi (asonant). This amounts to admitting that the syntonic comma (pramāņa ṣruti in Sanskrit) could take any value between 0 and 56.8 cents.
Let us look at some graphical representations (from the Bol Processor) to illustrate these points.
The basic framework of musical scales, according to Indian musicology, is a set of 22 tonal positions in the octave called shruti-s in ancient texts. Below is the framework displayed by the Bol Processor (microtonal scale "grama") with a 81/80 syntonic comma. The names of the positions "r1_", "r2_", etc. follow the constraints of lower case initials and the addition of an underscore to distinguish octave numbers. Positions "r1" and "r2" are two ways of locating komal Re ("Db" or "re bemol"), while "r3" and "r4" denote shuddha Re ("D" or "re"), etc.
The "grama" scale, which displays 22 shruti-s according to the model of Natya Shastra, with an 81/80 syntonic comma
These 22 shruti-s can be heard on the page Just intonation, a general framework, bearing in mind (see above) that this is a framework and not a scale. No musician would ever attempt to play or sing these positions as "notes"!
What happens if the value of the syntonic comma is changed? Below is the same framework with a comma of 0 cent. In this case, any "harmonic position" — one whose fraction contains a multiple of 5 — moves to its nearest Pythagorean neighbour (only multiples of 3 and 2). The result is a "Pythagorean tuning". At the top of the circle, the remaining gap is a Pythagorean comma. The positions are slightly blurred because of the mismatches associated with a very small interval (the schisma).
The "grama scale" of 22 shruti-s with a syntonic comma of 0 cent.
Below is the framework with a syntonic comma of 56.8 cents (its upper limit):
The "grama scale" of 22 shruti-s with a syntonic comma of 56.8 cents.
In this representation, "harmonic major thirds" of 351 cents would most likely sound "out of tune" because the 5/4 ratio yields 384 cents. In fact, "g2" and "g3" are both distant by a quarter tone between Pythagorean "g1" (32/27) and Pythagorean "g4" (81/64). Nevertheless, the internal consistency of this framework (counting perfect fifths in blue) makes it suitable for constructing musical scales.
Between these limits of 0 and 56.8 cents, the graphic representation of the scales and their internal tonal structure remain unchanged, bearing in mind that the size of the major-third intervals is determined by the syntonic comma.
Construction of scale types
Manuscript of the description of Zarlino's "natural" scale
The model taken from Bharata's Natya Shastra is not an obvious reference for prescribing raga intonation, as this musical genre came into existence a few centuries later.
Most of the background knowledge required for the following presentation is borrowed from Bose (1960) and my late colleague E. James Arnold who published A Mathematical model of the Shruti-Swara-Grama-Murcchana-Jati System (Journal of the Sangit Natak Akademi, New Delhi 1982). Arnold studied Indian music in Banaras and Delhi in the 1970s and the early 1980s.
Bose was convinced (1960 p. 211) that the scale called Kaishika Madhyama was equivalent to a "just-intonation" seven-degree scale of western musicology. In other words, he took it for granted that the 5/4 frequency ratio (harmonic major third) should be equivalent to the 7-shruti interval, but this statement had no influence on the rest of his analysis.
Arnold (right) and Bel (left) demonstrating shruti-s at the international East-West music conference, Bombay 1983
Arnold (1982 p. 17) immediately used integer ratios to construct intervals with the fixed syntonic comma (81/80), but, as suggested above, this does not affect his model in terms of its structural description. He insisted on setting up a "geometric model" rather than a speculative description based on numbers, as many authors (e.g. Alain Daniélou) had attempted. The most innovative aspect of Arnold's study was the use of a circular sliding model to illustrate the matching of intervals in transposition processes (murcchana-s) - see page The Two-vina experiment.
In reality, it would be more convenient to continue to express all intervals in numbers of shruti-s, in accordance with the ancient Indian theory, but a machine needs metric data to draw graphics of scales. For this reason, we show graphs with a syntonic comma of 81/80, keeping in mind the possibility of changing this value at will.
Sa-grama and Ma-grama according to Natya Shastra. Red and green segments indicate perfect-fifth consonance. Underlined note names indicate 'flat' positions.
The 22-shruti framework offers the possibility of constructing 211 = 2048 chromatic scales, of which only 12 are "optimally consonant", i.e. contain only one wolf fifth (smaller by 1 syntonic comma = 22 cents).
The building blocks of the tonal system according to traditional Indian musicology are two seven-degree scales called Ma-grama and Sa-grama. Bose (1960 p. 13) writes: the Shadja Grāma developed from the ancient tetrachord in which the hymns of the Sāma Veda were chanted. Later on another scale, called the Madhyama Grāma, was added to the secular musical system. The two scales (Dorian modes, in western terminology) differ in the position of Pa ("G" or "sol") which may differ by a syntonic comma (pramāņa ṣruti). In the Sa-grama, the interval Sa-Pa is a perfect fifth (13 shruti-s) whereas in the Ma-grama it is a wolf fifth (12 shruti-s). Conversely, the interval Pa-Re is a perfect fifth in Ma-grama and a wolf fifth in Sa-grama.
Bharata used the Sa-grama to expose his thought experiment (The Two vinas) aimed at determining the sizes of shruti-s. He then introduced two additional notes: kakali Nishada (komal Ni or "Bflat") and antara Gandhara (shuddh Ga or "E") to obtain a nine-degree scale from which "optimally consonant" chromatic scales could be derived from modal transpositions (murcchana). The process of constructing these 12 chromatic scales, which we named "Ma01", "Ma02"… "Sa01", "Sa20", etc., is explained on the page Just intonation, a general framework.
The selection of notes in each chromatic scale produces 5 to 7 note melodic types. In the Natya Shastra these melodic types are called jāti. These can be seen as the ancestors of ragas, although their lineages and structures are only speculative (read on). The term thāṭ (pronounced 'taat') — translated as 'mode' or 'parent scale' — was later adopted, each thāṭ being called by the name of a raga (see Wikipedia). Details of the process, terminology and surveys of subsequent musicological literature can be found in publications by Bose and other scholars.
The construction of the basic scale types is explained by Arnold (1982 p. 37-38). The starting point is the chromatic Ma-grama in its basic position — namely "Sa_murcchana" in the "-to.12_scales" tonality resource file. This scale can be visualised, using Arnold's sliding model, by placing the S note of the inner wheel on the S of the outer crown :
The Ma-grama chromatic scale in its basic position named "Sa_murcchana'
This yields the following intervals:
The Ma-grama chromatic scale in its basic position and with notes labeled in English
"Optimal consonance" is illustrated by two features: (1) there is only one wolf fifth (red line) in the scale — between D and G —, and (2) each note is connected to another note by a perfect fifth (blue line). This consonance is of paramount importance to Indian musicians. Consonant intervals are casually placed in melodic phrases to enhance the "flavour" of their notes, and there should be no wolf fifth in the scale.
Note that the Ma-grama chromatic scale has all its notes in their lower enharmonic positions.
The Ma-grama chromatic scale has been renamed "Sa_murcchana" here, because 'S' of the moving wheel is opposite the 'S' of the fixed crown. The note names have been converted (with a single click) to the Indian convention. Note that the key numbers have also been (automatically) fixed to match only the labelled notes. In this way, the upper "sa" is assigned key 72 instead of 83 in the "Ma01" scale shown on the Just intonation, a general framework page. The tonal content of this "Sa_murchana" is shown in this table:
Selecting only "unaltered" notes in "Sa_murcchana" — sa, re, gak, ma, pa, dha, nik — results in the "kaphi1" scale type named after the raga Kaphi (pronounced 'kafi'). This can be associated with a D-mode (Dorian) in western musicology.
This scale type is saved under the name "kaphi1" because there will be another version of the Kaphi scale type.
In the "Sa_murcchana" the selection of notes can be done in two different ways:
Select antara Gandhara (namely "ga") in place of the scale's Gandhara (namely "gak"), thereby raising it by 2 shruti-s. This will result in a vikrit (modified) scale type, namely "khamaj1", associated with raga Khamaj.
Select both antara Gandhara and kakali Nishada (namely "ni" in place of "nik" raised by 2 shruti-s) which creates the "bilaval1" scale type associated with raga Bilaval.
A scale type named "bilaval3" matching Zarlino's "natural" scale
This "bilaval1" scale type is one of three versions of the Bilaval created by the murcchana process. Although it corresponds to the scale of the white keys on a keyboard instrument, it is not the usual "just intonation" diatonic scale, because of a wolf fifth between "sa" and "pa".
An alternative Bilaval scale type called "bilaval3" (extracted from the "Ni1_murcchana", see below) corresponds to Giozeffo Zarlino's "natural" scale — see Just intonation: a general framework. This is not to be confused with Zarlino's meantone temperament discussed on the Microtonality page.
An incompletely consonant scale type
A fourth option: raising "nik" to "ni" and keeping "gak", would produce a scale type in which "ni" has no consonant relationship with any other note in the scale. This option is therefore discarded from the model.
Each murcchana of the Ma-grama chromatic scale produces at least three types of scale by selecting unaltered notes, antara Gandhara or both antara Gandhara and kakali Nishada.
For example, to create the "Ni1_murcchana", open the "Sa_murcchana" page and enter "nik" (i.e. N3) as the note to be placed on "sa".
Raga scale types are stored in the "-to.raga" tonality resource file. Images are available with a single click and scale structures are compared on the main page.
The entire process is summarized in the following table (Arnold 1982 p. 38):
Step
Ma-grama chromatic murcchana starting from
Shuddha grama
Vikrit grama (antara)
Vikrit grama (antara + kakali)
1
Sa
kaphi1
khamaj1
bilaval1
2
Ma1
khamaj2
bilaval2
kalyan1
3
Ni1
bilaval3
kalyan2
marva1
4
Ga1
kalyan3
marva2
purvi1
5
Dha1
marva3
purvi2
todi1
6
Re1
purvi3
todi2
7
Ma3
todi3
lalit1 bhairao1
8
Ni3
lalit2 bhairao2 bhairavi1
9
Ga3
todi4 bhairavi2
10
Dha3
bhairavi3
asavari1
11
Re3
bhairavi4
asavari2
kaphi2
12
Pa3
asavari3
kaphi3
khamaj3
Scale types of the extended grama-murcchana series (Arnold 1982)
The use of this table deserves a graphical demonstration. For example, let us create a scale type "kalyan1" based on the "Ma1_murcchana". The table says that both "antara and kakali" should be selected. This means "antara Gandhara" which is "ga" in place of "gak" in the Ma-grama scale, and "kakali Nishada" which is "ni" in place of "nik" in the Ma-grama scale. This process is clear in the moving wheel model:
Selecting notes to create the scale type "kalyan1" from the "Ma1_murcchana" of the chromatic Ma-grama. "M1" is set to "S". Then take the standard intervals from the Ma-grama moving wheel, replacing G1 with G3 and N1 with N3 as shown in the table.
To make this selection and export the "kalyan1" scale type, fill in the form on the "Ma1_murcchana" page as shown in the image.
Below is the resulting scale type.
The "kalyan1" scale type
Remember that note positions expressed as whole-number frequency ratios are only a matter of convenience for readers familiar with western musicology. It would be more appropriate to follow the Indian convention of counting intervals in numbers of shruti-s. In this example, the interval between 'sa' and 'ma' is increased from 9 shruti-s (perfect fourth) to 11 shruti-s (tritone).
Arnold's model is an extension of the murcchana system described in Natya Shastra because it accepts murcchana-s starting from notes that do not belong to the original (7-degree) Ma-grama, taken from its "chromatic version": Dha1, Re1, Ma3, Ni3, Ga3. This extension is necessary to create scale types for Todi, Lalit and Bhairao that include augmented seconds.
In his 1982 paper (p. 39-41) Arnold linked his classification of scale types to the traditional list of jāti-s, the "ancestors of ragas" described in Sangita Ratnakara of Śārṅgadeva (Shringy & Sharma, 1978). Seven jāti-s are cited (p. 41), each of them being derived from a murcchana of the Ma-grama on one of its shuddha swara-s (basic notes).
Every jāti is associated with a note of relaxation (nyasa swara). In contemporary ragas, the nyasa swara is often found at the end of a phrase or a set of phrases. In Arnold's interpretation, the same should define the murcchana from which the melodic type (jāti) is born. Since the names of the shuddha jatis are in fact tied to their nyasa swaras, this also suggests that they should be tied to the murcchanas belonging to those nyasa swaras (Arnold 1982 p. 40).
Performance times associated with murcchana-s of the Ma-grama, according to Arnold (1985)
In other publications (notably Arnold & Bel 1985), Arnold used the cycle of 12 chromatic scales to suggest that the enharmonic positions of the notes could express states of tension or release linked to the changing ambience of the circadian cycle, thereby providing an explanation for the performance times assigned to traditional ragas. Low enharmonic positions would be associated with darkness and higher ones with daylight. Thus, ragas constructed using the Sa murcchana of the Ma-grama chromatic scale (all low positions, step 1) could be interpreted as being near midnight, while those that mix low and high positions (step 7) would carry the tensions of sunrise and sunset. Their sequence is a cycle because in the table above it is possible to jump from step 12 to step 1 by lowering all note positions by one shruti. This circularity is implied by the process called sadja-sadharana in musicological literature (Shringy & Sharma 1978).
A list of 85 ragas with performance times predicted by the model can be found in Arnold & Bel (1985). This hypothesis is indeed interesting — and it does hold for many well-known ragas — but we have never found the time to undertake a survey of musicians' statements about performance times which might have assessed its validity.
Practice
Given scale types stored in the "-to.raga" tonality resource file, the Bol Processor can be used to check the validity of scales by playing melodies of ragas they are supposed to embody. It is also interesting to use these scales in musical genres unrelated with North Indian raga and "distort" them in every conceivable direction…
Choice of a raga
Todi Ragini, Ragamala, Bundi, Rajasthan, 1591 Public domain
We will take up the challenge of matching one of the four "todi" scales with two real performances of raga Todi.
Miyan ki todi is presently the most important raga of the Todi family and therefore often simply referred to as Todi […], or sometimes Shuddh Todi. Like Miyan ki malhar it is supposed to be a creation of Miyan Tansen (d. 1589). This is very unlikely, however, since the scale of Todi at the time of Tansen was that of modern Bhairavi (S RG M P DN), and the name Miyan ki todi first appears in 19th century literature on music.
Joep Bor (1999)
This choice is challenging for a number of reasons. Firstly, the four variants of "todi" scales are derived from a (questionable) extension of the grama-murcchana system. Then, the notes "ni" and "rek", "ma#" and "dhak" are close to the tonic "sa" and the dominant "pa" and could be "attracted" by the tonic and dominant, thus disrupting the "geometry" of the theoretical scales in the presence of a drone.
Finally, and most importantly, the performer's style and personal choices are expected to be at odds with this theoretical model. As suggested by Rao and van der Meer (2010, p. 693):
[…] it has been observed that musicians have their own views on intonation, which are handed down within the tradition. Most of them are not consciously aware of academic traditions and hence are not in a position to express their ideas in terms of theoretical formulations. However, their ideas are implicit in musical practice as musicians visualize tones, perhaps not as fixed points to be rendered accurately every time, but rather as tonal regions or pitch movements defined by the grammar of a specific raga and its melodic context. They also attach paramount importance to certain raga-specific notes within phrases to be intoned in a characteristic way.
We had already taken up the Todi challenge with an analysis of eight occurrences using the Melodic Movement Analyser (Bel 1988b). The analyser had produced streams of accurate pitch measurements which, after being filtered as selective tonagrams, were subjected to statistical analysis (Bel 1984; Bel & Bor 1984). The events included 6 performances of raga Todi and 2 experiments in tuning the Shruti Harmonium.
The four "best" tuning schemes for raga Todi (Bel 1988b p. 16) The second column is the standard deviation on intervals, and the third column is the standard deviation on positions relative to the tonic
The MMA analysis revealed a relatively high consistency of note positions, with standard deviations better than 6 cents for all notes except "ma#", for which the deviation rose to 10 cents, still an excellent stability. Comparison of these results with the 'flexible' grama-murcchana model showed less than 4 cent standard deviation of intervals for 4 different scales in which the syntonic comma (pramāņa ṣruti) would be set at 6, 18, 5 and 5 cents respectively. In discussing tuning schemes, Wim van der Meer even suggested that musicians could "solve the problem" of a "ni-ma#" wolf fifth by tempering fifths over the "ni-ma#-rek-dhak" cycle (Bel 1988b p. 17).
Our conclusion was that no particular "tuning scheme" could be taken for granted on the basis of "raw" data. It would be more realistic to study a particular performance by a particular musician.
Working with the Shruti Harmonium naturally led us to meet Kishori Amonkar (1932-2017) in 1981. She was a leading exponent of Hindustani music, having developed a personal style that claimed to transcend classical schools (gharanas).
Most interestingly, she performed accompanied by a swara mandal (see picture), a zither that she tuned for each raga. Unfortunately we were not equipped to measure these tunings with sufficient accuracy. So we used the Shruti Harmonium to programme the intervals according to her instructions.
This experiment did not go well for two reasons. A technical one: on that day, a frequency divider (LSI circuit) on the harmonium was defective; until it was replaced, some programmed intervals were inaccessible. A musical one: the experiment showed that this precise harmonium was not suitable for tuning experiments with Indian musicians. The frequency ratios had to be entered on a small keyboard, a use too far removed from the practice of string tuning. This was a major incentive to design and build our "microscope for Indian music", the Melodic Movement Analyser (MMA) (Bel & Bor 1984).
In the following years (1981-1984) MMA experiments took up all our time and revealed the variability (but not the randomness) of raga intonation. For this reason we could not return to tuning experiments. Today, a similar approach would be much easier with the help of the Bol Processor BP3… if only the expert musicians of that time were still alive!
Choice of a scale type
We need to decide between the four "todi" scale types produced by the murcchana-s of the Ma-grama chromatic scale. For this we can use the measurements of the Melodic Movement Analyser (Bel 1988b p. 15). Let us take average measurements and those of a performance by Kishori Amonkar. These are note positions (in cents) against the tonic "sa".
Note
Average
Standard deviation
Kishori Amonkar
rek
95
4
96
gak
294
4
288
ma#
606
10
594
pa
702
1
702
dhak
792
3
792
(dhak)
806
3
810
ni
1107
6
1110
The "dhak" between brackets is a measurement in the low octave
For the moment we will ignore "dhak" in the lower octave as it will be dealt with separately. Let us compare Kishori Amonkar's results with the four scale types:
Note
Kishori Amonkar
todi1
todi2
todi3
todi4
rek
96
89
89
89
112
gak
288
294
294
294
294
ma#
594
590
590
610
610
pa
702
702
702
700
702
dhak
792
792
792
792
814
ni
1110
1088
1109
1109
1109
Scale type "todi2", the best match to a performance of Kishori Amonkar
There are several ways of finding the best match for musical scales: either by comparing scale intervals or by comparing note positions in relation to the base note (tonic). Because of the importance of the drone, we will use the second method. The choice is simple here. Version "todi1" can be discarded because of "ni", the same with "todi3" and "todi4" because of "ma#". We are left with "todi2" which has a very good match, even with the measurements of performances by other musicians.
Adjustment of the scale
The largest deviations are on "rek" which was sung 7 cents higher than the predicted value and "gak" which was sung 6 cents lower. Even a 10-cent deviation is practically impossible to measure on a single note sung by a human, including a high-profile singer like Kishori Amonkar; the best resolution used in speech prosody is greater than 12 cents.
Any "measurement" of the MMA is an average of values along the rare stable melodic steps. It may not be representative of the "real" note due to its dependence on note treatment: if the note's approach is in a range on the lower/higher side, the average will be lower/higher than the target pitch.
Therefore, it would be acceptable to declare that the scale type "todi2" corresponds to the performance. However, let us show how the model can be modified to reflect the measurements more accurately.
First we duplicate "todi2" to create "todi-ka" (see picture). Note positions are identical in both versions.
Looking at the picture of the scale (or the numbers on its table), we can see that all the note positions except "ma#" are Pythagorean. The series to which a note belongs is indicated by the colour of its pointer: blue for Pythagorean and green for harmonic.
Modified "todi2" scale matches the measured "ma#"
This means that changing the size of the syntonic comma — in strict accordance with the grama-murcchana model — will only adjust "ma#". To change the position of "ma#" from 590 to 594 cents (admittedly a ridiculous adjustment) we need to reduce the size of the syntonic comma by the same amount. This can be done at the bottom right of the "todi-ka" page, changing the syntonic comma to 17.5 cents, a change confirmed by the new image.
A table on the "todi-ka" page shows that the "rek-ma#" interval is still considered a "perfect" fifth, even though it is smaller by 6 cents.
It may not be obvious whether the syntonic comma needs to be increased or decreased to fix the position of "ma#", but it is easy to try the other way in case the direction was wrong.
Final version of "todi2" adjusted to Kishori Amonkar's performance in the medium octave (4)
Other adjustments deviate from the "pure" model. These result in changing frequency ratios in the table on the "todi-ka" page. An increase in "rek" from 89 to 96 cents requires an increase of 7 cents, corresponding to a ratio of 2(7/1200) = 1.00405. This changes the position of "rek" from 1.053 to 1.057.
In the same way, a reduction in "gak" from 294 to 288 cents requires a reduction of 6 cents, giving a ratio of 2(-6/1200) = 0.9965. This brings the position of "gak" from 1.185 to 1.181.
Fortunately, these calculations are done by the machine: use the "MODIFY NOTE" button on the scale page.
The picture shows that the information of "rek" and "gak" belonging to Pythagorean series (blue line) is preserved. The reason for this is that whenever a frequency ratio is modified by its floating-point value, the machine checks whether the new value is close to an integer ratio of the same series. For example, changing "rek" back to 1.053 would restore its ratio to 256/243. Accuracy better than 1‰ is required for this adjustment.
A tuning scheme for this scale type is suggested by the machine. The graphical representation shows that "ni" is not consonant with "ma#" as their interval is 684 cents, close to a wolf fifth of 680 cents. Other notes are arranged on two cycles of perfect fifths. Interestingly, raising "rek" by 7 cents brought the "rek-ma#" fifth back to its perfect size (702 cents).
Again, these are meaningless adjustments for a vocal performance. We are just showing what to do when necessary.
The "todi2" scale type with "dhak" adjusted for the low octave (3)
The remaining adjustment will be that of the "dhak" in the lower octave. To do this, we will duplicate the previous scale, renaming it "todi_ka_4" to indicate that it is designed for the 4th octave. In the new scale, called "todi_ka_3", we raise "dhak3" by 810 -792 = 18 cents.
This raises its position from 1.58 to 1.597. Note that this puts it exactly in a position in the harmonic series since the syntonic comma is 17.5 cents.
In addition, "dhak-sa" is now a harmonic major third — with a size of 390 cents to match the 17.5 cents comma. This is certainly significant in the melodic context of this raga, which is one reason why all the musicians made the same size adjustment in their tuning experiments.
This case is a simple illustration of raga intonation as a trade-off between harmonicity with respect to the drone and the need for consonant melodic intervals. It also shows that the Shruti Harmonium could not follow the practice of the musicians because its scale ratios were replicated in all octaves.
Choice of a recording
We don't have the recording on which the MMA analysis was made. One problem with old tape recordings is the unreliability of the speed of tape transport. Also, on a long recording, the frequency of the tonic can change slightly due to variations in room temperature, which affects the instruments — including the dilation of the tape…
In order to try to compare scales a with real performances, and to examine extremely small "deviations" (which have little musical significance, in any case), it is therefore safer to work with digital recordings. This was the case with Kishori Amonkar's Todi, recorded in London in early 2000 for the Passage to India collection, and available free of copyright (link on Youtube). The following is based on this recording.
Setting up the diapason
Let us create the following "-gr.tryRagas" grammar:
-se.tryRagas -to.raga
S --> _scale(todi_ka_4,0) sa4
Adjusting note convention in "-se.tryRagas"
In "-se.tryRagas" the note convention should be set to "Indian" so that "sa4" etc. is accepted even when no scale is specified.
The grammar calls "-to.raga", which contains the definitions of all the scale types created by the procedure described above. Unsurprisingly, it does not play the note "sa" at the frequency of the recording. We therefore need to measure the tonic in order to adjust the frequency of "A4" (diapason) in "-se.tryRagas" accordingly. There are several ways to do this with increasing accuracy.
A semitone approximation can be obtained by comparing the recording with notes played on a piano or any electronic instrument tuned with A4 = 440 Hz. Once we have found the key that is closest to "sa" we calculate its frequency ratio to A4. If the key is F#4, which is 3 semitones lower than A4, the ratio is r = 2(-3/12) = 0.840. To get this frequency on "sa4" we would therefore have to adjust the frequency of the diapason (in "-se.tryRagas") to:
440 x r x 2(9/12) = 440 x 2((9-3)/12) = 311 Hz
A much better approximation is obtained by extracting a short occurrence of "sa4" at the very beginning of the performance:
A short occurrence of "sa4" in the beginning of Kishori Amonkar's raga Todi
Then select a seemingly stable segment and extend the time scale to get a visible signal:
Expansion of a very brief "stable" occurrence of "sa4"
This sample contains 9 cycles for a duration of 38.5 ms. The fundamental frequency is therefore 9 x 1000 / 38.5 = 233.7 Hz. Consequently, adjust the diapason in "-se.tryRagas" to 233.7 x 2(9/12) = 393 Hz.
The last step is a fine tuning by comparing the production of the notes in the grammar by ear with the recording of "sa4" played in a loop. To do this, we produce the following sequence:
These are eight occurrences of "sa4" played at slightly increasing pitches adjusted by the pitchbend. First make sure that the pitchbend is measured in cents: this is specified in the instrument "Vina" called by "-.raga" and the Csound orchestra file "new-vina.orc".
Listening to the sequence may not reveal any pitch differences, but these will be apparent to a trained ear when superimposed on the recording:
Recording on "sa4" overlaid with a sequence of "sa4" at slightly rising pitches. Which is in tune? This is a stereo recording. Use headphones to hear the song and the sequence of plucked notes on separate channels
One of the four occurrences sounds best in tune. Let us assume that the best match is on _pitchbend(+10). This means that the diapason should be raised by 10 cents. Its new frequency would therefore be 393 x 2(10/1200) = 395.27 Hz.
In fact the best frequency is 393.22 Hz, which means that the second evaluation (which gave 393 Hz) was fair — and the singers' voices very reliable! Now we can check the frequency of "sa4" on the Csound score:
These methods could actually be summarised by the third: use the grammar to produce a sequence of notes in a wide range to determine an approximate pitch of "sa4" until the small range for the pitchbend (± 200 cents) is reached. Then play sequences with pitchbend values in increasing accuracy until no discrimination is possible.
In a real exercise it would be safe to check the measurement of "sa4" against occurrences in several parts of the recording.
This approach is too demanding in terms of accuracy for the analysis of a vocal performance, but it will be noticeable when working with a long-stringed instrument such as the rudra veena. We will demonstrate this with Asad Ali Kan's performance.
Matching phrases of the performance
We are now ready to check whether note sequences produced by the model would match similar sequences in the recording.
The following demo uses the BP3's interface to Csound, which until recently was the only way to create microtonal intervals. The same can now be done using MIDI microtonality, both in real time and with MIDI files. It is possible to capture MIDI messages from a keyboard and send them to a MIDI device with corrections made by a microtonal scale. In this way, there is no need for the creation of grammars for these tests.
First we try a sequence with the emphasis on "rek". The following sequence of notes is produced by the grammar:
Below is the phrase sung by the musicians (position 0'50") then repeated in superposed form with the sequence produced by the grammar:
A phrase with emphasis on "rek" sung by Kishori Amonkar, then reproduced in superposed form with the sequence of notes produced by the grammar using scale "todi_ka_3" This is a stereo recording. Use headphones to hear the song and sequence of plucked notes on separate channels
In this example, the scale "todi_ka_3" has been used because of the occurrence of short instances of "dhak3". The position of "rek" is identical in the 3d and 4th octaves. The blending of the voice with the plucked instrument is notable in the last held note.
In the next sequence (location 1'36") the position of "gak4" is estimated. The grammar is as follows:
A phrase targeting "gak" repeated in superimposition with the sequence of notes produced by the grammar using the scale "todi_ka_4"
This time, the scale "todi_ka_4" was chosen, even though it had no effect on the intonation since "dhak" is missing.
A word about building the grammar: we looked at the signal of the recorded phrase and measured the (approximate) duration of the notes: 1.37s, 3.1s, 1.8s, 7.5s, 4.4s. We then converted these durations into integer ratios — fractions of the basic tempo whose period is exactly 1 second, as specified in "-se.tryRagas": 137/100, 31/10 etc.
Signal of the previous recorded phrase
Below is a pianoroll of the sequence produced by the grammar:
Pianoroll of the note sequence produced by the grammar
No we try a phrase with a long pause on "dhak3" (location 3'34"), which proves that the scale "todi_ka_3" perfectly matches this occurrence of "dhak":
S --> KishoriAmonkar6 KishoriAmonkar6 --> _scale(todi_ka_4,0) 28/100 {29/100,ma#4}{40/100,dhak4}{63/100,ni4 sa5 ni4}{122/100,dhak4}{64/100,pa4}{83/100,ma#4}{44/100,pa4}{79/100,dhak4}
A light touch of "pa"
Pitch accuracy is no surprise in Kishori Amonkar's performances. With a keen awareness of "shruti-s", she would sit on the stage and pluck her swara mandal, carefully tuned for each raga.
A test with the rudra veena
Asad Ali Khan playing the rudra veena
Asad Ali Khan (1937-2011) was one of the last performers of the rudra veena at the end of the 20th century and a very supportive participant in our scientific research on raga intonation.
An outstanding presentation of Asad Ali Khan and his idea of music is available in a film by Renuka George.
Pitch accuracy on this instrument is such that we have been able to identify tiny variations that are controlled and significant in the context of the raga. Read for example Playing with Intonation (Arnold 1985). To measure vibrations below the audible range, we occasionally placed a magnetic pickup near the last string.
Below are the statistics of the Melodic Movement Analyser measurements of the raga Miyan ki Todi interpreted by Asad Ali Khan in 1981. The second column contains measurements of his tuning of the Shruti Harmonium during an experiment. The columns on the right show the predicted note positions according to the grama-murchana model with a syntonic comma of ratio 81/80. As shown in Kishori Amonkar's performance above, "dhak" can take different values depending on the octave.
Note
Asad Ali Khan performing
Asad Ali Khan tuning
todi1
todi2
todi3
todi4
rek
99
100
89
89
89
112
gak
290
294
294
294
294
294
ma#
593
606
590
590
610
610
pa
702
702
702
702
700
702
dhak3
795
794
792
792
792
814
dhak2
802
ni
1105
1108
1088
1109
1109
1109
Again, the best match would be the "todi2" scale with a syntonic comma of 17.5 cents. We created two scales, "todi_aak_2" and "todi_aak_3" for the 2nd and 3rd octaves.
Adjustments of the "todi2" scale for Asad Ali Kan's performance on the rudra veena. Low octave on the left and middle octave on the right.
The scale constructed during the Shruti Harmonium experiment is less relevant because of the influence of the experimenter playing the scale intervals with a low-attracting drone (produced by the machine). In his attempt to resolve the dissonance in the scale — which always contained a wolf fifth and several Pythagorean major thirds — Khan saheb ended up with a tuning identical to the initial one, but one comma lower. This was not a musically significant situation!
Tuning scheme for "todi_aak_2"
The scale "todi_aak_2" (in the low octave) contains interesting intervals (harmonic major thirds) which allows us to anticipate effective melodic movements. The tuning scheme summarises these relationships.
We now take fragments of Asad Ali Khan's performance of Todi (2005) available on Youtube (follow this link).
The performance begins in the lower octave, so with the scale "todi_aak_2". The frequency of Sa was measured at 564.5 Hz using the method described above.
Let us start with a simple melodic phrase repeated twice, the second time superimposed on the note sequence produced by the grammar.
A phrase from the raga Todi by Asad Ali Khan repeated twice, the second time superimposed on the sequence of notes produced by the grammar. This is a stereo recording. Use headphones to hear the song and the sequence of plucked notes on separate channels
This grammar contains an unusual character '&', which is used to concatenate sound objects (or notes) across the boundaries of polymetric expressions (between curly brackets). This makes it possible to play the final "rek3" and "sa3" as continuous notes. This continuity can be seen in the graph below:
The end of the phrase, showing "rek3" and "sa3" as continuous notes
It is time to make sure that fine tuning and adjusting scales are more than just an intellectual exercise… After all, the main difference between scales "todi_aak_2" and "todi_aak_3" is that "dhak" is 7 cents higher in "todi_aak_2", which means a third of a comma! To check the effect of the fine-tuning, listen to the overlay twice, once with "todi_aak_3" and the second time with "todi_aak_2":
The same "dhak2" with a note made with "todi_aak_3" and the second time with "todi_aak_2"
To check the difference between these two versions of "dhak2", we can play them one after the other and then superimpose them:
The two versions of "dhak2" in sequence then superimposed
With fundamental frequencies of 132.837 Hz and 133.341 Hz, the beat frequency (of the sine waves) would be 133.341 - 132.837 = 0.5 Hz. The perceived beat frequency is higher because of the interference between the higher partials. This suggests that a difference of 7 cents is not irrelevant in the context of notes played by a long-stringed instrument (Arnold 1985).
As "sa2" is outside the range of the Csound instrument "Vina", it is played here as "rek2" with a pitchbend correction of one semitone.
Low octave phrase repeated with attempted superimposition of a note sequence
The rendering of phrases in the lower octave is very approximate because of the predominance of meend (pulling the string). Some effects can be better imitated using performance controls — see Sarasvati Vina, for example — but this requires a mastery of the real instrument in order to design patterns of musical "gestures" rather than sequences of sound events… Imitating the melodic intricacy of a raga is not the subject of this page; we are merely checking the relevance of scale models to the "tonal skeleton" of ragas.
Accidental notes
Raga scales extracted from murchana-s of the Ma-grama chromatic scale (see above) contain only notes that are presumed to belong to the raga. They cannot accommodate accidental notes or the scales used in the common practice of mixing ragas.
Let us take, for example, a fragment of the previous example, which was poorly represented by the sequence of notes produced by the grammar. (We learn from our mistakes!) We might be tempted to replace the expression {38/10, pa2 gak2 pa2 dhak2 _ pa2 _} with {38/10, pa2 ga2 pa2 dhak2 _ pa2 _}, using "ga2" which does not belong to the scale "todi_aak_2". Unfortunately, this results in an error message:
ERROR Pitch class ‘4’ does not exist in _scale(todi_aak_2). No Csound score produced.
This amounts to saying that scale "todi2" contains no mapping of key #64 to "ga" — nor key # 65 to "ma", see figure.
To solve this problem we can recall that the scale "todi2" was extracted from "Re1_murcchana". The latter contains all the notes of a chromatic scale in addition to those extracted. Therefore it is sufficient to replace "_scale(todi_aak_2,0)" with "_scale(Re1_murcchana,0)" in this section:
The scale editor takes care of assigning a key number to each note based on the chromatic scale if a standard English, Italian/French or Indian note convention is used. In other cases this mapping should be done by hand. Designers of microtonal scales should be aware of key mappings when using custom names for "notes".
Another problem is that in "todi_aak_2" note "dhak" has been raised from 792 to 810 cents, which is not its value in "Re1_murcchana". This can be fixed by creating another variant of the scale with this correction, or simply using the pitchbend to modify "dhak2" — in which case the same pitchbend could have been used to raise "gak2" in the first place.
Finally, the best way to avoid this problem would be to use the source chromatic scale "Re1_murcchana", a murcchana of Ma-grama, to construct raga scales even though some notes will never be used.
To conclude…
This whole discussion has been technical. There is no musical relevance in trying to associate plucked notes with very subtly ornamented melodic movements. The last excerpt (2 repetitions) will prove — if it is needed at all — that the intonation of Indian ragas is much more than a sequence of notes in a scale, whatever its accuracy:
This melodic phrase is repeated 2 times to check its superposition with the sequence of notes produced by the grammar This is a stereo recording. Use headphones to hear the song and the sequence of plucked notes on separate channels
For a more convincing demo, instead of Csound, I recommend using MIDI microtonality in real time to capture notes played on a keyboard and send them to a MIDI device with corrections made by the microtonal scale.
Attempting to follow the intricacies of alankara (note treatment) with a simplistic notation of melodic phrases demonstrates the disconnection between 'model-based' experimental musicology and the reality of musical practice. This explains why we have relied on descriptive models (e.g. automatic notation) captured by the Melodic Movement Analyser or computer tools such as Praat, rather than attempting to reconstruct melodic phrases from theoretical models. Experiments with scales deal with the "skeletal" nature of intonation, which is a necessary but not sufficient parameter for describing melodic types.
Bharata. Natya Shastra. There is no currently available English translation of the first six chapters of Bharata’s Natya Shastra. However, most of the information required for this interpretation has been reproduced and commented by Śārṅgadeva in his Sangita Ratnakara (13th century AD).
Bor, J.; Rao, S.; van der Meer, W.; Harvey, J. The Raga Guide. Nimbus Records & Rotterdam Conservatory of Music, 1999. (Book and CDs)
This project began in 1980 with the founding of the International Society for Traditional Arts Research (ISTAR) in New Delhi, India. We had produced joint articles and proposals which enabled us (Arnold and Bel) to receive a grant from the International Fund for the Promotion of Culture (UNESCO). A booklet of ISTAR projects was then printed in Delhi, and a larger team received support from the Sangeet Research Academy (SRA, Calcutta/Kolkata), the Ford Foundation (USA) and later the National Centre for the Performing Arts (NCPA, Bombay/Mumbai).
The following are extracts from letters of support received during this initial period — after the construction of the Shruti Harmonium and during the design of the Melodic Movement Analyser. (ISTAR booklet, 1981 pages 20-22)
In fact, the full potential of this approach can only be realised now, taking advantage of the (virtually unlimited) digital devices that are replacing the hardware we created for this purpose 40 years ago!
The work of Mr. Arnold and Mr. Bel, as much from the theoretical point of view as from the point of view of the practical realization, appears to be one of the best of these last years, as concerns the musical analysis of the classical music of India… — Iégor REZNIKOFF, Director, UER of Philosophy, History of Art and Archeology, Mathematics, University of Paris X - Nanterre.
I consider that this work presents the greatest interest and is capable of considerably advancing the understanding of the problem of the use of micro-intervals in the music of India, and more generally, that of the intervals found in different modal musics. — Gilbert ROUGET, Director of Research at CNRS, in charge of the Department of Ethnomusicology at the Musée de l'Homme, Paris.
The ideas and conceptions of Mr. Arnold and Mr. Bel seem tome to have the utmost interest musically because they rest not just on pure theories; but on a profound understanding of melodic and modal music, etc. The project which Mr. Bel presented to me could bring about a realization much more interesting and effective than that of the various "melographs" which have been proposed… — Émile LEIPP, Director of Research at the CNRS, Director of Laboratoire d'Acoustique, University of Paris VI.
The project entitled "A Scientific study of the modal music of North India" undertaken by E. James Arnold and Bernard Bel is very interesting and full of rich potentials. This collaboration of mathematics and physical sciences as well as engineering sciences on the one hand, and Indology and Indian languages, musicology, as well as applied music on the other hand can be reasonably expected to yield fascinating results. — Dr. Prem Lata SHARMA, Head of the Department of Musicology and Dean of the Faculty of Performing Arts, Banaras Hindu University.
Mr. Arnold's work on the logic of the grama-murcchana system and its 'applications' to current Indian music is a most stimulating and original piece of investigation. Mr. Arnold's research and he and his partner (Mr. Bel)'s work have immense implications for music theory and great value for theoretical study of Indian music. — Bonnie C. WADE, Associate Professor of Music, University of California
Looking forward into the future, it (the Shruti harmonium) opens up a new field to composers who wish to escape from the traditional framework in which they are trapped, by virtue of the multiplicity of its possibilities for various scales, giving hence a new material. — Ginette KELLER, Grand Prize of Rome, Professor of Musical Analysis and Musical Aesthetics, ENMP and CNSM, Paris.
I was astonished to listen to the "shrutis" (microtones) produced by this harmonium which they played according to my suggestion, and I found the 'gandhars', 'dhaivats', 'rikhabs' and 'nikhads' (3rds, 6ths, 2nds and 7ths) of ragas Darbari Kanada, Todi, Ramkali and Shankara to be very correctly produced exactly as they could be produced on my violin. — Prof. V.G. JOG, Violinist, recipient of the Sangeet Natak Akademi Award.
Once again, bravo for your work. When you have a precise idea about the cost of your analyzer, please let me know. I shall be able to propose it to research institutions in Asian countries, and our own research institution, provided that it can afford it, might also acquire such an analyzer for our own work. — Dr. Tran Van KHE, Director of Research, CNRS, Paris.
The equipment which Mr. E.J. Arnold and B. Bel propose to construct in the second stage of the research which they have explained to me seems to be of very great interest for the elucidation of the problems concerning scales, and intonation, as much from the point of view of their artistic and musicological use, as from the theory of acoustics. — Iannis XENAKIS, Composer, Paris.
On electronic instruments such as the Bol Processor, microtonality is the matter of "microtonal tuning", here meaning the construction of musical scales outside the conventional one(s) …
Symbolic-numerical approaches lead to efficient and elegant solutions of constraint satisfaction problems with respect to symbolic and physical durations, …
The complete set of preludes and fugues by J.S. Bach known as The Well-tempered Clavier, books II and II, interpreted with presumably "optimal" tuning schemes …
This paper deals with the scheduling of “sound-objects”, hereby meaning predefined sequences of elementary tasks in a sound processor, with each task mapped to a time-point …
Bol Processor grammars are characterisations of sequential events in terms of substring repetitions, homomorphisms, etc. Parsing techniques, stochastic production and recent developments of BP grammars are briefly described …
A linguistic model of tabla improvisation and evaluation derived from pattern languages and formal grammars has been implemented in the Bol Processor, a software system used in interactive fieldwork with expert musicians …
The first six chapters of Natya Shastra, a Sanskrit treatise on music, dance and drama dating from between 400 BCE and 200 CE, contain the premises of a scale theory that has long attracted the attention of scholars in India and the West. Early interpretations by Western musicologists followed the "discovery" of the text in 1794 by the philologist William Jones. Hermann Helmholtz’s theory of "natural consonance" gave way to many comparative speculations based on phenomena that Indian authors had earlier observed as inherent in the "self-production" (svayambhū) of musical notes (Iyengar 2017 p. 8).
Suvarnalata Rao and Wim van der Meer (2009) published a detailed account of attempts to elucidate the ancient theory of musical scales in the musicological literature, returning to the notions of ṣruti and swara which have changed over time up to present-day musical practice.
Accurate settings of Bel's Shruti Harmonium (1980)
In the second half of the 20th century, experimental work with frequency meters led to contradictory conclusions from the analysis of small samples of musical performances. It was only after 1981 that systematic experiments were carried out in India by the ISTAR team (E.J. Arnold, B. Bel, J. Bor and W. van der Meer) with an electronically programmable harmonium (the Shruti Harmonium) and later with a "microscope" for melodic music, the Melodic Movement Analyser (MMA) (Arnold & Bel 1983, Bel & Bor I985), which fed precise pitch data into a computer to process hours of music selected from historical recordings.
After several years of experimental work, it had become clear that although the intonation of Indian classical music is far from being a random process, it would be dangerous to judge an interpretation of the ancient scale theory on the basis of today's musical data. There are at least three reasons for this:
There are an infinite number of valid interpretations of the ancient theory, as we will show.
The concept of raga, the basic principle of Indian classical music, first appeared in literature around 900 CE in Matanga's Brihaddeshi and underwent gradual development until the 13th century, when Sharangadeva listed 264 ragas in his Sangitratnakara.
Drones were (probably) not in use at the time of Natya Shastra; the influence of the drone on intonation is considerable, if not dominant, in contemporary music performance.
The ancient Indian theory of scales remains useful for its insight into early melodic classification (the jāti system), which may later have given rise to the raga system. It is therefore best thought of as a topological description of tonal structures. Read Raga Intonation for a more detailed account of theoretical and practical issues.
The subject of this page is an interpretation of the experiment of the two vinas described in Chapter XXVIII.24 of the Natya Shastra. An analysis of the underlying model has been published in A Mathematical Discussion of the Ancient Theory of Scales according to Natyashastra (Bel 1988) which the following presentation will make more comprehensive.
The historical context
Bharata Muni, the author(s) of the Natya Shastra, may have heard of the theories of musical scales attributed to the "ancient Greeks". At any rate, Indian scholars were able to borrow these models and extend them considerably because of their real knowledge of arithmetic.
Readers of C.K. Raju — especially his excellent Cultural Foundations of Mathematics (2007) — know that Indian mathematicians/philosophers are not only famous for inventing positional notation which took six centuries to be adopted in Europe… They also laid out the foundations of calculus and infinitesimals, which were later exported to Europe by Jesuit priests from Kerala and borrowed/appropriated by European scholars (Raju 2007 pages 321-373).
The calculus first developed in India as a sophisticated technique to calculate precise trigonometric values needed for astronomical models. These values were precise to the 9th place after the decimal point; this precision was needed for the calendar, critical to monsoon-driven Indian agriculture […]. This calculation involved infinite series which were summed using a sophisticated philosophy of ratios of inexpressed numbers [today called rational functions…].
Europeans, however, were primitive and backward in arithmetical calculations […] and barely able to do finite sums. The decimal system had been introduced in Europe by Simon Stevin only at the end of the 16th c., while it was in use in India since Vedic times, thousands of years earlier.
C. K. Raju (2013 p. 161- 162)
This may be cited in contrast with the statements of western historians, among which:
The history of mathematics cannot with certainty be traced back to any school or period before that of the Greeks […] though all early races knew something of numeration […] and though the majority were also acquainted with the elements of land-surveying, yet the rules which they possessed […] were neither 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.
So, it may seem paradoxical, given such an intellectual baggage, to write an entire chapter on musical scales without a single number! In A Mathematical Discussion of the Ancient Theory of Scales according to Natyashastra I showed a minimal reason: Bharata's description leads to an infinite set of solutions that should be formalised with algebra rather than a set of numbers.
The experiment
The author(s) of Natya Shastra invite(s) the reader to take two vina-s (plucked stringed instruments) and tune them on the same scale.
A word of caution to clarify the context: this chapter of Natya Shastra can be read as a thought experiment rather than a process involving physical objects. There is no certainty that these two vina-s ever existed — and even that "Bharata Muni", the author/experimenter, was a unique person. His/their approach is one of validation (pramāņa) by empirical evidence, in other words driven by the physically manifest (pratyakşa) rather than inferred from "axioms" constitutive of a theoretical model. This can be summed up as a "preference for physics over metaphysics".
Constructing and manipulating vina-s in the manner indicated by the experimenter appears to be an insurmountable technological challenge. This has been discussed by a number of authors — see Iyengar (2017 pages 7-sq.) Leaving aside the possibility of practical realisation is not a denial of physical reality, as formal mathematics would systematically dictate. Calling it a "thought experiment" is a way of asserting the connection with the physical model. Similarly, the use of circular graphs to represent tuning schemes and algebra to describe relationships between intervals are aids to understanding that do not reduce the model to specific, idealistic interpretations similar to the speculations about integers cherished by Western scientists. These graphs are intended to facilitate the computational design of instruments that model these imagined instruments — see Raga intonation and Just intonation, a general framework.
Let us follow Bharata's instructions and tune both instruments to a scale called "Sa-grama" about which the author explains:
The seven 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 tempting to identify this scale as the conventional western seven-degree scale do, re, mi, fa, sol, la, si ("C", "D", "E", "F", "A", "B"), which some scholars have done despite the erroneous interpretation of the intervals.
Intervals are notated in shruti-s, which can be thought of as an ordering device rather than a unit of measurement. Experiment will confirm that a four-shruti interval is greater than a three-shruti, a three-shruti greater than a two-shruti and the latter greater than a single shruti. In different contexts, the word "shruti" refers to note positions rather than intervals between notes. This ambiguity is also a source of confusion.
The author writes:
Śrutis in the Şaḍja Grāma are shown as follows: three [in Ri], two [in Ga], four [in Ma], four [in Pa], three [in Dha], two [in Ni], and four [in Sa].
Bharata uses 9-shruti (consonant) intervals: "Sa-Pa", "Sa-Ma", "Ma-Ni", "Ni-Ga" and "Re-Dha". He also defines another scale called "Ma-grama" in which "Pa" is one shruti lower than "Pa" in the Sa-grama, so that "Sa-Pa" is no longer consonant whereas "Re-Pa" is consonant because it is made up of 9 shruti-s.
Intervals of 9 or 13 shruti-s are declared "consonant" (samvadi). Ignoring the octave, the best consonance in a musical scale is the perfect fifth with a frequency ratio close to 3/2. When tuning stringed instruments, a ratio other than 3/2 will produce beats indicating that a string is out of tune.
Sa-grama and Ma-grama according to Natya Shastra. Red and green segments indicate the two chains of perfect fifths. Underlined note names denote 'flat' positions.
If the frequency ratios are expressed logarithmically with 1200 cents representing an octave, and further converted to angles with a full octave on a circle, the description of the Sa-grama and Ma-grama scales can be summarised on a circular diagram (see figure).
Two cycles of fifths are highlighted in red and green colors. Note that both the "Sa-Ma" and "Ma-Ni" intervals are perfect fifths, which discards the association of Sa-grama with the conventional western scale: the "Ni" should be mapped to "B flat", not to "B". Furthermore, the perfect fifth "Ni-Ga" implies that "Ga" is also "E flat" rather than "E". The Sa-grama and Ma-grama scales are therefore "D modes". This is why "Ga" and "Ni" are underlined in the diagrams.
Authors eager to identify Sa-grama and Ma-grama as a western scale have claimed that when the text says that there are "3 shruti-s in Re" it should be understood as between Re and Ga. However, this interpretation is inconsistent with the second lowering of the movable vina (see below).
We must avoid jumping to conclusions about the intervals in these scales. The two cycles of fifths are unrelated, except that the "distance" between the "Pa" of Ma-grama and that of Sa-grama is "one shruti":
The difference which occurs in Pañcama when it is raised or lowered by a Śruti and when consequential slackness or tenseness [of strings] occurs, will indicate a typical (pramāņa) Śruti. (XXVIII, 24)
In other words, the size of this pramāņa ṣruti is not specified. It would therefore be misleading to postulate its equivalence to the syntonic comma (frequency ratio 81/80). To do so reduces Bharata's model to "just intonation", indeed with interesting properties in its application to western harmony (see page), but with a questionable relevance to the practice of Indian music. As stated by Arnold (1983 p. 39):
The real phenomenon of intonation in Hindustani Classical Music as practised is much more amorphous and untidy than any geometry of course, as recent empirical studies by Levy (1982), and Arnold and Bel (1983) show.
The designation of the smallest interval as "pramāņa ṣruti" is of great epistemic importance and deserves a brief explanation. The semantics of "slackness or tension" clearly belong to "pratyakṣa pramāṇa", the means of acquiring knowledge through perceptual experience. More precisely, "pramāṇa" (प्रमाण) refers to "valid perception, measure and structure" (Wisdom Library), a notion of evidence shared by all traditional Indian schools of philosophy (Raju 2007 page 63). We will return to this notion in the conclusion.
An equivalent way of connecting the two cycles of fifths would be to define a 7-shruti interval, for example "Ni-Re". If the pramāņa ṣruti were a syntonic comma then this interval would be a harmonic major third with a ratioof 5/4. As mentioned in Just intonation, a general framework, the invention of the major third as a consonant interval dates back to the early 16th century in Europe. In Natya Shastra this 7-shruti interval was classified as "assonant" (anuvadi).
In all writings referring to the ancient Indian theory of scales, I have occasionally used "pramāņa ṣruti" and "syntonic comma" as equivalent terms. This is acceptable if one accepts that the syntonic comma can take values other than 81/80. Consequently, the "harmonic major third" should not automatically be assigned a frequency ratio of 5/4.
The picture above shows the two vina-s tuned identically on Sa-grama. Matching notes are marked with yellow dots. The inner part of the blue circle will be the moving vina in the following transpositions, and the outer part the fixed vina.
First lowering
Bharata writes:
The two Vīņās with beams (danḍa) and strings of similar measure, and with similar adjustment of the latter in the Şaḍja Grāma should be made [ready]. [Then] one of these should be tuned in the Madhyama Grāma by lowering 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 short, this is a procedure for lowering all the notes of the movable vina by one pramāņa ṣruti. First lower its "Pa" — e.g. make it consonant with the "Re" of the fixed vina — to obtain Ma-grama on the movable vina. Then readjust its entire scale to obtain Sa-grama. Note that lowering "Re" and "Dha" means revaluing the size of a pramāņa ṣruti while maintaining the 'Re-Dha' consonant interval. The result is as follows:
The two vinas after a lowering of pramāņa ṣruti
The picture illustrates the fact that there is no longer a match between the two vina-s.
Interpreting shruti-s as variables in some metrics
This situation can be translated into algebra. Let "a", "b", "c" … "v" be the unknown sizes of the shruti-s in the scale (see picture on the side). A metric that "translates" Bharata's model will be necessary to test it on sound structures produced by an electronic instrument — the computer. The scope of this translation remains valid as long as no additional assertion is made that is not rooted in the original model.
Using the symbol "#>" to indicate that two notes do not match, this first lowering can be summarised by the following set of inequalities:
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 another lowering by one shruti using a different procedure.
Again due to the decrease of a Śruti in another [Vīņā], Gāndhāra and Nişāda will merge with Dhaivata and Ṛşbha respectively, when there is an interval of two Śrutis between them.
Note that it is no longer possible to rely on a lowered "Pa" to evaluate a pramāņa ṣruti for the lowering. The instruction is to lower the tuning of the movable vina until either "Re" and "Ga" or "Dha" and "Ni" merge, which is claimed to be the same because of the final lowering of two shruti-s (from the initial state):
The two vina-s after the second lowering (2 shruti-s)
Now we have an equation which tells us that the two-shruti intervals are equal in size:
q + r = d + e
and five more inequations indicating the non-matching of other 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 bear in mind that the author is describing a physical process, not an abstract "movement" by which the moving wheel (or vina) would "jump" in space from its initial to final position. Therefore, we pay attention to what happens and what does not happen during the tuning of the vina or the rotation of the wheel by looking at the trajectories of the dots representing the note positions (along the blue circle). Things that do not happen (mismatched notes) give rise to inequations that are necessary to make sense of the algebraic model.
This step of the experiment confirms that it is wrong to place Sa in the position of Ni in order to identify Sa-grama with the Western scale. In this case the corresponding notes would not 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 another [Vīņā], Ṛşbha and Dhaivata will merge with Şaḍja and Pañcama respectively, when there is an interval of three Śrutis between them.
The two vinas after the third lowering (3 shruti-s)
This leads to equation
n + o + p = a + b + c
and inequations:
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 procedure:
Similarly the same [one] Śruti being again decreased, Pañcama, Madhyama and Şaḍja will merge with Madhyama, Gāndhāra and Nişāda respectively when there is an interval of four Śrutis between them.
The two vinas after the fourth lowering (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 eliminating redundant equations and inequations, the constraints are summarised 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 inequations illustrate the fact that the numbers of shruti-s denote an ordering of the sizes of the intervals between notes.
We still have 22 variables and only 4 equations. These variables can be "packed" into a set of 8 variables representing the "macro-intervals", i.e. the steps of the grama-s. In this approach the shruti-s are a kind of "subatomic" particles of which these "macro-intervals" are made… Now we need only 4 auxiliary equations to determine the scale. These can be provided by acoustic information where the intervals are counted in cents. First we express that the sum of the variables, the octave, is equal to 1200 cents. (A larger value, e.g. 1204, could be used to devise extended octaves).
(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 interpret all samvadi ratios as perfect 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)
including the "Re-Pa" perfect fifth in Ma-grama:
(S13) m + (n + o + p) + (q + r) + (s + t + u + v) + (a + b + c) = 701.9
S10, S11 and S12 can all be derived from S9. So these equations can be discarded. We still need one more equation to solve the system. At this stage there are many options in terms of tuning procedures. As suggested above, setting the harmonic major third to the ratio 5/4 (386.3 cents) would provide the missing equation. This is equivalent to setting the variable "m" to 21.4 cents (syntonic comma). However, this major third can be any size up to the Pythagorean third (81/64 = 407.8 cents), for which we would get m = 0.
Beyond this range, the two-vina experiment is no longer valid, but it leaves a large number of possibilities, including the temperament of some intervals, which musicians might spontaneously achieve in parallel melodic movements. A number of solutions are presented in A Mathematical Discussion of the Ancient Theory of Scales according to Natyashastra, and some of these have been tried on the Bol Processor to check musical examples for which they might provide adequate scales — see Raga intonation.
Extensions of the model
To complete his system of scales, Bharata needed to add two new notes to the basic grama-s: antara Gandhara and kakali Nishada. The new "Ga" is defined as "G" raised by 2 shruti-s. Similarly, kakali Ni is "N" raised by 2 shruti-s.
In order to position "Ni" and "Ga" correctly we must study the behaviour of the new scale in all transpositions (murcchana-s), including those beginning with "Ga" and "Ni", and derive equations corresponding to an optimal consonance of the scale. We end up with 11 equations for only 10 variables, which means that this perfection cannot be achieved. One constraint must be released.
One option is to release the constraints on major thirds, fifths or octaves, resulting in a form of temperament. For example, stretching the octave by 3.7 cents produces perfect fifths (701.9 cents) and harmonic major thirds close to equal temperament (401 cents) with a comma of 0 cents. This tuning technique was advocated by Serge Cordier (Asselin 2000 p. 23; Wikipedia).
An equal-tempered scale with octave stretched at 1204 cents. (Image created by Bol Processor BP3)
Another option is to get as close as possible to "just intonation" without changing perfect fifths and octaves. This is possible by allowing the comma (variable "m") to take any value between 0 and 56.8 cents. Limits are imposed by the inequations derived from the two-vina experiment.
These "just systems" are calculated 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 (limma = 256/243), Maj = 203.9 cents (major wholetone = 9/8) and 0 < C < 56.8 (pramāņa ṣruti or syntonic comma)
This leads to the 53-degree scale called "grama" which we use as a framework for consonant chromatic scales suitable for pure intonation in western harmony when the syntonic comma is sized 81/80. Read Just intonation, a general framework:
The "grama" scale used for just intonation, with a syntonic comma of 81/80. Pythagorean cycle of fifths in red, harmonic cycle of fifths in green.
In BP3, the just-intonation framework has been extended so that any value of the syntonic comma (or the harmonic major third) can be set on a given scale structure. This feature is demonstrated on the Raga intonation page.
The relevance of circular representations
Circular representation of tāl Pañjābi, catuśrajāti [16 counts] from a Gujarati text in Devanagari script (J. Kippen, pers. communication)
It is safe to classify the two-vina experiment as a thought experiment, since it is unlikely that it could be carried out with mechanical instruments. Representing it on a circular graph (a movable wheel inside a fixed crown) achieves the same goal without resorting to imaginary devices.
Circular representations belong to Indian traditions of various schools, including the description of rhythmic cycles (tāl-s) used by drummers. These diagrams are meant to outline the rich internal structure of musical constructions that cannot be reduced to "beat counting" (Kippen 2020).
For example, the image on the side was used to describe the ţhekkā (cycle of quasi-onomatopoeic syllables representing the beats of the drum) of tāl Pañjābi which reads as follows:
Unfortunately, early printing technology may have made the publication and transmission of these learning aids difficult.
If Bharata's contemporaries ever used similar circular representations to reflect on musical scales, we suspect that archaeological traces might not be properly identified, as their drawings might be mistaken for yantra-s, astrological charts and the like!
Return to epistemology
Bharata's experiment is a typical example of the preference for facts derived from empirical observation over a proclaimed universal logic aimed at establishing "irrefutable proofs".
Empirical proofs are universal, not metaphysical proofs; eliminating empirical proofs is contrary to all systems of Indian philosophy. Thus elevating metaphysical proofs above empirical proofs, as formal mathematics does, is a demand to reject all Indian philosophy as inferior. Curiously, like Indian philosophy, present-day science too uses empirical means of proof, so this is also a demand to reject science as inferior (to Christian metaphysics).
Logic is not universal either as Western philosophers have foolishly maintained: Buddhist [quasi truth-functional] and Jain [three-valued] logics are different from those currently used in formal mathematical proof. The theorems of mathematics would change if those logics were used. So, imposing a particular logic is a means of cultural hegemony. If logic is decided empirically, that would, of course, kill the philosophy of metaphysical proof. Further, it may result in quantum logic, similar to Buddhist logic […].
C. K. Raju (2013 p. 182-183)
Yuktibhāşā's proof of the "Pythagorean" theorem. Source: C. K. Raju (2007 p. 67)
The two-vina experiment can be compared to the (more recent) physical proof of the "Pythagorean theorem". This theorem (Casey 1885 p. 43) was known in India and Mesopotamia long before the time of its legendary author (Buckert 1972 p. 429, 462). In the Indian text Yuktibhāşā (c. 1530 CE), a figure of a right-angled triangle with squares on either side and its hypothenuse is drawn on a palm leaf. The figure is then cut and rotated to show that the areas are equal.
Obviously, the proof of the "Pythagorean Theorem" is very easy if you are either (a) allowed to take measurements or, equivalently, (b) allowed to move figures around in space.
C. K. Raju (2013 p. 167)
This process takes place in several stages of moving figures, similar to the moving scales (or figures representing scales) in the two-vina experiment. The 3 single-shruti tone intervals can be compared to the areas of the 3 squares in Yuktibhāşā. The following comment would therefore apply to Bharata's procedure:
The details of this rationale are not our immediate concern beyond observing that drawing a figure, carrying out measurements, cutting, and rotation are all empirical procedures. Hence, such a demonstration would today be rejected as invalid solely on the ground that it involves empirical procedures that ought not to be any part of mathematical proof.
Bharata. Natya Shastra. There is no currently available English translation of the first six chapters of Bharata’s Natya Shastra. However, most of the information required for this interpretation has been reproduced and commented by Śārṅgadeva in his Sangita Ratnakara (13th century CE), translated by Dr R. K. Shringy, vol.I. Banaras 1978: Motilal Banarsidass.
Levy, M. Intonation in North Indian Music. New Delhi, 1982: Biblia Impex.
Raju, C. K. Euclid and Jesus: How and why the church changed mathematics and Christianity across two religious wars. Penang (Malaysia), 2013: Multiversity, Citizens International.