← all domains · grammar index

Domain #3 : mélodique modal (mūrchanā, grāma, tāna, svara) 6c.3

Module : melodic_derivations.py  ·  ✓ self-test pass
104concepts
114input rules
44rules traced
8types
6operations
4constraints
5unresolved
Domaine 3 — mélodique modal (mūrchanā, grāma, tāna, svara) Synthèse 6c.3 du Brihaddesi (Sharma 1992, vols I & II) depuis : - 114 règles génératives 6b - 241 affirmations sourcées - structures 4e (tables mūrchanā-maṇḍala p.037, mūrchanā nommées p.051, tables tāna p.040) - partition Leiden domain_id=3 (104 concepts) Anti-fabrication : chaque type, opération et contrainte cite son evidence (rule_id 6b ou affirmation_id). Aucune valeur non sourcée n'est introduite. Python 3.10+. Importable directement, sans dépendance externe.

Contents

Operations (6)

Pure functions derived from the rules: given input types, return outputs. Each cites the rule(s) that justify it.

§murchana_atderivation

(grāma: Grāma, k: int) Mūrchanā
Sourced by
mūrchanā = mouvement mélodique débutant par un svara donné, étymologie mūrch (infatuation) + samucchrāya (croissance); ce par quoi le rāga croît
FUNCTION construct_murchana(start_svara, jati): # etymology: murch (growth) + samucchraya (increase) murchana := sequence_of_svaras(start=start_svara, length=7) # e.g. Gandharodicyava -> begins with dhaivata # e.g. hexatonic andhri -> begins with madhyama ASSERT murchana[0] == start_svara RETURN murchana # vehicle of raga growth
enthe mūrchanā beginning with dhaivata obtains.vol_II_p038
enThe mūrchanā beginning with madhyama obtains.vol_II_p044
+ 5 more verbatim
R_597_murchana_shift transformation
In murchanās of rsabha..nisada, sadja shifts to 2nd..7th svara position respectively
FOR base IN [rsabha,gandhara,madhyama,pancama,dhaivata,nisada]: position_of(sadja, murchana(base)) := index(base)+1 // yields 2..7
enşadja becomes the second, third, fourth, fifth, sixth and seventh svara in the murchanasvol_I_p096

§all_murchanasenumeration

(grāma: Grāma) list[Mūrchanā]
Sourced by
R_c57_grama enumeration
grāma = cadre tonal; deux grāmas (ṣaḍjagrāma, madhyamagrāma) chacun avec 7 mūrchanās; les tānas servent à distinguer jātis et rāgas des deux grāmas
FUNCTION enumerate_gramas(): gramas := { 'sadjagrama': {murchanas_start_order: [sa, ni, dha, pa, ma, ga, ri]}, 'madhyamagrama': {murchanas_start_order: [ma, ga, ri, sa, ni, dha, pa]} } ASSERT pancama IN both_gramas # seated in two gramas # melodic movement must respect grama (gramavirodhena) RETURN gramas
sktग्रामाविरोधेन यथेष्टं सञ्चारःvol_II_p035
enPañcama is known as being seated in the two grāmas.vol_I_p016
+ 2 more verbatim

§named_murchanalookup

(name: str) Mūrchanā | None
Sourced by
Mūrchanā starting svara differs per rāga: Sauvīraka begins with ṣaḍja, Mālavapañcama with pañcama, Vesaraṣāḍava with madhyama
MAP raga → murchana.start: {sauviraka: sadja, malavapancama: pancama, vesarasadava: madhyama}
enThe mürchanā beginning with sadja obtains.vol_II_p064
enThe mūrchanā beginning with pañcama obtains.vol_II_p064
+ 1 more verbatim

§sadava_from_sampurnaderivation

(grāma: Grāma, omit: Svara) Tāna
Sourced by
The ṣāḍava mūrchanās of ṣaḍja-grāma arise by omitting one of {ṣaḍja, ṛṣabha, pañcama, niṣāda}; the omission of gāndhāra is not prescribed in this grāma.
sadava_murchanas(sadjagrama) := {omit(s) | s in {sadja, rsabha, pancama, nisada}}; forbidden_omission := gandhara
enIn ṣaḍja-grāma, in the prescription about ṣāḍava the omission of gandhara is not there.vol_II_p026
enWith (the omission of) șadja, rșabha, pañcama and nișāda the șādava (mūrchanās) of ṣaḍja-grāma (come into being).vol_I_p039
Mūrchanā transformations operate via svara-omission (creating ṣāḍava/auḍuvita tānas); applies to jātis/rāgas; no canonical jāti-mūrchanā rule
APPLY omit_svara(murchana) -> tana; SCOPE = murchana+jati+raga; jati-to-murchana assignment = unprescribed (authority-based)
enomission of svaras is operative only in mūrchanās and not in grāmavol_II_p163
enNo rule is prescribed for assigning a particular mūrchanā to a given jāti.vol_II_p163
+ 1 more verbatim
In madhyamagrāma, omission of ṛṣabha and pañcama does not take place; pañcama is inomissible according to Datti.
for grama=madhyamagrama: omit(rsabha) := False; omit(pancama) := False
sktमध्यमग्रामे ऋषभपञ्चमयोर्लोपो नास्तीति भावः।vol_II_p054
enpancama in mādhyamagrāma ... is inomissiblevol_II_p163

§auduva_from_sampurnaderivation

(grāma: Grāma, omit_pair: frozenset[Svara]) Tāna
Sourced by
Auḍuva is the pentatonic combination (five svaras); auḍuva tānas have two subcategories: devoid of ni-ga and devoid of pa-ni
DEFINE auduva AS combination WHERE |svaras| = 5; SUBTYPES auduva_tanas = {devoid_niga, devoid_pani}
enAuduva is with five (svaras),vol_I_p030
en(Tānas) devoid of ni-ga. (Tānas) devoid of pa-ni. Thus end the auduva (tānas).vol_I_p041
R_1769_nigahina_auduva classification
nigahīnā = tānas devoid of ni-ga, sub-category of auḍuva tānas
CLASSIFY tana AS nigahina IF svaras_excluded={ni, ga} WITHIN auduva_category
en(Tānas) devoid of ni-ga.vol_I_p041
R_5p3_1770 classification
Auduva tānas devoid of pa-ni form a category
IF tana.scale_size == 5 AND 'pa' NOT IN tana.svaras AND 'ni' NOT IN tana.svaras THEN category := 'auduva_parihina'
en(Tānas) devoid of pa-ni. Thus end the auduva (tānas).vol_I_p041
+ 1 more rule(s) : R_1786_01

§substitute_madhyama_for_sadjatransformation

(phrase: list[Svara], position: int, placed_by_murchana: bool) list[Svara]
Sourced by
Where madhyama is placed by virtue of mūrchanā principle, ṣaḍja can replace it without destroying the jāti or rāga.
def substitute_via_murchana(phrase, position): if phrase[position] == 'madhyama' and placed_by_murchana(phrase, position): phrase[position] = 'sadja' return phrase # jati/raga preserved
sktयस्मिन् स्थाने मूर्छनावशात् मध्यमः प्रयुक्तःvol_I_p026
sktयस्मिन् स्थाने मूर्छनावशात् मध्यमः प्रयुक्तः तस्मिन् स्थाने क्रियमाणः षड्जो जातिरागहा न भवेत्vol_I_p026

Constraints (4)

Validators that raise on configurations forbidden by the rules. Each cites the rule(s) it enforces.

§is_valid_omission

svara not in INOMISSIBLE_SVARAS[grāma]
Sourced by
In ṣadjagrāma, dhaivata is inomissible; ṣadjagrāma has a vivādi-maṇḍala with rules involving gāndhāra-ṛṣabha and niṣāda-dhaivata pairs.
for grama=sadjagrama: omit(dhaivata) := False; vivadi_mandala := defined_on{(gandhara, rsabha), (nisada, dhaivata)}
endhaivata in ṣaḍjagrāma and madhyama in all situations is inomissible.vol_II_p163
sktइति षड्जग्रामेvol_I_p028
In madhyamagrāma, omission of ṛṣabha and pañcama does not take place; pañcama is inomissible according to Datti.
for grama=madhyamagrama: omit(rsabha) := False; omit(pancama) := False
sktमध्यमग्रामे ऋषभपञ्चमयोर्लोपो नास्तीति भावः।vol_II_p054
enpancama in mādhyamagrāma ... is inomissiblevol_II_p163

§is_valid_mūrchanā

7-svara permutation of full svara set
Sourced by
mūrchanā = mouvement mélodique débutant par un svara donné, étymologie mūrch (infatuation) + samucchrāya (croissance); ce par quoi le rāga croît
FUNCTION construct_murchana(start_svara, jati): # etymology: murch (growth) + samucchraya (increase) murchana := sequence_of_svaras(start=start_svara, length=7) # e.g. Gandharodicyava -> begins with dhaivata # e.g. hexatonic andhri -> begins with madhyama ASSERT murchana[0] == start_svara RETURN murchana # vehicle of raga growth
enthe mūrchanā beginning with dhaivata obtains.vol_II_p038
enThe mūrchanā beginning with madhyama obtains.vol_II_p044
+ 5 more verbatim
Mūrchanā is a heptad of svaras functioning through ascent and descent in respective order.
def murchana_definition(svaras): assert len(svaras) == 7 return Murchana(svaras=svaras, mode='aroha_avaroha')
enThe heptad of svaras (that functions) through ascent and descent in respective order, should be known by the adept ones as being spoken of by the word mūrchanā.vol_I_p036
enmūrchanā as a complete scale in ascending and descending establishes the three sthanasvol_I_p099

§is_valid_tana_count

count matches TANA_COUNTS entry
Sourced by
BD_6_1_R007 enumeration
Madhyamagrāma contains 21 ṣāḍava tānas, including subsets devoid of ṣaḍja, ṛṣabha, gāndhāra
DEFINE madhyamagrama_tanas: total_shadava_tanas = 21 subsets = { devoid_of_shadja: [...], devoid_of_rshabha: [agnicit, dvadashaha, upamshu, soma, ashvapratigraha, barhi, abhyudaya], devoid_of_gandhara: [...] }
sktइति मध्यमग्राम एकविंशति षाडवताननामानिvol_I_p044
enThus end names of the tanas devoid of şadja in madhyamagramavol_I_p044
R_4p0_025 enumeration
auduvita tānas = tānas pentatoniques sans dhaivata+ṛṣabha; 14 dans madhyama-grāma, 35 au total entre 2 grāmas; combines avec ṣāḍava totalisent 84
DEFINE auduvita_tānas(grāma): exclude_svaras = {'dhaivata', 'ṛṣabha'} count(madhyamagrāma) = 14 count(both_grāmas) = 35 count(auduvita + ṣāḍava, both_grāmas) = 84 RETURN tāna_set
enThus end the fourteen names of auduvita tānas in madhyamagrāmavol_I_p045
enThe auduvita (tānas) of both the grāmas are thirty-fivevol_I_p045
+ 1 more verbatim
Audavita tānas in ṣaḍjagrāma number twenty-one.
AUDAVITA_TANAS = {'grama':'sadjagrama','count':21}
enThus end the twenty-one names of audavita tānas in sadjagrāma.vol_I_p044

§grama_differentiated_by_pancama

the two grāmas differ on the basis of pañcama alone
Sourced by
R_319_gramas structural
The two grāmas (ṣaḍja-grāma, madhyama-grāma) are differentiated on the basis of pañcama alone.
DIFFERENTIATE(sadja_grama, madhyama_grama) BY position_of(pancama)
enThe two grāmas are differentiated on the basis of pañcama alonevol_I_p088
Madhyama-grāma is treated with samvādi, anuvādi, vivādi maṇḍalas; pañcama lies one śruti lower (12 śrutis from sadja); a murchana begins ma-ga-ri-sa-ni-dha-pa with vertical order ga-ri-sa-ni-dha-pa-ma; tānas form a separate collection.
mandalas(madhyama_grama) := {samvadi, anuvadi, vivadi}; sruti_interval(sadja, pancama) := 12; murchana_start := [ma,ga,ri,sa,ni,dha,pa]; tana_collection := separate_after(sadja_grama)
enThe saṃvādi-maṇḍala in madhyama-grāmavol_I_p007
enGa - ni - sa - ni - dha - pa - ma is (the order) in madhyama-grāma.vol_I_p036
+ 2 more verbatim

Types (8)

Enums and structures used by operations and constraints. Members are exhaustively those attested in the source.

§SvaraEnum[str]

The seven svaras of the gāmut.
7 members
Sourced by
R_c57_grama enumeration
grāma = cadre tonal; deux grāmas (ṣaḍjagrāma, madhyamagrāma) chacun avec 7 mūrchanās; les tānas servent à distinguer jātis et rāgas des deux grāmas
FUNCTION enumerate_gramas(): gramas := { 'sadjagrama': {murchanas_start_order: [sa, ni, dha, pa, ma, ga, ri]}, 'madhyamagrama': {murchanas_start_order: [ma, ga, ri, sa, ni, dha, pa]} } ASSERT pancama IN both_gramas # seated in two gramas # melodic movement must respect grama (gramavirodhena) RETURN gramas
sktग्रामाविरोधेन यथेष्टं सञ्चारःvol_II_p035
enPañcama is known as being seated in the two grāmas.vol_I_p016
+ 2 more verbatim
mūrchanā = mouvement mélodique débutant par un svara donné, étymologie mūrch (infatuation) + samucchrāya (croissance); ce par quoi le rāga croît
FUNCTION construct_murchana(start_svara, jati): # etymology: murch (growth) + samucchraya (increase) murchana := sequence_of_svaras(start=start_svara, length=7) # e.g. Gandharodicyava -> begins with dhaivata # e.g. hexatonic andhri -> begins with madhyama ASSERT murchana[0] == start_svara RETURN murchana # vehicle of raga growth
enthe mūrchanā beginning with dhaivata obtains.vol_II_p038
enThe mūrchanā beginning with madhyama obtains.vol_II_p044
+ 5 more verbatim

§GrāmaEnum[str]

gāndhāra-grāma alluded to in tradition but no Brihaddesi rule pins its svaras → UNRESOLVED
2 members
values : sadjagrama, madhyamagrama
full module docstring
The two operative grāmas in Brihaddesi.

Brihaddesi treats only ṣaḍja-grāma and madhyama-grāma as live frames.
A third (gāndhāra-grāma) is alluded to in tradition but no rule states
its svara content here — see UNRESOLVED.

evidence: R_c57_grama, R_319_gramas (differentiation by pañcama position)
Sourced by
R_c57_grama enumeration
grāma = cadre tonal; deux grāmas (ṣaḍjagrāma, madhyamagrāma) chacun avec 7 mūrchanās; les tānas servent à distinguer jātis et rāgas des deux grāmas
FUNCTION enumerate_gramas(): gramas := { 'sadjagrama': {murchanas_start_order: [sa, ni, dha, pa, ma, ga, ri]}, 'madhyamagrama': {murchanas_start_order: [ma, ga, ri, sa, ni, dha, pa]} } ASSERT pancama IN both_gramas # seated in two gramas # melodic movement must respect grama (gramavirodhena) RETURN gramas
sktग्रामाविरोधेन यथेष्टं सञ्चारःvol_II_p035
enPañcama is known as being seated in the two grāmas.vol_I_p016
+ 2 more verbatim
R_319_gramas structural
The two grāmas (ṣaḍja-grāma, madhyama-grāma) are differentiated on the basis of pañcama alone.
DIFFERENTIATE(sadja_grama, madhyama_grama) BY position_of(pancama)
enThe two grāmas are differentiated on the basis of pañcama alonevol_I_p088

§ScaleTypeEnum[str]

Density of a svara collection.
3 members
values : sampurna, sadava, auduva
full module docstring
Density of a svara collection.
evidence: R_147_auduva_definition (auduva=5), R_1266_sadjamadhyama_struct
(purna=7, sadava=6, auduva=5)
Sourced by
Auḍuva is the pentatonic combination (five svaras); auḍuva tānas have two subcategories: devoid of ni-ga and devoid of pa-ni
DEFINE auduva AS combination WHERE |svaras| = 5; SUBTYPES auduva_tanas = {devoid_niga, devoid_pani}
enAuduva is with five (svaras),vol_I_p030
en(Tānas) devoid of ni-ga. (Tānas) devoid of pa-ni. Thus end the auduva (tānas).vol_I_p041
sadjamadhyamā: all 7 svaras serve as graha+aṁśa; 7 pūrṇa + 5 ṣāḍava + 5 auḍuva forms
DEFINE sadjamadhyama.grahas := all_seven_svaras DEFINE sadjamadhyama.amsas := all_seven_svaras DIVISIONS: {purna: 7, sadava: 5, auduva: 5}
sktषड्जमध्यमाया ग्रहा अंशाश्च सप्तैव स्वराःvol_II_p035
sktतत्र सप्त पूर्णा , पञ्च पाडवा , पञ्च औडुवvol_II_p136

§SthānaEnum[str]

The three vocal registers — objective of tānas.
3 members
values : mandra, madhya, tara
Sourced by
R_2049_01 classification
Three sthānas (registers): mandra/madhya/tāra, each located in body, heard as one unit
CLASSIFY sthānas = {mandra:low, madhya:middle, tāra:high} PROPERTY each.location IN body PROPERTY each.heard_as = one_unit
enLow ( mandra ), middle ( madhya ) and high ( tāra ) are the three sthānas (registers).vol_I_p087
R_520_sthana enumeration
Sthānas (registers) are three in number and are the objective purpose of tānas.
sthanas.count = 3; purpose(tanas) = attainment_of(sthanas)
enThe objective of these tanas has been said to be for the sake of the attainment of [sthānas (registers)]. Sthānas are said to be threevol_I_p049
R_271_kaku_def definition
kāku prescribes performance of svaras across three sthānas (registers)
DEFINE kaku := prescription WHERE rule = 'svaras performed in three sthanas' sthanas := [mandra, madhya, tara]
enBut it is said in the prescription of kāku45 that svaras are (to be) performed in the three sthanas (registers).vol_I_p046

§Mūrchanādataclass(frozen=True)

A mūrchanā is a 7-svara cyclic rotation of a grāma scale, starting on
full module docstring
A mūrchanā is a 7-svara cyclic rotation of a grāma scale, starting on
one specific svara — the "vehicle of rāga growth" (etymology mūrch +
samucchrāya).

A second sense, "12-svara mūrchanā", appears in performance context for
attaining the three sthānas (see Mūrchanā12).

evidence: R_c39_murchana_devanagari (definition + start_svara),
          murchana_definition_heptad_ascent_descent,
          murchana_twofold_seven_or_twelve_svaras
Sourced by
mūrchanā = mouvement mélodique débutant par un svara donné, étymologie mūrch (infatuation) + samucchrāya (croissance); ce par quoi le rāga croît
FUNCTION construct_murchana(start_svara, jati): # etymology: murch (growth) + samucchraya (increase) murchana := sequence_of_svaras(start=start_svara, length=7) # e.g. Gandharodicyava -> begins with dhaivata # e.g. hexatonic andhri -> begins with madhyama ASSERT murchana[0] == start_svara RETURN murchana # vehicle of raga growth
enthe mūrchanā beginning with dhaivata obtains.vol_II_p038
enThe mūrchanā beginning with madhyama obtains.vol_II_p044
+ 5 more verbatim
Mūrchanā is a heptad of svaras functioning through ascent and descent in respective order.
def murchana_definition(svaras): assert len(svaras) == 7 return Murchana(svaras=svaras, mode='aroha_avaroha')
enThe heptad of svaras (that functions) through ascent and descent in respective order, should be known by the adept ones as being spoken of by the word mūrchanā.vol_I_p036
enmūrchanā as a complete scale in ascending and descending establishes the three sthanasvol_I_p099
Mūrchanā is twofold: composed of seven svaras or of twelve svaras.
def murchana_types(): return ['seven_svara', 'twelve_svara']
enThat murchana again is twofold — one composed of seven svaras and the other of twelve svaras.vol_I_p036
sktचतुर्विधा मया प्रोक्ता मूर्छना सप्तस्वरात्मिका।vol_I_p050

§Mūrchanā12dataclass(frozen=True)

12-svara form used in performance; subsumed within ṣaḍja-grāma mūrchanās
full module docstring
A twelve-svara mūrchanā used in rāga performance to attain the three
sthānas. Subsumed within ṣaḍja-grāma mūrchanās during performance.

evidence: murchana_twofold_seven_or_twelve_svaras (aff#2369, aff#2507),
          murchana_twelve_svara_for_three_sthanas,
          R_549_gramamurchana
Sourced by
Mūrchanā is twofold: composed of seven svaras or of twelve svaras.
def murchana_types(): return ['seven_svara', 'twelve_svara']
enThat murchana again is twofold — one composed of seven svaras and the other of twelve svaras.vol_I_p036
sktचतुर्विधा मया प्रोक्ता मूर्छना सप्तस्वरात्मिका।vol_I_p050
Twelve-svara mūrchanās are used in performance to attain the three sthānas (registers).
def murchana_twelve_svara_use(murchana): if murchana.n_svaras == 12: return {'used_in': 'performance', 'attains': ['mandra','madhya','tara']}
sktद्वादशस्वरसम्पन्ना मूर्छना द्रष्टव्या प्रयोगकाले।vol_I_p050
sktयद्यप्याचार्यै अप्तस्वरमूर्छना प्रतिपादिता, स्थानत्रितयप्राप्त्यर्थं द्वादशस्वरैरेव मूर्छना प्रयुक्ता।vol_I_p050
During rāga performance, mūrchanās comprise twelve svaras and are included within ṣaḍjagrāma mūrchanās; closes the grāma-mūrchanā section.
IF context == 'raga_performance': murchana.svara_count = 12; murchana.subsume_in('shadjagrama_murchanas'); section_marker = END(grama_murchana_prakaranam)
skt॥ इति मध्यमग्रामे ॥ [ इति ग्राममूर्छनाप्रकरणम् ]vol_I_p051
enDuring the performance of raga, mūrchanās should be known to be composed of twelve svaras.vol_I_p051

§Tānadataclass(frozen=True)

A tāna is the result of a svara-omission operation on a mūrchanā /
full module docstring
A tāna is the result of a svara-omission operation on a mūrchanā /
scale, producing a ṣāḍava (6-note) or auduva (5-note) collection.

"Omission of svaras is operative only in mūrchanās and not in grāma"
(aff#1925).

evidence: tana_definition (aff#3097), R_275_murchana_omission (aff#1925),
          tana_definition_cyclic_permutations
Sourced by
tana_definition definition
Tāna involves omission of svaras and establishes a specific pattern in ascent; tānas have yajña-names and prescribed performance methods.
tana(seq) := pattern(ascent, omit_svaras(seq)); has_yajna_names := true
entana (involving omission) establishes a specific pattern in ascent.vol_I_p099
enThe yajña-names of tanas / The performance of tanasvol_I_p007
Mūrchanā transformations operate via svara-omission (creating ṣāḍava/auḍuvita tānas); applies to jātis/rāgas; no canonical jāti-mūrchanā rule
APPLY omit_svara(murchana) -> tana; SCOPE = murchana+jati+raga; jati-to-murchana assignment = unprescribed (authority-based)
enomission of svaras is operative only in mūrchanās and not in grāmavol_II_p163
enNo rule is prescribed for assigning a particular mūrchanā to a given jāti.vol_II_p163
+ 1 more verbatim
Tāna is a svara-aggregate formed by cyclic permutations following ascending and descending order.
def tana(svaras): return cyclic_permutations(svaras, order=['aroha','avaroha'])
sktआरोहावरोहक्रमयुक्तः स्वरसमुदायोvol_I_p042

§GrāmaSpecdataclass(frozen=True)

Static specification of a grāma: its inomissible svaras, ordered
full module docstring
Static specification of a grāma: its inomissible svaras, ordered
cyclic frame, and structural properties.

evidence: R_c57_grama, R_319_gramas, sadjagrama_inomissible_and_vivadi,
          madhyamagrama_rsabha_pancama_inomissible
Sourced by
Seven jātis pertain to sadjagrāma.
n_jatis(sadjagrama) := 7
sktइति एताः षड्जग्रामसम्बन्धाः सप्त ज?ातयःvol_II_p035
Eleven jātis are based on madhyamagrāma.
jatis_based_on(madhyamagrama) := 11
sktएवमेकादश ज?्ञेया मध्यमग्रामसंश्रयाःvol_II_p011
In ṣadjagrāma, dhaivata is inomissible; ṣadjagrāma has a vivādi-maṇḍala with rules involving gāndhāra-ṛṣabha and niṣāda-dhaivata pairs.
for grama=sadjagrama: omit(dhaivata) := False; vivadi_mandala := defined_on{(gandhara, rsabha), (nisada, dhaivata)}
endhaivata in ṣaḍjagrāma and madhyama in all situations is inomissible.vol_II_p163
sktइति षड्जग्रामेvol_I_p028

Constants (13)

Named values pinned directly to source quotes (numbers, ordered lists, named svaras).

§SVARA_ORDERtuple

Sourced by
R_c57_grama enumeration
grāma = cadre tonal; deux grāmas (ṣaḍjagrāma, madhyamagrāma) chacun avec 7 mūrchanās; les tānas servent à distinguer jātis et rāgas des deux grāmas
FUNCTION enumerate_gramas(): gramas := { 'sadjagrama': {murchanas_start_order: [sa, ni, dha, pa, ma, ga, ri]}, 'madhyamagrama': {murchanas_start_order: [ma, ga, ri, sa, ni, dha, pa]} } ASSERT pancama IN both_gramas # seated in two gramas # melodic movement must respect grama (gramavirodhena) RETURN gramas
sktग्रामाविरोधेन यथेष्टं सञ्चारःvol_II_p035
enPañcama is known as being seated in the two grāmas.vol_I_p016
+ 2 more verbatim

§MURCHANA_MANDALA_SADJAtuple of 7 svara tuples

§MURCHANA_MANDALA_MADHYAMAtuple of 7 svara tuples

§NAMED_MURCHANAS_SADJAtuple[str,...]

7 values

§NAMED_MURCHANAS_MADHYAMAtuple[str,...]

7 values

§NAMED_MURCHANA_STARTdict[str, (Grāma, Svara)]

11 values
Sourced by
Uttaramandrā is a mūrchanā beginning with ṣadja
DEFINE murchana(uttaramandra).starting_svara := sadja
enIn (i.e. beginning with) şadja is uttaramandrāvol_I_p038
rajanī = mūrchanā associated with niṣāda svara
ASSIGN murchana(nisada) := rajani
enin niṣāda is known rajanīvol_I_p038
aśvakrāntā = mūrchanā in ṣaḍjagrāma: ma-pa-dha-ni-sa-ri-ga-ma-pa-dha-ni-sa
COMPOSE asvakranta := [ma, pa, dha, ni, sa, ri, ga, ma, pa, dha, ni, sa] IN sadjagrama
sktम प ध नि स रि ग म प ध नि स । अश्वक्रान्ता ६vol_I_p051

§INOMISSIBLE_SVARASdict[Grāma, frozenset[Svara]]

Sourced by
In madhyamagrāma, omission of ṛṣabha and pañcama does not take place; pañcama is inomissible according to Datti.
for grama=madhyamagrama: omit(rsabha) := False; omit(pancama) := False
sktमध्यमग्रामे ऋषभपञ्चमयोर्लोपो नास्तीति भावः।vol_II_p054
enpancama in mādhyamagrāma ... is inomissiblevol_II_p163
In ṣadjagrāma, dhaivata is inomissible; ṣadjagrāma has a vivādi-maṇḍala with rules involving gāndhāra-ṛṣabha and niṣāda-dhaivata pairs.
for grama=sadjagrama: omit(dhaivata) := False; vivadi_mandala := defined_on{(gandhara, rsabha), (nisada, dhaivata)}
endhaivata in ṣaḍjagrāma and madhyama in all situations is inomissible.vol_II_p163
sktइति षड्जग्रामेvol_I_p028
The ṣāḍava mūrchanās of ṣaḍja-grāma arise by omitting one of {ṣaḍja, ṛṣabha, pañcama, niṣāda}; the omission of gāndhāra is not prescribed in this grāma.
sadava_murchanas(sadjagrama) := {omit(s) | s in {sadja, rsabha, pancama, nisada}}; forbidden_omission := gandhara
enIn ṣaḍja-grāma, in the prescription about ṣāḍava the omission of gandhara is not there.vol_II_p026
enWith (the omission of) șadja, rșabha, pañcama and nișāda the șādava (mūrchanās) of ṣaḍja-grāma (come into being).vol_I_p039

§SADAVA_OMISSION_CANDIDATESdict[Grāma, frozenset[Svara]]

Sourced by
The ṣāḍava mūrchanās of ṣaḍja-grāma arise by omitting one of {ṣaḍja, ṛṣabha, pañcama, niṣāda}; the omission of gāndhāra is not prescribed in this grāma.
sadava_murchanas(sadjagrama) := {omit(s) | s in {sadja, rsabha, pancama, nisada}}; forbidden_omission := gandhara
enIn ṣaḍja-grāma, in the prescription about ṣāḍava the omission of gandhara is not there.vol_II_p026
enWith (the omission of) șadja, rșabha, pañcama and nișāda the șādava (mūrchanās) of ṣaḍja-grāma (come into being).vol_I_p039

§AUDUVA_OMISSION_PAIRStuple[frozenset[Svara],...]

Sourced by
Auḍuva is the pentatonic combination (five svaras); auḍuva tānas have two subcategories: devoid of ni-ga and devoid of pa-ni
DEFINE auduva AS combination WHERE |svaras| = 5; SUBTYPES auduva_tanas = {devoid_niga, devoid_pani}
enAuduva is with five (svaras),vol_I_p030
en(Tānas) devoid of ni-ga. (Tānas) devoid of pa-ni. Thus end the auduva (tānas).vol_I_p041
R_1769_nigahina_auduva classification
nigahīnā = tānas devoid of ni-ga, sub-category of auḍuva tānas
CLASSIFY tana AS nigahina IF svaras_excluded={ni, ga} WITHIN auduva_category
en(Tānas) devoid of ni-ga.vol_I_p041
R_5p3_1770 classification
Auduva tānas devoid of pa-ni form a category
IF tana.scale_size == 5 AND 'pa' NOT IN tana.svaras AND 'ni' NOT IN tana.svaras THEN category := 'auduva_parihina'
en(Tānas) devoid of pa-ni. Thus end the auduva (tānas).vol_I_p041
+ 1 more rule(s) : R_1786_01

§TANA_COUNTSdict[(Grāma, ScaleType), int]

3 values
Sourced by
BD_6_1_R007 enumeration
Madhyamagrāma contains 21 ṣāḍava tānas, including subsets devoid of ṣaḍja, ṛṣabha, gāndhāra
DEFINE madhyamagrama_tanas: total_shadava_tanas = 21 subsets = { devoid_of_shadja: [...], devoid_of_rshabha: [agnicit, dvadashaha, upamshu, soma, ashvapratigraha, barhi, abhyudaya], devoid_of_gandhara: [...] }
sktइति मध्यमग्राम एकविंशति षाडवताननामानिvol_I_p044
enThus end names of the tanas devoid of şadja in madhyamagramavol_I_p044
R_4p0_025 enumeration
auduvita tānas = tānas pentatoniques sans dhaivata+ṛṣabha; 14 dans madhyama-grāma, 35 au total entre 2 grāmas; combines avec ṣāḍava totalisent 84
DEFINE auduvita_tānas(grāma): exclude_svaras = {'dhaivata', 'ṛṣabha'} count(madhyamagrāma) = 14 count(both_grāmas) = 35 count(auduvita + ṣāḍava, both_grāmas) = 84 RETURN tāna_set
enThus end the fourteen names of auduvita tānas in madhyamagrāmavol_I_p045
enThe auduvita (tānas) of both the grāmas are thirty-fivevol_I_p045
+ 1 more verbatim
Audavita tānas in ṣaḍjagrāma number twenty-one.
AUDAVITA_TANAS = {'grama':'sadjagrama','count':21}
enThus end the twenty-one names of audavita tānas in sadjagrāma.vol_I_p044

§TANAS_AUDUVA_BOTH_GRAMASint

Sourced by
R_4p0_025 enumeration
auduvita tānas = tānas pentatoniques sans dhaivata+ṛṣabha; 14 dans madhyama-grāma, 35 au total entre 2 grāmas; combines avec ṣāḍava totalisent 84
DEFINE auduvita_tānas(grāma): exclude_svaras = {'dhaivata', 'ṛṣabha'} count(madhyamagrāma) = 14 count(both_grāmas) = 35 count(auduvita + ṣāḍava, both_grāmas) = 84 RETURN tāna_set
enThus end the fourteen names of auduvita tānas in madhyamagrāmavol_I_p045
enThe auduvita (tānas) of both the grāmas are thirty-fivevol_I_p045
+ 1 more verbatim

§TANAS_SADAVA_PLUS_AUDUVA_BOTHint

Sourced by
R_4p0_025 enumeration
auduvita tānas = tānas pentatoniques sans dhaivata+ṛṣabha; 14 dans madhyama-grāma, 35 au total entre 2 grāmas; combines avec ṣāḍava totalisent 84
DEFINE auduvita_tānas(grāma): exclude_svaras = {'dhaivata', 'ṛṣabha'} count(madhyamagrāma) = 14 count(both_grāmas) = 35 count(auduvita + ṣāḍava, both_grāmas) = 84 RETURN tāna_set
enThus end the fourteen names of auduvita tānas in madhyamagrāmavol_I_p045
enThe auduvita (tānas) of both the grāmas are thirty-fivevol_I_p045
+ 1 more verbatim

§AUDUVITA_TANAS_NIGAHINA_MADHYAMAtuple[str,...]

7 values
Sourced by
R_1786_01 enumeration
Bhairava is one of seven auduvita tānas devoid of ni and ga in madhyama-grāma
ENUMERATE auduvita_tānas(madhyama-grāma, omit=[ni,ga]) = [Bhairava, kāmada, avabhṛtha, aṣṭakapālaka, sviṣṭakṛt, vaṣaṭkāra, mokṣada]
enBhairava, kāmada and avabhṛtha, aṣṭakapālaka, sviṣṭakṛt, vaṣaṭkāra and the seventh is known as mokşada.vol_I_p045
Mokṣada = 7th name of auḍuvita tānas devoid of ni and ga
ASSIGN tana_name[7] = 'moksada' WHERE tana.class == 'auduvita' AND absent == {ni, ga}
enthe seventh is known as mokşadavol_I_p045

Unresolved (5)

Concepts present in the domain but no rule pins their values — listed honestly, never invented.
gāndhāra-grāmaalluded to in Indic tradition but no Brihaddesi 6b rule pins its svaras or operative role
uttarāyatā / śuddhaṣaḍjā / matsarīkṛtānamed in canonical 14-list (4e p.051) but no individual rule isolates their starting svara
ṣāḍava count in ṣaḍja-grāmaBD_6_1_R007 gives 21 for madhyama-grāma; no isolated count for ṣaḍja-grāma ṣāḍava
jāti → mūrchanā mappingR_275_murchana_omission explicitly states no rule prescribes the assignment (aff#1933) — authority-based
shuddhakaisikamadhyama grāma assignmentDisputed in source (shuddhakaisikamadhyama_grama_disputed); not modelled