Generative rules

1087 rules total — 18 shown (capped at 500). ← back to grammar index

rule_idCategoryConceptSummaryBody (excerpt)N att.
R_275_murchana_omission transformation mūrchanā 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ā rul APPLY omit_svara(murchana) -> tana; SCOPE = murchana+jati+raga; jati-to-murchana assignment = unprescribed (authority-based) 3
R_143_auduvita_state transformation auduvita Auḍuvita state is reached by reducing 6-svara jātis to 5 svaras; in auḍuvita state, all svaras present are abundant (none sparse) TRANSFORM jati[6_svaras] -> auduvita[5_svaras]; IN auduvita: alpatva(svara)=none, bahutva(all)=true 2
R_211_vikrta_transformation transformation vikṛtā Vikṛtā jāti is derived from śuddhā by altering characteristics; aṁśa/apanyāsa/completeness can change but alpatva-bahutva and nyāsa cannot DERIVE vikrta FROM suddha BY altering [amsa, apanyasa, completeness]; INVARIANTS = [alpatva_bahutva, nyasa] 2
r_brd_533_rsabha_omission transformation ṛṣabha In kaiśikī, ṛṣabha is sparse and may be omitted to derive hexatonic/pentatonic forms; tānas can be built without ṛṣabha FUNCTION derive_by_rsabha_omission(jati): · IF jati == 'kaisiki': · omit({rsabha}) -> hexatonic · omit({rsabha, dhaivata}) -> pentatonic · FOR tana 2
R_1451_01 transformation bhakāra bhakāra = sāman where all consonants→bh, vowels kept FUNCTION bhakāra(sāman): · RETURN replace_all_consonants(sāman, with='bh') # vowels preserved 1
R_1764_01 transformation anuvādin svaras Audūvita state arises by omission of two anuvādin svaras TRANSFORM full_scale → audūvita BY omit(2, anuvādin_svaras) 1
R_1802_vyutkrama_permutations transformation व्युत्क्रमा Vyutkrama = permutation of svara order; yields 5 kūṭa-tāna variants from 3-svara set APPLY vyutkrama(seq[sa,ri,ga]) → {ga-ri-sa, ga-sa-ri, ri-ga-sa, ri-sa-ga, sa-ga-ri} 1
R_1850_prasada_prastara transformation prasāda prasāda = inverse/opposite of prastāra DEFINE prasada := inverse(prastara) 1
R_1886_001 transformation प्रसादः Prasāda = simplification of prastāra by removing intermediary notes DEFINE prasāda AS transform(prastāra) BY removing(intermediary_notes); EXAMPLE: sanidhapamagarisasarigamapadhanisa 1
R_597_murchana_shift transformation mūrchanā 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 1
R_692_sadavita_seven_to_six transformation ṣāḍavita Seven-svara jātis may be reduced to ṣāḍavita (six-svara) form IF jati.n_svaras == 7: MAY transform_to(sadavita, n_svaras=6) 1
bhinnakaiśika_pancama_substitution transformation bhinnakaiśika In bhinnakaiśika, the three-śruti pañcama is omitted in ṣaḍjagrāma, taking instead the four-śruti form. in bhinnakaiśika under sadjagrama: pancama_3sruti -> omitted; pancama_4sruti -> used 1
madhyamagrama_sama_pair_change transformation madhyamagrāma When the grāma changes to madhyamagrāma, sama pairs become sama, ripa, gani (special structure of pairs). if grama_change -> madhyamagrama: sama_pairs := {sama, ripa, gani} 1
nishada_tanas_omission transformation niṣāda Tānas can be constructed by omitting the note niṣāda (yielding niṣāda-deficient tānas). def omit_nishada(tana): · return tana.svaras.exclude('nishada') 1
parinamita_shruti_to_svara_transformation transformation pariņāmitā Śrutis are transformed into the form of svaras (pariṇāmitā), as milk transforms into curd. def parinamita(shruti): · return transform(shruti, 'milk_to_curd_analogy') -> svara 1
pravesa_mechanism transformation pravesa Praveśa happens through augmentation (prakarṣa) of the lower svara or by lowering (mārdava) of the higher svara. trigger(pravesa(L,H)) := prakarsa(L) OR mardava(H) 1
tanakriya_viprakarsha_mardava transformation tāna-kriyā Tāna-kriyā applies viprakarṣa-mārdava (stretching and loosening of the string) on the viṇā. def tana_kriya(string): · return apply(string, ops=['viprakarsha','mardava']) 1
śruti_shake_3sruti_rule_eroded transformation śrutis The traditional rule limiting shakes (kampita) to 3-śruti svaras appears abandoned in certain alaṅkāras. rule: shake_allowed_on(S) := sruti_count(S)==3; observed_exception: in certain alankaras the rule is relaxed 1