Jump to content

Module:Svara/sandbox

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Renamed user ExPsittacine (talk | contribs) at 21:19, 17 September 2018 (Resolve + convert.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
local mSep = require('Module:Separated entries')
local getArgs = require('Module:Arguments').getArgs

local p = {}

function p.convertCarnaticHindustani(input)
	local svaras = {
		["'S"] = 'Ṣ', -- sa (one octave below)
		['S']  = 'S',
		['R1'] = 'Ṟ', -- Komal re
		['R2'] = 'R', -- Shuddha re
		['R3'] = 'G̱', -- Shuddha ga
		['G1'] = 'R', -- Komal ga
		['G2'] = 'G̱', -- Shuddha ga
		['G3'] = 'G', -- Shuddha ga
		['M1'] = 'M', -- ma
		['M2'] = 'M̄', -- Tivra ma
		['P']  = 'P',
		['D1'] = 'Ḏ',
		['D2'] = 'D', -- Komal dha
		['D3'] = 'Ṉ', -- Komal ni
		['N1'] = 'D', -- shuddha dha
		['N2'] = 'Ṉ', -- Komal ni
		['N3'] = '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.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