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 f -- A global frame variable.
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"] = 'Ṣ',
['S'] = 'S',
['R1'] = 'Ṟ',
['R2'] = 'R',
['R3'] = 'G̱',
['G1'] = 'R',
['G2'] = 'G̱',
['G3'] = 'G',
['M1'] = 'M',
['M2'] = 'M̄',
['P'] = 'P',
['D1'] = 'Ḏ',
['D2'] = 'D',
['D3'] = 'Ṉ',
['N1'] = 'D',
['N2'] = 'Ṉ',
['N3'] = 'N',
["S'"] = 'Ṡ',
}
for key, value in pairs(input) do
input[key] = svaras[value];
end
return input
end
function p.resolveCarnatic(input)
local svaras = {
["'S"] = 'Ṣ',
['S'] = 'S',
['R1'] = 'R₁',
['R2'] = 'R₂',
['R3'] = 'R₃',
['G1'] = 'G₁',
['G2'] = 'G₂',
['G3'] = 'G₃',
['M1'] = 'M₁',
['M2'] = 'M₂',
['P'] = 'P',
['D1'] = 'D₁',
['D2'] = 'D₂',
['D3'] = 'D₃',
['N1'] = 'N₁',
['N2'] = 'N₂',
['N3'] = 'N₃',
["S'"] = 'Ṡ',
}
for key, value in pairs(input) do
input[key] = svaras[value];
end
return input
end
function p.resolveHindustani(input)
local svaras = {
["'s"] = 'Ṣ',
["'S"] = 'Ṣ',
['s'] = 'S',
['S'] = 'S',
['r'] = 'Ṟ',
['R'] = 'R',
['g'] = 'G̱',
['G'] = 'G',
['m'] = 'M',
['M'] = 'M̄',
['p'] = 'P',
['P'] = 'P',
['d'] = 'Ḏ',
['D'] = 'D',
['n'] = 'Ṉ',
['N'] = 'N',
["S'"] = 'Ṡ',
}
for key, value in pairs(input) do
input[key] = svaras[value];
end
return input
end
function p.carnatic(frame)
local args = p.sanitiseArgs(frame)
args = p.resolveCarnatic(args)
return p._main(args)
end
function p.hindustani(frame)
local args = p.sanitiseArgs(frame)
args = p.resolveHindustani(args)
return p._main(args)
end
function p._main(args)
args['separator'] = " "
return mSep.main(args)
end
function p.sanitiseArgs(frame)
f = frame
local args = getArgs(frame)
return args
end
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
return p