How to derive all mAELa rAgas from a minimal set of starting points


Date: Thu, 6 May 1993 01:02:50 GMT
Message-ID: <krisna.736650170@cs.wisc.edu>
Subject: graha-BAEdha revisited

I have always been fascinated and puzzled by the properties of graha-BAEdha on mAELa rAgas. I had also seen statements to the effect that _all_ mAELa rAgas can be derived from a single mAELa rAga by the repeated application of graha-BAEdha and SudhDha-prathe maDhyama interchange. I wrote this article to formalize the notion of mAELa derivation via these two techniques (and show that it is _not_ possible to derive all mAELa rAgas from a single starting point). The fundamental ideas are from poset theory (and the derivations were made with the help of my mAELa program).


The basic operators

Consider two simple operations `gB' and `Sp' defined as follows:

r1 <gB> r2
means that scale r2 is obtained by the process of graha-BAEdha (gB) from scale r1.
r1 <Sp> r2
means that the sampUrNa mAELa rAga r2 is derived from the sampUrNa mAELa rAga r1 by replacing the SudhDha maDhyama with the prathe maDhyama (or vice versa).

Posets

Posets (partially ordered sets) are collections of entities w.r.t some relation (which defines the ordering). Given a poset P, elements a, b in P and an operation `->', we say that `->' is:

The operation `gB' defined above is reflexive, symmetric and transitive. The operation `Sp' is irreflexive, symmetric and intransitive.

Now, let us combine the two operations into one single operation by composition. The order of composition does not matter, but let us assume that `gB' is performed before `Sp'. Let the new operation be denoted as `->'.

The `->' operation is irreflexive, symmetric and intransitive (since the operator `Sp' is irreflexive and intransitive). However, we can define a new operation which is the reflexive-transitive closure of `->' (denoted as `->*') which by definition is reflexive, symmetric and transitive. `->*' can be constructed as a set of operators each of which is obtained by applying `->' successively 0 or more times.

It is a fundamental result in poset theory that a reflexive-transitive closure of an operation on a poset induces a set of partitions on the poset. All elements within a partition are related by the operation `->*' (i.e. we can go from one element of the partition to the other by an application of `->*'), but there is no way by which elements of two different partitions can be related to each other via the `->*' operation.

It may well turn out that the closure induces a partition with only one set in it. i.e. the single partition contains all elements of the original poset. It may also turn out that the number of partitions is equal to the number of elements in the poset (i.e. each element is in a separate partition and is unrelated to the every other element by the operation `->*').

The case when all elements of the poset fall into one partition set indicates that we can "construct" all elements of the poset starting from any one of its members. The case when none of the elements of the poset share a partition indicates that none of the elements can be "constructed" from any other. All this is with respect to the operation `->'.


Application to mAELa rAgas

The reason the above three sections are interesting and relevant to music is that the 72 mAELa rAgas of karNAtaka music form a poset that is partitioned into 6 subsets under the operation `->*' defined above.

In words, this means that

starting from a single mAELa rAga (any one of the 72), it is impossible to systematically generate all the remaining 71 mAELa rAgas using only the process of graha-BAEdha and SudhDha-prathe maDhyama interchanges. It does not matter how many times these operations are performed or in what order they are interleaved.

I will not give a proof of why the partition induced by `->*' is not perfect (by perfect I mean a relation in which all mAELa rAgas are related and can be derived from any one as a starting point) nor a proof of why there are 6 subsets in the partition. However, I will try to illustrate the process of application of `->' to mAELa rAgas and show the above property to be true [proof by construction].

First off, a few example to clarify things.

The `gB' operator:

    hanumathOdE
        <gB> hanumathOdE
        <gB> mAEcakalyAnE
        <gB> harekAmBOjE
        <gB> naTaBIravE
        <gB> KaraharapreyA
        <gB> DhEraSangkarABaraNam

    kanakAnggE
        <gB> kanakAnggE
        <gB> kAmavarDhanE

    vAgadhESvarE
        <gB> vAgadhESvarE
        <gB> nagAnandhenE
        <gB> BavapreyA

The `Sp' operator (very simple and obvious):

    hanumathOdE
        <Sp> BavapreyA

    DhEraSangkarABaraNam
        <Sp> mAEcakalyAnE

    mAEcakalyAnE
        <Sp> DhEraSangkarABaraNam

    kanakAnggE
        <Sp> sAlagam

Since the operator `gB' is ready reflexive, symmetric and transitive, its reflexive-transitive closure `gB*' is the same as `gB'. Operator `Sp' is neither reflexive nor transitive, but `Sp.Sp' is the identify operator---hence the reflexive-transitive closure `Sp*' is `Sp+1'. These closures are not interesting by themselves, but become so in combination.

The `->' operator:

    hanumathOdE
        -> BavapreyA
        -> DhEraSangkarABaraNam
        -> vAcaspathE
        -> ShaNmuKapreyA
        -> hAEmavathE
        -> mAEcakalyAnE

    kanakAnggE
        -> sAlagam
        -> mAyAmALavagauLa

    vAgadhESvarE
        -> nAsekABUShaNE
        -> cethrAmbarE
        -> hanumathOdE

Now for the complete partition. The `->' operator can be applied successively to the rAgas generated from a previous application of the `->' operator. This process can be continued indefinitely, but since the set of sampUrNa scales is finite (72 in number, to be exact), after some time, the process will generate only old rAgas.

The process of successive application of the `->' operator in breadth-first order (which is simply one of the many ways of systematically enumerating all possible derivations) is shown below as a tree. The tree structure should be easy to visualize from the diagram.

When I initially wrote this article, the traversal trees were hand-generated. Some time later, as part of a larger experiment on the structural properties of the mAELa scales, I wrote a set of programs that would automatically generate the traversal trees for me. What you see below are the output of these programs. Although, I did not expect to see any errors in my initial traversals, it was quite heartening (not to say infinitely less tedious) to be able to program the algorithm that was previously only in my head, and have it generate the same output as before.

A few points are worth noting. Depending on the starting mAELa rAga and the traversal order, the generated trees will look different. But the difference is purely structural---rAgas generated will all be the same no matter where in the tree one starts. Since I had a program to generate different kinds of trees, I have given the forest generated the application of the operator `->' (which is the application of `gB' followed by the application of `Sp'); followed by the trees generated by the application of a modified operator `->' (which is the application of `Sp' first, followed by the application of `gB'). The tree depths and structure are slightly different in the two cases, but the nature of the partitions induced do not change.

For my particular starting point and traversal order, I have also given the traversal depth (i.e. the number of successive applications of `->' needed before all possible related items of the poset have been generated). Depending on the starting point and the traversal order, the depth of the trees can be quite different.


Derivation forest for graha-BAEdha followed by maDhyama interchange (gB o Sp)

Starting rAga:   kanakAnggE
Tree depth:      13
Partition size:  52

kanakAnggE
|
|-> mAyAmALavagAULa
|   |
|   |-> kEravANE
|   |   |
|   |   |-> KaraharapreyA
|   |   |   |
|   |   |   |-> DhEraSangkarABaraNam
|   |   |   |-> BavapreyA
|   |   |   |   |
|   |   |   |   |-> hanumathOdE
|   |   |   |   |-> cethrAmbarE
|   |   |   |   |   |
|   |   |   |   |   |-> naTaBIravE
|   |   |   |   |   |-> nagAnandhenE
|   |   |   |   |   |-> SuBapanthuvarALE
|   |   |   |   |   |   |
|   |   |   |   |   |   |-> DhAENukA
|   |   |   |   |   |   +-> rasekapreyA
|   |   |   |   |   |
|   |   |   |   |   +-> kOSalam
|   |   |   |   |
|   |   |   |   +-> nAsekABUShaNE
|   |   |   |       |
|   |   |   |       |-> nAtakapreyA
|   |   |   |       |   |
|   |   |   |       |   |-> harekAmBOjE
|   |   |   |       |   |-> ShadvedhmArgenE
|   |   |   |       |   |-> DharmavathE
|   |   |   |       |   |   |
|   |   |   |       |   |   |-> gAUremanOharE
|   |   |   |       |   |   |-> rAmapreyA
|   |   |   |       |   |   |   |
|   |   |   |       |   |   |   +-> cakravAham
|   |   |   |       |   |   |
|   |   |   |       |   |   +-> lathAnggE
|   |   |   |       |   |       |
|   |   |   |       |   |       |-> sarasAnggE
|   |   |   |       |   |       |-> gavAmBOdhE
|   |   |   |       |   |       |   |
|   |   |   |       |   |       |   |-> sAEnAvathE
|   |   |   |       |   |       |   +-> veSvAmbarE
|   |   |   |       |   |       |       |
|   |   |   |       |   |       |       |-> hAtakAmbarE
|   |   |   |       |   |       |       |-> JangkAradhvanE
|   |   |   |       |   |       |       |   |
|   |   |   |       |   |       |       |   |-> sUryakAntham
|   |   |   |       |   |       |       |   |-> jalArNavam
|   |   |   |       |   |       |       |   |   |
|   |   |   |       |   |       |       |   |   +-> rathnAnggE
|   |   |   |       |   |       |       |   |
|   |   |   |       |   |       |       |   +-> SyAmalAnggE
|   |   |   |       |   |       |       |
|   |   |   |       |   |       |       +-> JAlavarALE
|   |   |   |       |   |       |           |
|   |   |   |       |   |       |           +-> gAnamUrthe
|   |   |   |       |   |       |
|   |   |   |       |   |       +-> gamanaSrama
|   |   |   |       |   |
|   |   |   |       |   +-> reShaBapreyA
|   |   |   |       |       |
|   |   |   |       |       |-> cArukAEsE
|   |   |   |       |       +-> suvarNAnggE
|   |   |   |       |           |
|   |   |   |       |           +-> kOkelapreyA
|   |   |   |       |
|   |   |   |       +-> vAgadhESvarE
|   |   |   |
|   |   |   |-> ShaNmuKapreyA
|   |   |   |-> hAEmavathE
|   |   |   |-> vAcaspathE
|   |   |   +-> mAEcakalyANE
|   |   |
|   |   |-> SUlenE
|   |   |-> nAmanArAyaNE
|   |   |   |
|   |   |   +-> vakuLABaraNam
|   |   |
|   |   +-> se~hAEndhramaDhyamam
|   |
|   |-> calanAtta
|   +-> kAmavarDhanE
|
+-> sAlagam


Starting rAga:   vanaspathe
Tree depth:      3
Partition size:  6

vanaspathe
|
|-> navanEtham
+-> kAnthAmaNE
    |
    |-> mAraranjjanE
    +-> pAvanE
        |
        +-> mAnavathE


Starting rAga:   thAnarUpE
Tree depth:      1
Partition size:  2

thAnarUpE
|
+-> raGupreyA


Starting rAga:   rUpavathE
Tree depth:      1
Partition size:  2

rUpavathE
|
+-> dhevyamaNE


Starting rAga:   gAyakapreyA
Tree depth:      4
Partition size:  8

gAyakapreyA
|
|-> gAnggAEyaBUShaNE
|   |
|   |-> varuNapreyA
|   |   |
|   |   |-> nEthemathE
|   |   +-> jyOthesvarUpeNE
|   |       |
|   |       +-> rAgavarDhanE
|   |
|   +-> DhAthuvarDhanE
|
+-> DhavaLAmbarE


Starting rAga:   yAgapreyA
Tree depth:      1
Partition size:  2

yAgapreyA
|
+-> sucarethra

Derivation forest for maDhyama interchange followed by graha-BAEdha (Sp o gB)

Starting rAga:   kanakAnggE
Tree depth:      14
Partition size:  52

kanakAnggE
|
+-> sAlagam
    |
    +-> kAmavarDhanE
        |
        |-> mAyAmALavagAULa
        |-> se~hAEndhramaDhyamam
        |   |
        |   |-> vakuLABaraNam
        |   |   |
        |   |   +-> nAmanArAyaNE
        |   |
        |   |-> kEravANE
        |   |-> hAEmavathE
        |   |   |
        |   |   |-> hanumathOdE
        |   |   |   |
        |   |   |   |-> nagAnandhenE
        |   |   |   |   |
        |   |   |   |   |-> DhAENukA
        |   |   |   |   |   |
        |   |   |   |   |   |-> calanAtta
        |   |   |   |   |   +-> SuBapanthuvarALE
        |   |   |   |   |
        |   |   |   |   |-> SUlenE
        |   |   |   |   |-> ShaNmuKapreyA
        |   |   |   |   +-> cethrAmbarE
        |   |   |   |
        |   |   |   |-> vAgadhESvarE
        |   |   |   |   |
        |   |   |   |   |-> ShadvedhmArgenE
        |   |   |   |   |   |
        |   |   |   |   |   |-> nAtakapreyA
        |   |   |   |   |   |-> gAUremanOharE
        |   |   |   |   |   |   |
        |   |   |   |   |   |   |-> cakravAham
        |   |   |   |   |   |   |   |
        |   |   |   |   |   |   |   +-> rAmapreyA
        |   |   |   |   |   |   |
        |   |   |   |   |   |   |-> sarasAnggE
        |   |   |   |   |   |   |   |
        |   |   |   |   |   |   |   |-> sAEnAvathE
        |   |   |   |   |   |   |   |   |
        |   |   |   |   |   |   |   |   |-> hAtakAmbarE
        |   |   |   |   |   |   |   |   |   |
        |   |   |   |   |   |   |   |   |   |-> gAnamUrthe
        |   |   |   |   |   |   |   |   |   |   |
        |   |   |   |   |   |   |   |   |   |   +-> JAlavarALE
        |   |   |   |   |   |   |   |   |   |
        |   |   |   |   |   |   |   |   |   |-> veSvAmbarE
        |   |   |   |   |   |   |   |   |   +-> SyAmalAnggE
        |   |   |   |   |   |   |   |   |       |
        |   |   |   |   |   |   |   |   |       |-> rathnAnggE
        |   |   |   |   |   |   |   |   |       |   |
        |   |   |   |   |   |   |   |   |       |   +-> jalArNavam
        |   |   |   |   |   |   |   |   |       |
        |   |   |   |   |   |   |   |   |       |-> JangkAradhvanE
        |   |   |   |   |   |   |   |   |       +-> gamanaSrama
        |   |   |   |   |   |   |   |   |
        |   |   |   |   |   |   |   |   +-> gavAmBOdhE
        |   |   |   |   |   |   |   |
        |   |   |   |   |   |   |   |-> sUryakAntham
        |   |   |   |   |   |   |   +-> lathAnggE
        |   |   |   |   |   |   |
        |   |   |   |   |   |   +-> DharmavathE
        |   |   |   |   |   |
        |   |   |   |   |   |-> cArukAEsE
        |   |   |   |   |   |   |
        |   |   |   |   |   |   |-> kOkelapreyA
        |   |   |   |   |   |   |   |
        |   |   |   |   |   |   |   +-> suvarNAnggE
        |   |   |   |   |   |   |
        |   |   |   |   |   |   +-> reShaBapreyA
        |   |   |   |   |   |
        |   |   |   |   |   +-> vAcaspathE
        |   |   |   |   |
        |   |   |   |   +-> nAsekABUShaNE
        |   |   |   |
        |   |   |   +-> BavapreyA
        |   |   |
        |   |   |-> naTaBIravE
        |   |   |-> KaraharapreyA
        |   |   |-> harekAmBOjE
        |   |   |-> DhEraSangkarABaraNam
        |   |   +-> mAEcakalyANE
        |   |
        |   +-> kOSalam
        |
        +-> rasekapreyA


Starting rAga:   vanaspathe
Tree depth:      4
Partition size:  6

vanaspathe
|
+-> navanEtham
    |
    +-> mAraranjjanE
        |
        |-> mAnavathE
        |   |
        |   +-> pAvanE
        |
        +-> kAnthAmaNE


Starting rAga:   thAnarUpE
Tree depth:      1
Partition size:  2

thAnarUpE
|
+-> raGupreyA


Starting rAga:   rUpavathE
Tree depth:      1
Partition size:  2

rUpavathE
|
+-> dhevyamaNE


Starting rAga:   vanaspathe
Tree depth:      5
Partition size:  8

gAyakapreyA
|
+-> DhavaLAmbarE
    |
    +-> DhAthuvarDhanE
        |
        |-> gAnggAEyaBUShaNE
        +-> nEthemathE
            |
            |-> varuNapreyA
            +-> rAgavarDhanE
                |
                +-> jyOthesvarUpeNE


Starting rAga:   yAgapreyA
Tree depth:      1
Partition size:  2

yAgapreyA
|
+-> sucarethra

Derivation summary

The following table summarizes the results of the derivation trees. The partitions (or rAga cliques) are named by the starting mAELa that I have used. There is nothing significant about my starting points, these mAELas happen to be the ones with the smallest katapayAdhe number of the poset partition to which they belong.

-----------------------------------------------------------------
clique-name   (gB o Sp) depth   (Sp o gB) depth   partition-size
-----------------------------------------------------------------
kanakAnggE          13                14                52
vanaspathE           3                 4                 6
thAnarUpE            1                 1                 2
rUpavathE            1                 1                 2
gAyakapreyA          4                 5                 8
yAgapreyA            1                 1                 2
-----------------------------------------------------------------

Quite clearly, the total number of rAgas in all partitions put together works out to the full poset size of 72.

In this purely mathematical sense, the set of mAELa rAgas is not elegant enough (or equivalently, the graha-BAEdha and SudhDha-prathe maDhyama interchange operations are not sufficiently powerful) to form a complete structure. In addition, the process of `gB' generates a lot of invalid mAELa rAgas (some of these are dhve-maDhyama panjcama varja rAgas, but many many others are bizarre enough to be unknown in contemporary music).

In particular, the set of 6 mAELa rAgas of the RShe cakra (nos. 37-42) are graha-BAEdha "dead-ends". The reason is not too difficult to see. In each of these rAgas there is an interval of 4 semitones between the SudhDha gAnDhAra and the prathe maDhyama. Nowhere else in the octave does an interval of this width occur. Therefore, if at all, the graha-BAEdha of a rAga of the RShe cakra can only be another rAga of the RShe cakra. Since this is not possible for all 6 rAgas, they do not permit any valid any graha-BAEdha.

Even if one considers the invalid scales generated in the above process (and ignores the `Sp' operation for scales that do not have a well defined maDhyama), the number of generated scales falls far short of the total number of possible saptha-svara scales.


[ Indian Classical Music | Krishna Kunchithapadam ]


Last updated: Sun Jun 27 17:00:19 PDT 2004
URL: http://geocities.datacellar.net/krishna_kunchith/rmic/rmic.1993.05.06.html

1