Module:Svara/sandbox
Appearance
![]() | This is the module sandbox page for Module:Svara (diff). See also the companion subpage for test cases (run). |
local mSep = require('Module:Separated entries')
local getArgs = require('Module:Arguments').getArgs
local p = {}
local svaraDesc = {
["Ṣ"] = "Shadja (Sa, lower octave)",
["S"] = "Shadja (Sa)",
["Ṡ"] = "Shadja (Sa, higher octave)",
["R₁"] = "Shuddha Rishabha",
["R₂"] = "Chatushruti Rishabha",
["R₃"] = "Shatshruti Rishabha",
["G₁"] = "Shuddha Gandhara",
["G₂"] = "Sadharana Gandhara",
["G₃"] = "Antara Gandhara",
["M₁"] = "Shuddha Madhyama",
["M₂"] = "Prati Madhyama",
["P"] = "Pancham (Pa)",
["D₁"] = "Shuddha Dhaivata",
["D₂"] = "Chatushruti Dhaivata",
["D₃"] = "Shatshruti Dhaivata",
["N₁"] = "Shuddha Nishada",
["N₂"] = "Kaishiki Nishada",
["N₃"] = "Kakali Nishada",
["Ṟ"] = "Komal Re",
["R"] = "Shuddha Re",
["G̱"] = "Komal Gandhara",
["G"] = "Shuddha Gandhara",
["M"] = "Madhyama",
["M̄"] = "Tivra Ma",
["Ḏ"] = "Komal Dhaivata",
["D"] = "Shuddha Dhaivata",
["Ṉ"] = "Komal Nishada",
["N"] = "Shuddha Nishada",
}
function p.convertCarnaticHindustani(input)
local svaras = {
["'S"] = 'Ṣ', -- sa (one octave below)
['S'] = 'S',
['R1'] = 'Ṟ', -- Shuddha Rishabha
['R2'] = 'R', -- Chatushruti Rishabha
['R3'] = 'G̱', -- Shatshruti Rishabha
['G1'] = 'R', -- Shuddha Gandhara
['G2'] = 'G̱', -- Sadharana Gandhara
['G3'] = 'G', -- Antara Gandhara
['M1'] = 'M', -- Shuddha Madhyama
['M2'] = 'M̄', -- Prati Madhyama
['P'] = 'P', -- Panchama
['D1'] = 'Ḏ', -- Shuddha Dhaivata
['D2'] = 'D', -- Chatushruti Dhaivata
['D3'] = 'Ṉ', -- Shatshruti Dhaivata
['N1'] = 'D', -- Shuddha Nishadha
['N2'] = 'Ṉ', -- Kaishiki Nishadha
['N3'] = 'N', -- Kakali Nishadha
["S'"] = 'Ṡ', -- sa (one octave above)
}
for key, value in pairs(input) do
input[key] = svaras[value];
end
return input
end
function p.resolveCarnatic(input)
local svaras = {
["'S"] = 'Ṣ', -- sa (one octave below)
['S'] = 'S', -- Ṣhaḍja
['R1'] = 'R₁', -- Shuddha Rishabha
['R2'] = 'R₂', -- Chatushruti Rishabha
['R3'] = 'R₃', -- Shatshruti Rishabha
['G1'] = 'G₁', -- Shuddha Gandhara
['G2'] = 'G₂', -- Sadharana Gandhara
['G3'] = 'G₃', -- Antara Gandhara
['M1'] = 'M₁', -- Shuddha Madhyama
['M2'] = 'M₂', -- Prati Madhyama
['P'] = 'P', -- Pancham
['D1'] = 'D₁', -- Shuddha Dhaivata
['D2'] = 'D₂', -- Chatushruti Dhaivata
['D3'] = 'D₃', -- Shatshruti Dhaivata
['N1'] = 'N₁', -- Shuddha Nishadha
['N2'] = 'N₂', -- Kaishiki Nishadha
['N3'] = 'N₃', -- Kakali Nishadha
["S'"] = 'Ṡ', -- sa (one octave above)
}
for key, value in pairs(input) do
input[key] = svaras[value];
end
return input
end
function p.carnatic(frame)
local args = getArgs(frame)
args = p.resolveCarnatic(args)
return p._main(args)
end
function p.resolveHindustani(input)
local svaras = {
["'s"] = 'Ṣ', -- sa (one octave below)
["'S"] = 'Ṣ', -- sa (one octave below)
['s'] = 'S',
['S'] = 'S',
['r'] = 'Ṟ', -- Komal re
['R'] = 'R', -- Shuddha re
['g'] = 'G̱', -- Komal ga
['G'] = 'G', -- Shuddha ga
['m'] = 'M', -- ma
['M'] = 'M̄', -- Tivra ma
['p'] = 'P',
['P'] = 'P',
['d'] = 'Ḏ', -- Komal dha
['D'] = 'D', -- Shuddha dha
['n'] = 'Ṉ', -- Komal ni
['N'] = 'N', -- shuddha ni
["S'"] = 'Ṡ', -- sa (one octave above)
}
for key, value in pairs(input) do
input[key] = svaras[value];
end
return input
end
function p.hindustani(frame)
local args = getArgs(frame)
args = p.resolveHindustani(args)
return p._main(args)
end
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
function p._main(args)
args['separator'] = " "
return mSep.main(args)
end
return p