Module:Infobox RT
Documentation for this module may be created at Module:Infobox RT/doc
local p = {}
local u = require("Module:Utils")
local infobox = require("Module:Infobox")
function p.infobox_RT(frame)
-- no real math functionality... yet
local name = frame.args["tempname"]
local subgroup = frame.args["subgroup"]
local basis = frame.args["commas"]
local edo_first = frame.args["edo_first"]
local edo1 = tonumber(edo_first)
local edo_second = frame.args["edo_second"]
local edo2 = tonumber(edo_second)
local tuning = frame.args["tuning"]
local genfrac = frame.args["genfrac"]
local method = frame.args["method"]
local mos = frame.args["mosses"]
local mapping = frame.args["mapping"]
local ploidacot = frame.args["ploidacot"]
local limit1 = frame.args["lim1"]
local comp1 = frame.args["comp1"]
local acc1 = frame.args["acc1"]
local limit2 = frame.args["lim2"]
local comp2 = frame.args["comp2"]
local acc2 = frame.args["acc2"]
local data = {}
-- processed mapping
local map = {}
local lowermap = {}
table.insert(data, {
"Subgroups",
subgroup
})
table.insert(data, {
"Comma basis",
basis
})
table.insert(data, {
"Reduced mapping",
"<" .. mapping .. "]"
})
-- autocalculating ploidacot (wip)
for num in mapping:gmatch("(%d+); ") do
table.insert(map, num)
end
local ploid = map[1]
for num in mapping:gmatch("(%d+) ") do
table.insert(lowermap, num)
end
local equave = string.char(string.byte(subgroup, 1))
local equave_letter = equave
local cot = tonumber(lowermap[1])
if tonumber(equave) == 3 then
local equave_letter = "t"
if tonumber(string.char(string.byte(subgroup, 3))) == 5 then
if tonumber(string.char(string.byte(subgroup, 5))) == 7 then
local cot = tonumber(lowermap[2])
end
elseif tonumber(string.char(string.byte(subgroup, 3))) == 2 then -- edf
local equave_letter = "f"
local equave = "3/2"
end
elseif tonumber(equave) == 2 then
local equave_letter = "o"
end
-- edo join
table.insert(data, {
"Edo join",
"[[" .. edo_first .. "ed" .. equave .. "|" .. edo_first .. "]] & [[" .. edo_second .. "ed" .. equave .. "|" .. edo_second .. "]]"
})
table.insert(data, {
"Generator ([[" .. method .. "]])",
"~" .. genfrac .. " = " .. tuning .. "c"
})
table.insert(data, {
"MOS scales",
mos
})
table.insert(data, {
"Ploidacot",
ploidacot
})
table.insert(data, {
"Minmax error",
"(" .. limit1 .. "-[[odd limit]]) " .. acc1 .. "c; <br> (" .. limit2 .. "-[[odd limit]]) " .. acc2 .. "c"
})
table.insert(data, {
"Target scale size",
"(" .. limit1 .. "-[[odd limit]]) " .. comp1 .. " notes; <br> (" .. limit2 .. "-[[odd limit]]) " .. comp2 .. " notes"
})
local result = infobox.build(
name,
data
)
return result
end
return p