Module:Infobox regtemp: Difference between revisions
Bugfix 4: can't rely on whitespaces |
Set straight subgroup interpretation |
||
| Line 52: | Line 52: | ||
"⟨" .. mapping .. "]" | "⟨" .. mapping .. "]" | ||
}) | }) | ||
-- process mapping | -- process mapping | ||
local map = {} | local map = {} | ||
| Line 63: | Line 63: | ||
end | end | ||
genchain_mapping[1] = 0 | genchain_mapping[1] = 0 | ||
-- interpret subgroup | |||
local subgroup_basis = {} | |||
for str in subgroup:gmatch("(%d+/?%d*)") do | |||
table.insert(subgroup_basis, str) | |||
end | |||
-- autocalculating ploidacot | -- autocalculating ploidacot | ||
local ploid = tonumber (map[1]) | local ploid = tonumber (map[1]) | ||
local equave = | local equave = u.eval_num_arg(subgroup_basis[1]) | ||
local referent = u.eval_num_arg(subgroup_basis[2]) | |||
local equave_letter | local equave_letter | ||
local cot = tonumber(genchain_mapping[2]) | local cot = tonumber(genchain_mapping[2]) | ||
local suffix = "cleft" | local suffix = "cleft" | ||
if | if equave == 3 then -- twelfth-based temp | ||
equave_letter = "t" | equave_letter = "t" | ||
if | if referent == 5 then | ||
referent_candidate = u.eval_num_arg(subgroup_basis[3]) | |||
if referent_candidate == 7 then | |||
referent = referent_candidate | |||
cot = tonumber(genchain_mapping[3]) | cot = tonumber(genchain_mapping[3]) | ||
suffix = "gem" | suffix = "gem" | ||
end | end | ||
end | end | ||
elseif equave == 1.5 then -- fifth-based temp | |||
equave_letter = "f" | |||
elseif equave == 2 then | |||
elseif | |||
equave_letter = "o" | equave_letter = "o" | ||
if | if referent == 3 then | ||
suffix = "cot" | suffix = "cot" | ||
elseif | elseif referent == 5 then | ||
suffix = "seph" | suffix = "seph" | ||
end | end | ||
| Line 102: | Line 105: | ||
end | end | ||
local equave_size = 1200 * u.log2 | local equave_size = 1200 * u.log2(equave) | ||
local referent_size = 1200 * u.log2 | local referent_size = 1200 * u.log2(referent) | ||
local period_size = equave_size / ploid | local period_size = equave_size / ploid | ||
local generator_size = tonumber(tuning) | local generator_size = tonumber(tuning) | ||
| Line 110: | Line 113: | ||
cot = -cot | cot = -cot | ||
end | end | ||
-- find the shear | -- find the shear | ||
local shear | local shear | ||