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
Constants (13)
- SVARA_ORDERtuple
- MURCHANA_MANDALA_SADJAtuple of 7 svara tuples
- MURCHANA_MANDALA_MADHYAMAtuple of 7 svara tuples
- NAMED_MURCHANAS_SADJAtuple[str,...]
- NAMED_MURCHANAS_MADHYAMAtuple[str,...]
- NAMED_MURCHANA_STARTdict[str, (Grāma, Svara)]
- INOMISSIBLE_SVARASdict[Grāma, frozenset[Svara]]
- SADAVA_OMISSION_CANDIDATESdict[Grāma, frozenset[Svara]]
- AUDUVA_OMISSION_PAIRStuple[frozenset[Svara],...]
- TANA_COUNTSdict[(Grāma, ScaleType), int]
- TANAS_AUDUVA_BOTH_GRAMASint
- TANAS_SADAVA_PLUS_AUDUVA_BOTHint
- AUDUVITA_TANAS_NIGAHINA_MADHYAMAtuple[str,...]
Operations (6)
Pure functions derived from the rules: given input types, return outputs. Each cites the rule(s) that justify it.
§murchana_atderivation
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
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
Sourced by
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
enPañcama is known as being seated in the two grāmas.vol_I_p016 + 2 more verbatim
§named_murchanalookup
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
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
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}
en(Tānas) devoid of ni-ga. (Tānas) devoid of pa-ni. Thus end the auduva (tānas).vol_I_p041 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
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 §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 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
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 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
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)
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
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
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
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
enPañcama is known as being seated in the two grāmas.vol_I_p016 + 2 more verbatim
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}
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_p136 §SthānaEnum[str]
The three vocal registers — objective of tānas.
3 members
values : mandra, madhya, tara
Sourced by
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 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 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_svarasSourced 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_gramamurchanaSourced 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_permutationsSourced by
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'])
§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_inomissibleSourced by
Seven jātis pertain to sadjagrāma.
n_jatis(sadjagrama) := 7
Eleven jātis are based on madhyamagrāma.
jatis_based_on(madhyamagrama) := 11
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 Constants (13)
Named values pinned directly to source quotes (numbers, ordered lists, named svaras).
§SVARA_ORDERtuple
Sourced by
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
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
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 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}
en(Tānas) devoid of ni-ga. (Tānas) devoid of pa-ni. Thus end the auduva (tānas).vol_I_p041 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
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 §TANA_COUNTSdict[(Grāma, ScaleType), int]
3 values
Sourced by
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 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
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
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
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}
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