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).
Consider two simple operations `gB' and `Sp' defined as follows:
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 `->'.
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.
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
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
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