Module:Temperament data: Difference between revisions

CompactStar (talk | contribs)
No edit summary
CompactStar (talk | contribs)
No edit summary
Line 172: Line 172:
period = period * (subgroup[i]^preimage[i][1])
period = period * (subgroup[i]^preimage[i][1])
end
end
local te = get_te_generator(subgroup, comma_basis, preimage)
local te =get_te_generator(subgroup, comma_basis, preimage)
local stretch_factor = te[1][1] * math.log(2) / math.log(period)
local stretch_factor = te[1][1] * math.log(2) / math.log(period)
return scalarmatmul(te, 1/ stretch_factor)
return scalarmatmul(te, 1/stretch_factor)
end
end


Line 253: Line 253:
end
end
generators = rat_list_to_matrix(subgroup, generators)
generators = rat_list_to_matrix(subgroup, generators)
local cte_generator = frame.args['cte_generator']
local pote_generator = get_pote_generator(subgroup, comma_matrix, generators)
local pote_generator = get_pote_generator(subgroup, comma_matrix, generators)
local result =  '[[Subgroup]]: ' .. frame.args['subgroup']
local result =  '[[Subgroup]]: ' .. frame.args['subgroup']
Line 261: Line 262:
end
end
result = result:sub(0,-3)
result = result:sub(0,-3)
if subgroup[1] ~= 2 then
if cte_generator ~= nil then
result = result .. '\n\n[[Optimal tuning]] ([[Lp tuning|POL2]]): '
cte_generator = mysplit(cte_generator, ',')
for i = 1, #cte_generator do
cte_generator[i] = tonumber(cte_generator[i])
end
result = result .. '\n\n[[Optimal tuning]]s:\n* [[CTE]]:'
for i = 1, #(cte_generator[1]) do
if subgroup[1] == 2 and i == 1 then
result = result .. '~' .. trim(unparsed_gens[i]) ..  ' = ' .. '1\\1' .. ', '
elseif subgroup[1] == 3 and i == 1 then
result = result .. '~' .. trim(unparsed_gens[i]) ..  ' = ' .. '1\\1edt' .. ', '
else
result = result .. '~' .. trim(unparsed_gens[i]) .. ' = ' .. u._round(cte_generator[1][i] * 1200, 7) .. ', '
end
end
result = result:sub(0,-3)
if subgroup[1] ~= 2 then
result = result .. '\n* [[Lp tuning|POL2]]:'
else
result = result .. '\n* [[POTE]]:'
end
else
else
result = result .. '\n\n[[Optimal tuning]] ([[POTE]]): '
if subgroup[1] ~= 2 then
result = result .. '\n\n[[Optimal tuning]] ([[Lp tuning|POL2]]): '
else
result = result .. '\n\n[[Optimal tuning]] ([[POTE]]): '
end
end
end
for i = 1, #(pote_generator[1]) do
for i = 1, #(pote_generator[1]) do
if subgroup[1] == 2 and i == 1 then
if subgroup[1] == 2 and i == 1 then
result = result .. '~' .. trim(unparsed_gens[i]) ..  ' = ' .. '1\\1' .. ', '
result = result .. '~' .. trim(unparsed_gens[i]) ..  ' = ' .. '1\\1' .. ', '
elseif subgroup[1] == 3 and i == 1 then
result = result .. '~' .. trim(unparsed_gens[i]) ..  ' = ' .. '1\\1edt' .. ', '
else
else
result = result .. '~' .. trim(unparsed_gens[i]) .. ' = ' .. u._round(pote_generator[1][i] * 1200, 7) .. ', '
result = result .. '~' .. trim(unparsed_gens[i]) .. ' = ' .. u._round(pote_generator[1][i] * 1200, 7) .. ', '
Line 274: Line 305:
end
end
result = result:sub(0,-3)
result = result:sub(0,-3)
return result
return result
end
end